Ich würde gerne meinen tmux Fenstertitel automatisch in prompt_command, ps1 oder nur den Hostnamen eines Rechners umbenennen lassen ssh
. 9 Fenster mit der Bezeichnung "ssh" geöffnet zu haben, ist wirklich nutzlos. Während ich sysadmin arbeite, öffne ich neue Bildschirme und ssh um zu viel, um sie manuell umzubenennen.
Eine Sache, die mir aufgefallen ist, ist die tmux
Aktualisierung des xterm
Fenstertitels, damit ich das Gefühl habe, dass er es wissen muss.
Irgendeine Hilfe? Ich wäre sogar bereit, zurückzukehren, screen
wenn ich dieses Feature bekommen könnte.
PROMPT_COMMAND='settitle $HOSTNAME:$PWD'
- da ich mit @ Mikel's Code-bash: : No such file or directory
vor jeder Eingabeaufforderung keinen Hostnamen und einen Fehler bekam . Es scheint mir, dass die$()
Bash versuchen würde, was auch immersettitle
zurückkehrt , auszuführen . (Ichtmux rename-window -t${TMUX_PANE} "Title Text"
Dies ist der richtige Weg, um tmux-Titel in einem Fenster festzulegen. Die Variable $ TMUX_PANE wird von tmux gesetzt und dient zur Unterscheidung zwischen verschiedenen Bereichen.
quelle
-t${TMUX_PANE}
notwendig ist (zumindest war es nicht für mich).sleep 3
und wechseln, gibt die Eingabeaufforderung andernfalls den Befehl an das falsche Fenster aus, wenn der Energiesparmodus abgeschlossen ist. (Dies ist der Grund, warum ich hierher gekommen bin, +1).Nur für Leute, die hierher gekommen sind, um zu suchen, wie man den Titel einer tmux-Sitzung ändert:
Ctrl+ B,$
Dadurch erhalten Sie eine Eingabeaufforderung, in der Sie die aktive Sitzung umbenennen können.
Verwenden Sie stattdessen komma, um das aktive Fenster zu ändern:
Ctrl+ B,,
siehe: Wie benenne ich eine Sitzung in tmux um?
quelle
Durch die Kombination der Antworten von Mikel und UtahJarhead habe ich
.zshrc
dieses Problem folgendermaßen gelöst:Ich habe die automatische Fensterumbenennung standardmäßig aktiviert und kann sie nach dem Beenden des Remote-Hosts nicht wieder aktivieren. Daher schließe ich das Fenster nur vollständig - kein Problem für meinen Workflow. Wenn Sie es lieber in "bash" umbenennen möchten, können Sie die
exit
Zeile durch ersetzentmux rename-window "bash"
.quelle
hostname -s
nach dem Befehl ssh "@ $", es "setzt" im Grunde den Titel auf meinen "Gateway" Rechner zurück.Anstelle von
exit
oder könnentmux rename-window "bash"
Sie verwendenDadurch wird die normale Funktion wieder aktiviert, die das Fenster automatisch für die nächsten Befehle umbenennt.
Der
if
Block verhindert, dass (ohne ihn) dastmux
aktuelle Fenster vonssh
Befehlen umbenannt wird, die auf anderen Shells (außerhalb vontmux
) verwendet werden.quelle
if env | grep -q "TMUX_PANE"; then
anstatt desps -p...
Zeugs entschieden, aber das gleiche Prinzip.Ich weiß, dass dies vor langer Zeit beantwortet wurde, aber ich dachte, ich würde hinzufügen, was ich gefummelt und gefunden habe (basierend auf der akzeptierten Antwort). Ich habe dies zu / etc / bashrc aller meiner Server hinzugefügt (einfach zu tun mit Stoff, Puppe, etc)
Und es setzt den Fensternamen automatisch in screen oder tmux.
quelle
hostname -s
entfernen also das zusätzliche Domainmaterial, sodass server1.internal.local nur als server1 angezeigt wirdEine andere Lösung wäre, das aktive Fenster nach der ssh-Sitzung in den vorherigen Namen umzubenennen:
quelle
Dies funktioniert in
tmux 2.1
und mit zsh lokal und auf Servern:Ich musste die Erlaubnis-Umbenennungs-Option manuell deaktivieren, bevor ich den Windows-Namen änderte - andernfalls wurde er auf den meisten meiner Server auf den aktuellen Pfad geändert (auch dort mit zsh). Das Gute ist: Wenn Sie die Option zum Zulassen und Umbenennen erneut aktivieren, funktioniert sie sofort.
quelle
Fügen Sie dies zu
.profile
oder hinzu.bashrc
quelle
In all diesen Beispielen möchte ich Folgendes erwähnen:
Möglicherweise möchten Sie den Exitcode abrufen und die Funktion damit beenden, andernfalls wie folgt vorgehen:
Gibt 0 zurück.
Beendet ssh mit dem Rückkehrcode von ssh.
quelle