
Можно ли привязать пользовательскую клавишу для переключения на определенное приложение?
Например:
super+1 переключает в окно Chrome (не первое в списке Windows).
super+2 переключает в окно Nautilus.
Или хотя бы:
super+1 переключает на первое окно
super+2 переключает на второе окно
решение1
Это потребует некоторой работы, но вы можете сделать это с помощью скриптов и сочетаний клавиш.
Есть инструмент, который называетсяxdotoolи он позволяет вам имитировать нажатия клавиатуры. Вы можете привязать клавиши клавиатуры к запуску скриптов, которые используют этот инструмент.
Используя любой язык, который вы предпочитаете для передачи команд терминала, вы можете найти конкретные идентификаторы процессов с помощью
ps aux | grep "process here"
Используя xdotool search --pid "process ID here"
вы получите несколько идентификаторов окон для одного приложения. Я не знаю, как их отсортировать, чтобы найти правильный, поэтому то, что вы могли бы сделать, это заставить свой скрипт перебирать найденные идентификаторы в
xdotool windowactivate "window ID here"
которое откроет ваше окно.
Например, мой ключ 1 будет привязан к запуску скрипта, который найдет идентификатор процесса для "filezilla". Затем он найдет идентификаторы окон с помощью xdotool, возьмет эти идентификаторы и затем передаст их через xdotool, чтобы поднять окно. Ключ 2 может быть "google-chrome"
решение2
Я собрал воедино то, что предложил мистер Ли, и создал этот сценарий:
#!/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)"
По сути, он игнорирует возможность возникновения ошибок, но в моем случае работает.