类似 wmctrl 的工具或 kde wayland 的替代品

aca*_*emo 10 kde keyboard-shortcuts wayland wmctrl

我的工作流程的很大一部分是基于使用快捷方式。目前,我使用 xbindkeys 和 wmctrl 来运行或引发应用程序。例如:Super+F调出 Firefox,如果没有运行则运行它。

Autokey 在 KDE 上工作得很好,我也可以使用 KDE 本机自定义快捷方式管理器来替换xbindkeys,但我找不到(我在 google 上搜索了很多)一种方法来确定窗口/应用程序是否正在运行,如果没有,则引发它。

我可能可以使用ps或类似的命令来查找应用程序是否正在运行,如果没有,则启动它,但这涉及到最后一个问题:如何以编程方式引发(或聚焦)现有正在运行的窗口/应用程序?

GNOME似乎有某种gdbus解决方案,但当然这在 KDE 中不起作用。

有人知道我能做什么吗?

aca*_*emo 6

经过大量研究,我找到了一个仅适用于 KDE 且仅适用于 KDE 的解决方案:使用 kwin 脚本。

脚本是:

  • 使用 pgrep 查看程序是否正在运行(使用完整命令 grep)
  • 如果运行:
    • 安装一个即时 kwin 脚本,该脚本将使用传递的类名或标题显式“激活”窗口
    • 运行脚本
    • 停止脚本
    • 卸载脚本
  • 如果未运行:运行命令来启动它。

例如,假设我想聚焦或启动 Firefox,我会使用我的脚本:

ww -f firefox -c firefox

-f:窗口类名 -c:未运行时运行的命令 -fa:使用窗口标题而不是类的替代过滤器

这是我现在使用的脚本,效果很好:

https://gist.github.com/academo/613c8e2caf970fabd260cfd12820bde3