我想要有用于启动应用程序的特定热键,但如果已经启动,它应该弹出应用程序的窗口。
例如,我按下 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
您可以为应用程序使用变量,并验证应用程序是否有效。无论如何,这是你的枪,你的脚。