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.
- Anstelle des Titels können Sie über den
-i
Befehl die numerische Fenster-ID verwenden. - Verwenden Sie die Zeichenfolge
:ACTIVE:
, um das aktive Fenster zu verwenden
Antwort1
Verwenden Sie das xttitle
Programm aus dem xttitle
Paket. 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 cd
integrierte Funktion außer Kraft setze und verwende, xttitle
um 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
}