如何在 xkb 中同时设置 vim 键和常规大写字母锁定?

如何在 xkb 中同时设置 vim 键和常规大写字母锁定?

我目前正在使用 Caps 键,ISO_Level3_shift并将 h、j、k、l、$ 和 0 映射到 vim 键。它有效,一切都很好。然而,我使用 SQL,并且我想用大写字母编写 SQL 的所有代码,因此在键入每个字母时很难按 Shift 键。所以,我想要的是按原样使用这个 vim 键,但也能够在进行一些 SQL 编程时切换大写锁定。可能是按住它一段时间或按 Shift+Caps 将其切换回来。

我正在使用 XKB 来实现我正在做的事情,因为 xmodmap 对我不起作用,因为我使用第二个布局,如果我使用 xmodmap,它将无法正常工作。

这是我的/usr/share/X11/xkb/symbols/us文件 - 或者至少是我设置当前设置的部分文件:

    key <AC06> {    [     h,    H,  Left        ]   };
    key <AC07> {    [     j,    J,  Down        ]   };
    key <AC08> {    [     k,    K,  Up      ]   };
    key <AC09> {    [     l,    L,  Right       ]   };
    key <AE10> {    [     0,    parenright, Home    ]   };
    key <AE04> {    [     4,    dollar, End     ]   };
    key <CAPS> {    [  ISO_Level3_Shift             ]       };

这部分位于

default  partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {}

堵塞

在此先感谢您的帮助。

答案1

您可以使用以下命令之一来实现此目的:

将 esc 与大写字母互换:setxkbmap -option caps:swapescape

Shift + Caps 打开大写锁定:setxkbmap -option caps:escape_shifted_capslock

只需在启动时运行其中一个,您就可以将其添加到您的~/.xprofile

来源:man xkeyboard-configman setxkbmap

相关内容