我尝试在我的浏览器中实现 Emacs 键绑定。
目前我有.xbindkeysrc
和这个和弦
"if [[ "$(xdotool getwindowfocus getwindowname)" =~ "Chrome" ]]; then xdotool key --window "$(xdotool getactivewindow)" Left; fi"
control+b
它在 Chrome 中运行良好,如果我按下ctrl + b
插入符号后退但我有一个奇怪的后果:我不能再ctrl + b
在我的终端中使用(Gnome 终端)。
除了我不知道为什么会发生这种情况,有没有办法防止 xbindkeys 阻止某个程序中的键?
如果没有,您是否考虑另一种解决此问题的方法?
提前致谢。
附加说明:
- 不仅钥匙被挡在里面,
Gnome Terminal
而且在rxvt
and里面也被挡住了xterm
。如果我删除条件部分并输入
"xdotool key --window "$(xdotool getactivewindow)" Left"
control+b
只是,当我希望它起作用时,和弦仍然在终端(甚至在 Gedit 中)被阻塞。这真的让我很困惑。
我也试过xmodmap但keysyms 表不包括控制键,这是不可能的。
xbindkeys
我仍然尝试使用and使其工作xdotool
,如果您能帮助我,我将不胜感激。这个问题似乎与Xorg相关,因为在Wayland上下文中尝试相同的脚本是可行的。
如果您对这个问题感兴趣,这就是我最终的做法。
我没有尝试直接包含条件部分,
.xbindkeysrc
而是制作了一个单独的脚本,该脚本将循环足够快以运行或杀死xbindkey
守护进程然后在我的
.xbindkeysrc
里面我写了所有的 Emacs 和弦。而且我还
systemd
用来在启动时运行脚本。希望对您有所帮助。