Wie ändere ich die Fenstertitel (wie sie von wmctrl verwendet werden)

Wie ändere ich die Fenstertitel (wie sie von wmctrl verwendet werden)

ich benutzewmctrlum Anwendungen zu verschieben, nachdem ich sie gestartet habe, sodass ich dies nicht manuell tun muss, beispielsweise für mehrere Texteditoren und Webbrowser sowie PDF-Viewer und Terminals. Ich gebe den folgenden wmctrl-Befehl ein, um Anwendungen zu verschieben

wmctrl -r <title> -e <x>,<y>,0,-1,-1

wobei <x> und <y> die horizontalen und vertikalen Zielkoordinaten sind und <title> der Name der Anwendung ist, der von zurückgegeben wird wmctrl -l. Wenn ich zwei Kopien von Google Chrome über die folgenden Befehle starte,

google-chrome &
google-chrome &

Geben Sie dann den Befehl ein

wmctrl -l 

Die zurückgegebenen Fensternamen sind

0x03c06fd9  0 main New Tab - Google Chrome
0x03c0703d  0 main New Tab - Google Chrome

Wenn ich nun versuche, eines davon mit dem folgenden Befehl an eine beliebige Koordinate, sagen wir 100,100, zu verschieben

wmctrl -r "Google Chrome" -e 100,100,0,-1,-1

Falls Sie es nicht schon erraten haben, wird DIESES Google Chrome-Fenster verschoben, in dem ich gerade tippe, da ich es vor den anderen beiden geöffnet habe.

Gibt es eine Möglichkeit, diese Fenstertitel beim Starten über die Befehlszeile zuzuweisen oder sie später zurückzusetzen? Ich muss die Namen in etwas wie

Google Chrome 1
Google Chrome 2
Google Chrome 3

Beachten Sie, dass es mir zwei Möglichkeiten gibt, dies zu umgehen. Allerdings gefällt mir keine von beiden, da sie zu Problemen führen könnten, wenn das Betriebssystem ein Programm im Hintergrund startet.

  1. Anstelle des Titels können Sie über den -iBefehl die numerische Fenster-ID verwenden.
  2. Verwenden Sie die Zeichenfolge :ACTIVE:, um das aktive Fenster zu verwenden

Antwort1

Verwenden Sie das xttitleProgramm aus dem xttitlePaket. Beachten Sie die ZWEI "t"s in xttitle. Nun, eigentlich gibt es 3 „t“s … aber ich hatte nur Probleme, die ersten beiden falsch zu tippen.

Hier ist ein Beispiel aus meinem ~/.bashrc, in dem ich die cdintegrierte Funktion außer Kraft setze und verwende, xttitleum das aktuelle Verzeichnis in meinen Fenstertitel einzufügen:

# from the "xttitle(1)" man page - put info in window title
update_title()
{
    [[ $TERM = xterm ]] || [[ $TERM = xterm-color ]]  && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}

cd()
{
    [[ -z "$*" ]] && builtin cd $HOME
    [[ -n "$*" ]] && builtin cd "$*"
    update_title
}

verwandte Informationen