Linux下实现打开或切换应用的功能
Linux
2019-09-13 990字

Mac下缺少强大的窗口管理器,而我讨厌使用鼠标低效率的切换应用,所以我使用HammerSpoon的application.launchOrFocus来实现打开或切换应用的功能:当一个应用没有打开的时候直接打开,如果一个应用已经打开了就切换到已经打开的窗口。

最近切换回Linux的环境下,也想保持和Mac同样的使用习惯,避免在Linux和Mac切换时手指发懵。

在Linux下实现这种功能就简单的多了,我们可以使用 wmctrl 来实现:

安装 wmctrl

sudo pacman -S wmctrl

原理

然后使用命令 wmctrl -x -a window_name || application_name 即可完成我们想要的功能

其中,window_name 是窗口名字,application_name 是应用的启动命令

wmctrl首先会根据我们提供的窗口名字尝试切换窗口,如果没有发现可以切换的窗口则调用启动命令来启动应用。

获取窗口名字

有时候窗口名字并不一定可以直观的猜到,可以在终端中使用命令 xprop WM_CLASS , 然后用鼠标点一下想要获取属性的窗口,就可以知道目标窗口的名字了。

配置应用命令

下面是我常用的一些命令:

如果是 Gnome3 的快捷键设置,上面的所有命令需要改成 bash -c "wmctrl -x -a app || app" 的形式才能生效。

That’s all, enjoy! ;)