imagemagick 的import
shell 命令会拍摄桌面快照。执行
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。添加--release
到bindsym
调用中,使其在您释放键时触发,它就会起作用:
bindsym --release $mod+m exec "import /tmp/foo.png"
这甚至记录:
某些工具(例如 import 或 xdotool)可能无法在 KeyPress 事件发生时运行,因为键盘/指针仍被抓取。对于这些情况,可以使用 --release 标志,这将在释放按键后执行命令。