Modificare il titolo del teminale da Python

Una delle particolarità di gentoo è l’attenzione ai particolari, ed una delle caratteristiche che rimpiango in altri gestori di pacchetti è l’uso intelligente della barra del titolo della finestra del terminale per comunicare lo stato di avanzamento di una lunga installazione.

Andando a scavare nei sorgenti di portage ho trovato una comoda funzione, xtermTitle(message) (nel file output.py), che modifica il titolo di xTerm (o similari) con il messaggio inviato.

Qua ho adattato (minimamente) la funzione ai miei usi:


def xtermTitle(message):
if os.environ.has_key("TERM") and sys.stderr.isatty():
this_term = os.environ["TERM"]
legal_terms = ["xterm", "Eterm", "aterm", "rxvt",
"screen", "kterm", "gnome"]
for term in legal_terms:
if this_term.startswith(term):
sys.stderr.write("\x1b]2;" + str(message) + "\x07")
sys.stderr.flush()
break

Funziona egregiamente, e fa rimpiangere un po’ meno l’assenza di Growl quando parto con Ubuntu.