So halten Sie den Titel des Terminalfensters mit dem tmux-Fenster synchron

4288
scottlabs

Ich verwende ein Programm namens "Timing", um meine Zeit zu verfolgen. Das Timing verwendet zur Kategorisierung den Namen des aktuellen Fensters in iTerm.

Ich möchte den aktuellen Titel von iTerm so einstellen, dass er mit dem Namen des aktuell aktiven Tmux-Fensters übereinstimmt.

Ich habe eine Datei eingerichtet ~/.config/fish/functions/fish_title.fishmit:

function fish_title tmux display-message -p '#W' end 

Dies gibt den aktuellen Tmux-Fenstertitel erfolgreich an das Terminalfenster aus, wenn ich ein neues Terminalfenster öffne. Wenn ich jedoch ein Tmux-Fenster umbenenne oder zu einem neuen Fenster wechsle, wird das Terminal nicht aktualisiert.

Es wird aktualisiert, wenn ich etwas wie pwdin verwende fish_title:

function fish_title pwd end 

Irgendwelche Ideen, wie man fish_titleden Namen des tmux-Fensters dynamisch packen kann?

5

1 Antwort auf die Frage

8
Kurtis Rader

Als erstes muss darauf hingewiesen werden, dass dies über tmux völlig unabhängig von der Shell möglich ist. Fügen Sie Ihrer ~ / .tmux.conf Folgendes hinzu: zum Beispiel:

set-option -g set-titles on set-option -g set-titles-string "#S / #W" 

Sie müssen auch sicherstellen, dass iTerm2 so konfiguriert ist, dass Programme den Titel über eine Escape-Sequenz festlegen können. Siehe Abschnitt "Terminal kann Tab- / Fenstertitel festlegen" in https://www.iterm2.com/documentation-one-page.html .

Ihr eigentliches Problem ist jedoch, dass die von der Funktion fish_title gesendete Escape-Sequenz nicht von tmux durchlaufen wird. Tmux verwendet stattdessen den Wert, um den Fenstertitel festzulegen. Dies wird, wenn auch nicht klar, im Abschnitt "NAMEN UND TITEL" von erklärt man tmux. Fügen Sie #Tdem hinzu, um set-titles-stringzu sehen, dass es tatsächlich derselbe Wert ist wie der Fenstername über Ihre fish_titleFunktion.

Ah, das wusste ich nicht. Ihr erster Kommentar zu ~ / .tmux.conf hat für mich großartig funktioniert. Vielen Dank! scottlabs vor 7 Jahren 0