Wie kann man den Titel eines Terminals mit dem Befehl 'tput' festlegen?

8

Durch diese Antwort habe ich herausgefunden, dass ich seit Jahren auf naive Weise Terminalfarben in meiner Eingabeaufforderung einstelle.

Ich habe jetzt meine .bashrc geändert, um 'tput'-Befehle zu verwenden, um verschiedene Elemente meiner Eingabeaufforderung einzufärben. Der einzige verbleibende Escape-Code, den ich habe, ist folgender:

TITLEBAR="\[\033]2; PROD - \u@\h:\w \007\]"

Weiß jemand, ob es ein tput / terminfo-Attribut gibt, mit dem ich die Titelleiste meines Terminalfensters festlegen kann, damit ich dieses Escape entfernen kann?

Murali Suriar
quelle

Antworten:

8

Die tatsächlichen Funktionen sind tsl (To Status Line) und fsl (From Status Line), aber natürlich haben dann nicht alle Terminals. Insbesondere unter Linux müssen Sie Ihr Terminal auf xterm + sl oder ähnliches einstellen.

Sie können dies mit testen

export TERM=xterm+sl
echo `tput tsl` Hello world `tput fsl`; sleep 10

Ich würde mich nicht darum kümmern und diese Fluchten in .bashrc behalten

Codekopf
quelle
1
Meine Kopie von Ubuntu scheint diese Terminal-Informationen nicht zu haben. :( Ich beschuldige unvollständige terminfo-Dateien :)
David Pashley
1
Bildschirm scheint jedoch gut zu unterstützen. Vielen Dank!
Murali Suriar
3
\033];ist die Escape-Sequenz xtermfür einen "Betriebssystembefehl" . Ich weiß nicht, wie ich das in tput machen soll, aber wenn es möglich ist, über tput zu machen, wäre das eine bessere Methode für die plattformübergreifende Titeleinstellung für Terminals. ZB auf xterm würde dies zu einer Sequenz führen \033]0;Title\007. Siehe auch hier
Wyatt8740
@codehead Ihre Lösung ist peinlich, denn wenn ich tippe export TERM=xterm+sl, habe ich keine Syntaxhöhe mehr in vim.
SebMa
2

Nachdem ich mir die xterm terminfo-Datei angesehen habe, kann ich keinen Code finden, der mit diesem Befehl identisch ist, daher vermute ich, dass dies nicht der Fall ist.

Wenn Sie interessiert sind, listet die Terminfo-Manpage alle Befehle auf, die termcap und terminfo verstehen. Ich habe die terminfo-Datenbankdatei dekompiliert mit:

# infocmp -L xterm 
David Pashley
quelle
2

Ich kann nicht kommentieren, daher eine zusätzliche Antwort:

Wenn Sie tsl / fsl verwenden, fragen Sie zuerst das Terminal nach hs. hs sollte wahr sein, wenn tsl / fsl (und andere * sl) unterstützt werden.

tput hs && { echo ....; }

quelle
1
+1, wenn Sie eine Referenz dafür haben.
10.
1

Weitere Informationen zu den Besonderheiten des "vt100-Modus" von xterm finden Sie im Dokument Xterm-Steuerungssequenzen im Abschnitt "Betriebssystemsteuerungen" .

Randall
quelle