LXDE-Hotkey, um die App zu starten oder zu ihr zu wechseln, wenn sie bereits ausgeführt wird


1

Ich habe mich an Win + (1..9) Hotkeys in Windows 7+ gewöhnt und möchte so etwas in LXDE implementieren.

Also muss ich einen Hotkey definieren, der:

  • Starten Sie die definierte Anwendung, falls sie noch nicht gestartet wurde. ODER

  • Wechseln Sie zu dieser Anwendung, wenn sie bereits ausgeführt wird.

Wie kann das gemacht werden?

Ich kann überprüfen, ob die App mit ausgeführt wird. Gibt ps -e | grep appnamees jedoch Möglichkeiten, LXDE mithilfe der Befehlszeile über den Namen oder die PID zur App zu wechseln? Oder gibt es vielleicht noch andere Möglichkeiten, dies alles zu tun?

Ich habe ein solches Verhalten in WinXP mit AutoHotkey implementiert. In Win7 / Win8 ist es native. Und es ist sehr nützlich, deshalb möchte ich es auch in meinem Debian verwenden.

Antworten:


0

Unix hat nicht gerade ein Konzept von "Anwendung" . Anstatt Prozesse zu verwenden, sind Fenster auf oberster Ebene ein besserer Indikator. Sie sind leichter genau zu erkennen, und Sie werden nicht fälschlicherweise Anwendungen eines anderen Benutzers erkennen.

Jedes Fenster hat eine Klasse, die seine Anwendung identifiziert. Führen Sie den folgenden Befehl in einem Terminal aus, und klicken Sie auf das Fenster der Anwendung, um den Klassennamen für eine Anwendung anzuzeigen:

xprop WM_CLASS

Daraufhin werden zwei Zeichenfolgen angezeigt: der Instanzname und der Klassenname.

Die nützlichsten Tools zum Anzeigen von Informationen zu Fenstern und zum Ausführen einiger grundlegender Aktionen sind xdotoolund wmctrl.

Mit wmctrl, können Sie mit wmctrl -F -x -a "$instance.$class"einem der Fenster mit dem angegebenen Instanz und Klasse aktivieren. Wenn es kein passendes Fenster wmctrlgibt, wird ein Fehlerstatus zurückgegeben, sodass Sie das Programm starten können. Beispiel:

wmctrl -F -x -a Navigator.Firefox || firefox &

Der äquivalente Befehl xdotool:

xdotool search --class --maxdepth 2 Firefox windowactivate || firefox &

Wenn es mehrere Toplevel-Fenster gibt, gibt es keine einfache Möglichkeit, zu bestimmen, welches aktiviert wird. Um den neuesten zu aktivieren, benötigen Sie die Zusammenarbeit Ihres Fenstermanagers - Openbox standardmäßig in LXDE. Ich bin nicht mit Openbox vertraut, aber es ist ziemlich schlank, so dass es möglicherweise keine Möglichkeit bietet, das zuletzt aktivierte Fenster zu melden. Ich denke, LXDE kann mit anderen Fenstermanagern wie Sawfish verwendet werden, die programmierbar sind, sodass Sie diese Funktionalität in den Fenstermanagern in wenigen Codezeilen codieren können.

Verwenden Sie den Mechanismus zur Einstellung der Schlüsselbindung Ihres Fenstermanagers , um die gewünschten Schlüssel an einen dieser Befehle zu binden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.