将 Caps Lock 映射到 AltGr 和 Escape - 为什么 setxkbmap 会沉默 xcape 守护进程?

将 Caps Lock 映射到 AltGr 和 Escape - 为什么 setxkbmap 会沉默 xcape 守护进程?

我使用的是 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

相关内容