diff --git a/bpytop.py b/bpytop.py index 46c9835..0d84a55 100755 --- a/bpytop.py +++ b/bpytop.py @@ -547,6 +547,11 @@ class Term: new_attr = [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] termios.tcsetattr(sys.stdin.fileno(), termios.TCSANOW, new_attr) + @staticmethod + def title(text: str = "") -> str: + if text: text = f' {text}' + return f'\033]0;{os.environ.get("TERMINAL_TITLE", "")}{text}\a' + class Fx: """Text effects * trans(string: str): Replace whitespace with escape move right to not overwrite background behind whitespace. @@ -3955,13 +3960,13 @@ def now_sleeping(signum, frame): """Reset terminal settings and stop background input read before putting to sleep""" Key.stop() Collector.stop() - Draw.now(Term.clear, Term.normal_screen, Term.show_cursor, Term.mouse_off, Term.mouse_direct_off) + Draw.now(Term.clear, Term.normal_screen, Term.show_cursor, Term.mouse_off, Term.mouse_direct_off, Term.title()) Term.echo(True) os.kill(os.getpid(), signal.SIGSTOP) def now_awake(signum, frame): """Set terminal settings and restart background input read""" - Draw.now(Term.alt_screen, Term.clear, Term.hide_cursor, Term.mouse_on) + Draw.now(Term.alt_screen, Term.clear, Term.hide_cursor, Term.mouse_on, Term.title("BpyTOP")) Term.echo(False) Key.start() Term.refresh() @@ -3986,7 +3991,7 @@ def clean_quit(errcode: int = 0, errmsg: str = "", thread: bool = False): Key.stop() Collector.stop() if not errcode: CONFIG.save_config() - Draw.now(Term.clear, Term.normal_screen, Term.show_cursor, Term.mouse_off, Term.mouse_direct_off) + Draw.now(Term.clear, Term.normal_screen, Term.show_cursor, Term.mouse_off, Term.mouse_direct_off, Term.title()) Term.echo(True) if errcode == 0: errlog.info(f'Exiting. Runtime {timedelta(seconds=round(time() - SELF_START, 0))} \n') @@ -4268,7 +4273,7 @@ if __name__ == "__main__": #? Switch to alternate screen, clear screen, hide cursor, enable mouse reporting and disable input echo - Draw.now(Term.alt_screen, Term.clear, Term.hide_cursor, Term.mouse_on) + Draw.now(Term.alt_screen, Term.clear, Term.hide_cursor, Term.mouse_on, Term.title("BpyTOP")) Term.echo(False) Term.refresh() if CONFIG.update_check: UpdateChecker.run()