绑定到快捷键的xdotool命令不起作用

时间:2018-07-04 20:28:44

标签: linux key-bindings xdotool i3

我非常喜欢VIM,我想在任何地方都使用它的键绑定。有很多可以模拟此功能的IDE插件,但我想要更多,也许是Minecraft中的VIM绑定? :D或VIM键绑定无处不在,而无需下载任何插件。

我注意到每个编辑器都实现了以下键: Home End Ctrl + End ,< kbd> Ctrl + Ctrl + 退格,依此类推...

我将这些键用作构建块,并为i3wm设计了此配置:

Map

该代码段有效,但并非以我想要的方式运行。如果我不使用Map,则该代码根本无法工作,因为此键不会重复,因此无法按住 J 并向下滚动。

这似乎是一个窗口焦点问题。由于某些原因,当我按下快捷键时,窗口会失去焦点几毫秒,然后又重新聚焦。这在Firefox的网址栏中最为明显。我发现this question asked years ago表示建议在执行mode "VIM MODE NORMAL" { bindsym --release h exec "xdotool key --clearmodifiers Left" bindsym --release j exec "xdotool key --clearmodifiers Down" bindsym --release k exec "xdotool key --clearmodifiers Up" bindsym --release l exec "xdotool key --clearmodifiers Right" bindsym --release Shift H exec "xdotool key --clearmodifiers Home" bindsym --release Shift L exec "xdotool key --clearmodifiers End" bindsym --release Shift G exec "xdotool key --clearmodifiers ctrl+End" bindsym --release g exec "xdotool key --clearmodifiers ctrl+Home" bindsym --release u exec "xdotool key --clearmodifiers --repeat 5 Up" bindsym --release d exec "xdotool key --clearmodifiers --repeat 5 Down" bindsym --release b exec "xdotool key --clearmodifiers ctrl+Left" bindsym --release e exec "xdotool key --clearmodifiers ctrl+Right" bindsym --release Shift O exec "xdotool key --clearmodifiers Up End Return"; mode "delault" bindsym --release o exec "xdotool key --clearmodifiers End Return"; mode "default" bindsym --release Shift A exec "xdotool key --clearmodifiers End"; mode "default" bindsym --release Shift I exec "xdotool key --clearmodifiers Home"; mode "default" bindsym q mode "default" bindsym Escape mode "default" } bindsym Menu mode "VIM MODE NORMAL" 之前增加一秒钟的延迟,我可以使用它,但是第二秒钟会产生巨大的输入延迟。

我还尝试了其他窗口管理器和热键守护程序--release,但一切都完全相同...

1 个答案:

答案 0 :(得分:2)

我也遇到了同样的问题,我意识到您必须告诉xdotool为您的键绑定中的键发送键启动事件。例如:

bindsym h exec "xdotool keyup h; xdotool key"

对每个绑定都执行此操作,我认为它会起作用。