在 xkb 中重新映射 Caps Lock 和 Shift+Caps Lock

在 xkb 中重新映射 Caps Lock 和 Shift+Caps Lock

我正在尝试配置 xkb,以便将 Caps Lock 映射到 Compose 键,并将 Shift+Caps Lock 功能作为传统的 Caps Lock。我将以下内容放入一个名为的新文件中/usr/share/X11/xkb/symbols/gdwatson

partial modifier keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ]
    };
};

然后我跑了setxkbmap -symbols 'pc+us+gdwatson(compose)',成功完成了。 Caps Lock 用作 Compose,但 Shift+Caps Lock 用作 Compose,而不是 Caps Lock。 xkbcomp :0.0揭示了以下内容:

key <CAPS> {
    type= "TWO_LEVEL",
    symbols[Group1]= [       Multi_key,       Multi_key ]
};

由于某种原因,第二级符号映射正在复制第一级符号映射,而不是我试图赋予它的单独值。有谁有足够强大的 xkb-fu 来告诉我我做错了什么或如何解决它?

答案1

这似乎可以实现您正在寻找的目标。

partial modifier_keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

在处理 XKB 时,以下资源非常宝贵(为了面向未来,我已链接到 WayBack Machine 的这些页面的镜像):

相关内容