KDE 中 Windows 的应用程序快捷方式

KDE 中 Windows 的应用程序快捷方式

我想要几个应用程序的快捷方式来执行以下操作:

  • 如果应用程序尚未运行,则启动该应用程序。
  • 如果应用程序位于后台,则将其置于前台。
  • 将应用程序的下一个实例置于前台(如果存在)。

我正在使用 Debian 和 KDE。实现这一点的最佳方法是什么?

答案1

分解为几个步骤,您可以先按名称查找任务,如果未找到则运行该任务:

APPID=`pgrep <taskname>`
if [ $APPID == "" ] ; then
    <app-command-with-options>
    exit 0
fi

如果必须运行应用程序,脚本现在将退出,否则继续寻找窗户属于任务:

known_windows=$(xwininfo -root -children|sed -e 's/^ *//'|grep -E "^0x"|awk '{ print $1 }')

for id in ${known_windows}
do
    xp=$(xprop -id $id _NET_WM_PID)
    if test $? -eq 0; then
        pid=$(xprop -id $id _NET_WM_PID|cut -d'=' -f2|tr -d ' ')

        if test "x${pid}" = x${APPID}
        then
            echo "Windows Id: $id"
        fi
    fi
done

此时,脚本已遍历匹配窗口列表。您可以简单地在循环后添加一个命令来激活由“$id”表示的窗口;这将切换到列表中的最后一个窗口,并应将其提升到顶部......

xdotool windowactivate $id

您可以找出不同的策略来按对您有用的顺序选择窗口。此外,通过更巧妙地使用命令xdotool及其搜索选项,可以简化脚本。

相关内容