This commit is contained in:
Foufure13
2025-02-19 17:47:19 +01:00
parent fc2547c45c
commit ddbac35391
21 changed files with 470 additions and 140 deletions
+38
View File
@@ -0,0 +1,38 @@
import subprocess
import threading
import time
import pygetwindow as gw
import sys
# Fonction pour générer des sorties normales dans le terminal actuel
def normal_output():
count = 0
while True:
print(f"Normal output line {count}")
count += 1
time.sleep(1)
if __name__ == "__main__":
# Vérifier si la sortie est bien un terminal
if not sys.stdout.isatty():
print("This script must be run in a terminal.")
sys.exit(1)
try:
# Ouvrir un nouveau terminal pour afficher la barre de statut
status_bar_process = subprocess.Popen(
["start", "cmd", "/k", "python", "status_bar.py"], shell=True
) # Utilise "start cmd /k" pour Windows
# Attendre un instant pour que la fenêtre apparaisse
time.sleep(1)
# Trouver la fenêtre de la barre de statut
for window in gw.getWindowsWithTitle("status_bar.py"):
window.alwaysOnTop = True # Mettre la fenêtre toujours au-dessus
# Démarrer les sorties normales dans le terminal principal
normal_output()
except KeyboardInterrupt:
print("\nExiting...")
+26
View File
@@ -0,0 +1,26 @@
import time
import os
import sys
def status_bar():
try:
while True:
# Obtenir la taille du terminal
rows, columns = os.popen('stty size', 'r').read().split()
rows = int(rows)
columns = int(columns)
# Déplacer le curseur au début du terminal
sys.stdout.write("\033[H") # Aller au coin supérieur gauche
sys.stdout.write("\033[2K") # Effacer la ligne
sys.stdout.write("Status Bar: [Working on tasks...] | Time: {}\n".format(time.strftime("%H:%M:%S")))
sys.stdout.flush()
# Attendre un peu avant de mettre à jour
time.sleep(1)
except KeyboardInterrupt:
print("\nExiting status bar...")
if __name__ == "__main__":
status_bar()