
Ist es möglich, eine benutzerdefinierte Taste zum Wechseln zu einer bestimmten Anwendung zu binden?
Beispiel:
super+1 wechselt zum Chrome-Fenster (nicht das erste in der Fensterliste).
super+2 wechselt zum Nautilus-Fenster
Oder zumindest:
super+1 wechselt zum ersten Fenster
super+2 wechselt zum zweiten Fenster
Antwort1
Dies würde etwas Arbeit erfordern, aber Sie könnten es mit Skripten und Tastenkombinationen erledigen.
Es gibt ein Tool namensAbonnierenund Sie können damit Tastenanschläge simulieren. Sie können Ihre Tastaturtasten binden, um Skripte auszuführen, die dieses Tool verwenden.
Mit der von Ihnen bevorzugten Sprache zum Weiterleiten von Terminalbefehlen können Sie bestimmte Prozess-IDs finden mit
ps aux | grep "process here"
Wenn Sie verwenden, xdotool search --pid "process ID here"
erhalten Sie mehrere Fenster-IDs für eine einzelne Anwendung zurück. Ich weiß nicht, wie ich sie sortieren soll, um die richtige zu finden. Sie könnten also Ihr Skript verwenden, um die gefundenen IDs zu durchlaufen und
xdotool windowactivate "window ID here"
wodurch Ihr Fenster geöffnet wird.
Beispielsweise wird meine Taste 1 so gebunden, dass sie ein Skript ausführt, das die Prozess-ID für „filezilla“ findet. Dann findet es die Fenster-IDs mit xdotool, nimmt diese IDs und übergibt sie dann an xdotool, um das Fenster aufzurufen. Die Taste 2 könnte „google-chrome“ sein.
Antwort2
Ich habe die Vorschläge von Mr. Lee zusammengestellt und dieses Skript erstellt:
#!/bin/bash
APP=$1
if [ -z "$APP" ]; then
echo Usage: $0 EXECUTABLE_NAME
exit 1
fi
PID=$(pgrep -f $APP | head -n 1)
if [ -z "$PID" ]; then
echo $APP executable not found
exit 2
fi
for WINDOW_ID in $(xdotool search --pid $PID); do
xdotool windowactivate $WINDOW_ID
done
notify-send "Switched to $APP (PID=$PID)"
Es ignoriert grundsätzlich die Möglichkeit eines Fehlers, funktioniert aber bei mir.