我一直在寻找解决上述问题的方法。
我试过
xmodmap -e "keycode 66 = Alt_L"
但显然结果是CapsLock键被映射到Left-SHIFT,这不是预期的行为。
从我的搜索中,我了解到xmodmap
已经过时了,我应该改用setxkbmap
。但是,我发现很难重新映射不属于 默认选项的键xkb
(例如,我可以映射CapsLock到Left-CTRL但不能映射到Left-ALT)。
我该如何使用setxkbmap
才能达到这个目标?
答案1
我在这里找到了解决方案:
https://unix.stackexchange.com/questions/9635/how-to-assign-another-modifier-to-alt-key-for-x11
它实现了我想要的,尽管方式相当丑陋(我非常希望用这个重新映射创建一个新的 xkb 选项,但我无法让它工作)
更新
上面的解决方案不允许我为 LALT 保留两个不同的密钥。相反,我遵循了这具有以下符号定义的指南:
// This changes the <CAPS> key to become an Alt modifier,
// but it will still produce the Caps_Lock keysym.
hidden partial modifier_keys
xkb_symbols "alt" {
replace key <CAPS> {
type[Group1] = "ONE_LEVEL",
symbols[Group1] = [ Caps_Lock ],
actions[Group1] = [ SetMods(modifiers=Mod1) ]
};
modifier_map Mod1 { <CAPS> };
};