如何设置热键以切换到特定应用程序的打开窗口(如果没有窗口则启动该应用程序)

如何设置热键以切换到特定应用程序的打开窗口(如果没有窗口则启动该应用程序)

我想要有用于启动应用程序的特定热键,但如果已经启动,它应该弹出应用程序的窗口。

例如,我按下 super + f,它就会显示打开的 Firefox 窗口,如果没有打开的 Firefox 窗口,它就会启动一个新的窗口。

我只看到我可以使用超级 + 数字从码头访问,这非常相似。

现在有人知道这样的事情是否可能吗?

答案1

是的,这是可能的。您可以使用它pgrep来查找应用程序当前是否正在运行,并将xdotool windowactivate其置于前台,或者如果未运行则直接启动它。

例如,我使用 XFCE Mousepad 作为文本编辑器:

#!/bin/bash
if ! pgrep mousepad > /dev/null ; then
    # app isn't running, so start it
    mousepad &
    exit 0
fi
# mousepad is running, so let's get his pid
MOUSEPAD_PID=`pidof mousepad | tail -1` #if there are multiple, get the last
MOUSEPAD_WINDOW=`xdotool search --pid $MOUSEPAD_PID | tail -1` # last window
xdotool windowactivate $MOUSEPAD_WINDOW # activate the window

您可以为应用程序使用变量,并验证应用程序是否有效。无论如何,这是你的枪,你的脚。

相关内容