我使用的是 20.04 Ubuntu 机器。
setxkmap
我一直在尝试使用和的组合xcape
将 AltGr 和转义键映射到我的大写锁定键上,其中快速按键充当逃脱和一个较长的按键时间充当替代组。
我相信可以通过执行以下操作来实现所需的行为:
$ setxkbmap -option lv3:caps_switch
$ xcape -e 'Caps_Lock=Escape' -t 300
然而,一旦执行了 setxkbmap 命令,xcape 进程/守护进程就不再使大写锁定在点击时充当转义符。我不完全确定为什么自从xcape进程仍在运行,所以我可能只是忽略了 setxkbmap 的工作原理(我尝试以不同的顺序执行命令,但结果相同)。
我将如何实现所需的行为?
为什么无论我在执行 setxkbmap 命令之前/之后是否执行 xcape,setxkbmap 都会“沉默”xcape 守护进程?
答案1
setxkbmap
与您的问题无关,文档X角提到(强调我的):
-t <timeout ms>
如果您按住按键的时间超过此时间暂停, x 角不会生成按键事件。默认值为 500 毫秒。
答案2
可以通过执行以下命令来实现所需的行为:
# create daemons that map Caps Lock with AltGr and Escape (escape is timed out)
$ xcape -e "#66=Escape" -t 300
$ xcape -e "#66=ISO_Level3_Shift"
# changes current X keyboard session configuration
$ setxkbmap -option lv3:caps_switch