我只能单独设置:在大写锁定上切换布局或交换 Esc 键和大写锁定键,但尝试同时执行这些操作没有成功。我想要的最后一个变体是让大写锁定行为像 Esc 键一样,并使用 Esc 键进行布局切换。
我尝试过这样的事情:
setxkbmap -option grp:switch,grp:caps_toggle,grp_led:caps,caps:swapescape us,ru
答案1
xmodmap
如果您无法使用 ,则可以使用 来交换按键setxkbmap
。您需要使用remove Lock
caps lock 修饰键,因为它是一个“特殊”键。
remove Lock = Caps_Lock
keycode 66 = Escape NoSymbol
keycode 9 = Caps_Lock ISO_Next_Group
您可以将上述内容放在您的中~/.Xmodmap
,如果您的中有正确的命令,则在启动时仍会读取该内容~/.xinitrc
,正如我在此答案中进一步解释的那样:
但是,您不能轻易混合xmodmap
和setxkbmap
命令,因为后者会取消前者所做的更改,正如我们在评论中所讨论的那样。
xmodmap
要在终端中执行这些命令来测试它们,你可以运行,例如,
xmodmap -e "remove Lock = Caps_Lock"
但您只能将其放置remove Lock = Caps_Lock
在您的~/.Xmodmap
文件中,正如我在上面链接的答案中进一步解释的那样。
答案2
使用 xmodmap 来切换按键。
您可以编写一个文件...例如将其命名为 .switch_keys
键码 9 = Caps_Lock 键码 66 = Escape
这会重新定义我键盘上的键码。检查xev
您的键盘是否使用相同的键码。
保存文件并通过运行安装 modmap xmodmap .switch_keys
。在使用 setxkbmap 配置布局切换后执行此操作。
此后,您的 Esc 键将充当 Caps Lock 键,反之亦然。