Wie ändere ich den von Byobu festgelegten Terminaltitel?

Wie ändere ich den von Byobu festgelegten Terminaltitel?

Wenn ich byobu verwende, ist der Titel meiner Terminal-Registerkarte auf eingestellt user@fqdn (IP) - byobu, was je nach Domäne ziemlich lang sein kann. Wie kann ich ihn auf etwas Kürzeres beschränken, wie etwa user@hostnameoder noch besser, zshden Titel festlegen lassen? Ich habe versucht, einzustellen BYOBU_NO_TITLE=1, gefolgt vondieser Fehler, aber ich glaube, dadurch kann die lokale Shell den Titel festlegen, nicht die Remote-Shell.

Das kann sehr ärgerlich sein, da Terminator die Länge aller Tab-Header auf den gleichen Wert setzt, sodass ein sehr langer Titel ausreicht, um alle sehr lang zu machen. Im schlimmsten Fall wäre es mir lieber, wenn ich einfach einen Teil davon auf eine maximale Länge (wie user@f ... byobu) kürzen könnte.

Ich habe bereits eine Funktion zum .zshrcFestlegen des Titels hinzugefügt:

case $TERM in
    xterm*|screen*)
        if [[ -n $SSH_TTY ]]
        then
            precmd () {print -Pn "\e]0;%m: %~\a"}
        else
            precmd () {print -Pn "\e]0;%~\a"}
        fi
        ;;
esac

Das funktioniert, wenn ich Byobu nicht verwende:

Bildbeschreibung hier eingeben

Die Registerkarte links ist eine SSH-Sitzung ohne Byobu und die Registerkarte rechts eine mit Byobu.

Mit Sergs Vorschlag, es IP_EXTERNALauf 1 zu setzen, kann ich die IP loswerden und den Titel verkürzen. Ich würde eine Lösung bevorzugen, die den von zsh (oder anderen Anwendungen wie Vim) festgelegten Titel an das Terminal weitergibt – es sieht so aus, als ob byobu/tmux sie blockiert.

Antwort1

UPDATE: 10. April 2015

Meine aktuelle Lösung, die nicht von der Verwendung einer Shell oder eines Terminals abhängt, besteht darin, wmctrlein Skript zu verwenden und den vollständigen Pfad zum Skript in einzugeben .byoburc. Funktioniert mit Gnome-Terminal, Terminator, Sakura – praktisch jedem Terminal. Hier ist das Skript:

#!/bin/bash
# Description: byobu always has string ") - byobu" in it's window title
# like user@hostname (192.168.0.2) - byobu
# So why not find windows with exact same string, and tell wmctrl to
# set the title for us ? That's all we do here

BYOBU_WINDOW=$( wmctrl -lx | awk '/) - byobu/ {print $1}' )
sleep 0.5
wmctrl -ir $BYOBU_WINDOW -N "MYTITLEHERE"

Ursprünglicher Beitrag

Sie können Profileinstellungen so gnome-terminalfestlegen, dass der in den Profileinstellungen angegebene ursprüngliche Titel beibehalten wird. Unten sehen Sie den Screenshot meines Byuobu mit der Option „Ursprünglichen Titel beibehalten“ und mit der Option „Ursprünglichen Titel ersetzen“

Screenshot 1

Bildbeschreibung hier eingeben

Was Terminator betrifft, werde ich es herunterladen und sehen, ob das Gleiche darauf zutrifft.

Antwort2

ich habe herausgefunden, dass Byobu im Backend tmux verwendet. und tmux bietet einige Möglichkeiten, den Terminaltitel mit den folgenden Zeilen festzulegen .byoubu/.tmux.conf:

set -g set-titles on
set -g set-titles-string "#(pwd)"

wobei #(pwd)es auf das Arbeitsverzeichnis gesetzt wird. Die Palette der Optionen finden Sie auf der Manpage von tmux im Abschnitt „Formate“.

Wenn man etwas tiefer gräbt, scheint es, dass byobu standardmäßig genau diese beiden Zeilen kommentiert, /usr/share/byobu/profiles/tmuxum seinen eigenen benutzerdefinierten Titel festzulegen

verwandte Informationen