Ich kann mir nicht vorstellen, dass dies in das System eingebaut ist, aber ist es möglich, dies ohne allzu großen Aufwand zu tun?
Angenommen, ich öffne ein bestimmtes Programm mit einem Hotkey. Wenn ich diesen Hotkey erneut drücke, wird das Programmfenster nach vorne verschoben.
Ich möchte dies unter Ubuntu 9.04 tun.
Vielleicht mit D-Bus? Irgendwelche Experten?
Update : Folgendes habe ich erhalten, falls es jemandem hilft:
#!/bin/bash
if [ -f "/tmp/myterm.pid" ]; then
WID=`cat /tmp/myterm.pid`
xdotool windowactivate $WID
if [ "$?" != "0" ]; then
WID=""
fi
else
WID=`xdotool search --title "UNIQUE TITLE" | head -1`
fi
if [ "$WID" == "" ]; then
/usr/bin/gnome-terminal --window-with-profile=MYPROFILE "$@"
WID=`xdotool search --title "UNIQUE TITLE" | head -1`
echo $WID > /tmp/myterm.pid
else
xdotool windowactivate $WID
fi
Sicher kann es vereinfacht werden, aber ich bin kein bash
Zauberer. Damit mein Beispiel funktioniert, habe ich in Terminal ein benutzerdefiniertes Profil erstellt, das dem Fenster einen eindeutigen Titel zuweist, damit es später gefunden werden kann. Die Möglichkeiten sind endlos!
Antworten:
Das
wmctrl
Programm ist genau das, wonach Sie suchen (sudo apt-get install wmctrl
). Mit demwmctrl -a "AppTitle"
Befehl können Sie die App nach vorne bringen.wmctrl -l
listet alle verfügbaren Fenster auf, daher sollte es einfach sein, ein Shell-Skript zu schreiben, das prüft, ob Ihr Programm ausgeführt wird, und es entweder startet oder nach vorne bringt. Dann können Sie das einfach an eine Tastenkombination binden.Speichern Sie zuerst das folgende Skript irgendwo, ich werde es verwenden
/home/jtb/code/bringToFront
. Es werden zwei Argumente benötigt: Das erste ist das, was Sie am Terminal eingeben würden, um das Programm zu starten, das zweite ist eine Teilzeichenfolge des Titels des Programmfensters. Wenn der Titel keine konstante eindeutige Zeichenfolge enthält, müssen Sie etwas mehr Arbeit leisten, um das Programmfenster zu finden.Führen Sie das Skript in Ihrem aktuellen Verzeichnis aus,
chmod +x bringToFront
um es ausführbar zu machen. Stellen Sie dann sicher, dass es funktioniert. Zum Starten / Fokussieren von Firefox können Sie ausführen./bringToFront firefox "Mozilla Firefox"
.Jetzt müssen wir eine Tastenkombination binden. Führen Sie
gconf-editor
die Ordnerstruktur aus und navigieren Sie nach links zu/apps/metacity/keybinding_commands
.Doppelklicken Sie
command
wahrscheinlich auf den ersten mit einem leeren Wertcommand_1
. Geben Sie den vollständigen Pfad zum Skript ein und geben Sie die beiden Parameter an, z/home/jtb/code/bringToFront firefox Firefox
.Wählen Sie im linken Bereich
global_keybindings
den nächsten Ordner aus. Suchenrun
Sie wahrscheinlich den Eintrag, der dem gerade definierten Befehl entsprichtrun_command_1
. Doppelklicken Sie darauf und geben Sie die gewünschte Tastenkombination ein. Setzen Sie die Modifikatoren in spitze Klammern, z<Ctrl><Alt>F
.Jetzt Control+ Alt+ Fbringt Ihr Firefox-Fenster nach vorne oder startet es, wenn es noch nicht läuft.
quelle
Hier ist eine andere Möglichkeit, dies zu tun
xdotools
. Der zu öffnende Prozess wird an der Befehlszeile erkannt, die zum Ausführen ausgegeben wurde (keine PID-Datei oder eindeutiger Fenstertitel erforderlich).quelle
Dank dafür. Ich verwende eine modifizierte Version davon, um ein Fensterverknüpfungsskript zu erstellen, das auch das Durchlaufen mehrerer Instanzen unterstützt. Wenn Sie interessiert sind:
http://somanov.wordpress.com/2009/12/02/window-shortcuts-for-linux-desktops/
Prost :)
quelle
Die Antwort von jtb ist ausgezeichnet, aber manchmal möchten Sie genaue Titel finden (z. B. möchten Sie "GitKraken" öffnen, aber der Titel Ihres Browsers "GitKraken vs CLI" stimmt auch mit der Abfrage überein).
Jetzt können Sie Ihr bringToFront-Skript wie folgt aufrufen:
quelle
Diese Lösung ist nicht parametrisiert, aber ich habe sie verwendet, um den Gnomenrechner zu fokussieren oder zu starten .
Die Option -R findet das Fenster oder schlägt fehl, wenn es gefunden wird, wird es auf den aktuellen Desktop verschoben, angehoben und fokussiert. Der Gnomenrechner benennt sein Fenster mit dem Namen Rechner , es könnte leicht parametriert werden, aber ich habe nie die Notwendigkeit gefunden, dies zu tun. Ich habe es zugeordnet
Ctrl-Alt-c
.quelle