可以将自定义键绑定到特定应用程序来切换吗?
例如:
super+1 切换到 chrome 窗口(不是窗口列表中的第一个窗口)。super
+2 切换到 nautilus 窗口
或者至少:
super+1 切换到第一个窗口
super+2 切换到第二个窗口
答案1
这需要一些工作,但您可以使用脚本和键绑定来完成。
有一种工具叫工具它可以让你模拟键盘按下。你可以绑定键盘按键来运行利用此工具的脚本。
使用你喜欢的任何语言来管道终端命令,你可以找到特定的进程ID
ps aux | grep "process here"
使用xdotool search --pid "process ID here"
您将获得单个应用程序的多个窗口 ID。我不知道如何对它们进行排序以找到正确的 ID,因此您可以做的是使用脚本,将找到的 ID 迭代到
xdotool windowactivate "window ID here"
这将打开你的窗口。
例如,我的 1 键将绑定到运行一个脚本,该脚本查找“filezilla”的进程 ID。然后它将使用 xdotool 查找窗口 ID,获取这些 ID,然后将它们传递给 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)"
它基本上忽略了任何错误的可能性,但对我来说有用。