我如何才能同时使用 xkb 在 caps lock 上映射布局切换并使用 escape 键交换大小写?

我如何才能同时使用 xkb 在 caps lock 上映射布局切换并使用 escape 键交换大小写?

我只能单独设置:在大写锁定上切换布局或交换 Esc 键和大写锁定键,但尝试同时执行这些操作没有成功。我想要的最后一个变体是让大写锁定行为像 Esc 键一样,并使用 Esc 键进行布局切换。

我尝试过这样的事情:

setxkbmap -option grp:switch,grp:caps_toggle,grp_led:caps,caps:swapescape us,ru

答案1

xmodmap如果您无法使用 ,则可以使用 来交换按键setxkbmap。您需要使用remove Lockcaps lock 修饰键,因为它是一个“特殊”键。

remove Lock = Caps_Lock
keycode 66 = Escape NoSymbol
keycode 9 = Caps_Lock ISO_Next_Group

您可以将上述内容放在您的中~/.Xmodmap,如果您的中有正确的命令,则在启动时仍会读取该内容~/.xinitrc,正如我在此答案中进一步解释的那样:

但是,您不能轻易混合xmodmapsetxkbmap命令,因为后者会取消前者所做的更改,正如我们在评论中所讨论的那样。

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 键,反之亦然。

相关内容