i3wm:如果绑定到键,屏幕截图脚本将失败

i3wm:如果绑定到键,屏幕截图脚本将失败

imagemagick 的importshell 命令会拍摄桌面快照。执行

import /tmp/foo.png

会将我的光标转换为十字准线,并允许我选择要捕获的屏幕区域。但是,如果我尝试将该命令绑定到 i3wm 热键,则不起作用。

我的 i3wm 配置文件中有以下键绑定

# ...
bindsym $mod+m exec "import /tmp/foo.png"
# ...

产生以下错误(我可以将其输出到终端):

import-im6.q16:无法抓取鼠标“”:没有此文件或目录@error/xwindow.c/XSelectWindow/9187。

为什么会这样?我怎样才能使它发挥作用?

答案1

问题是,只要按下Ctrl+ ,键绑定就会触发m。添加--releasebindsym调用中,使其在您释放键时触发,它就会起作用:

bindsym --release $mod+m exec "import /tmp/foo.png"

这甚至记录

某些工具(例如 import 或 xdotool)可能无法在 KeyPress 事件发生时运行,因为键盘/指针仍被抓取。对于这些情况,可以使用 --release 标志,这将在释放按键后执行命令。

相关内容