我正在尝试禁用 Capslock 并进行以下重新映射:
Ctrl+Capslock => Capslock
Alt+Capslock => Escape (since my Escape key is broken)
现在我正在尝试使用 Xmodmap。
我只有以下内容:
keycode 66 = NoSymbol Caps_Lock
这会禁用 Capslock 并将 Shift+Capslock 映射到 Capslock,但我想要的是 Ctrl+Capslock 而不是 Shift+Capslock。
我不知道如何将 Alt+Capslock 映射到 Escape 键。
我想澄清一下,我不需要答案来使用 Xmodmap,任何方法都可以。
答案1
Xmodmap 无法满足您的要求,但是它可以接近您的要求。
修改键行为的基本语法是
xmodmap -e "keycode KEYCODE = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"
xmodmap -e "keysym KEYSYMBOL = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"
在哪里
KEYSYMBOL2
按下 的同时按下 键时触发Shift。KEYSYMBOL3
按下 的同时按下 键时触发ModeSwitch。KEYSYMBOL4
Shift在按下+ 的同时按下 键时触发ModeSwitch。KEYSYMBOL1
当按下不包含上述任何一项的键时会被触发。- ModeSwitch是AltGr默认的(仅适用于某些键盘布局)。
我们不能将Ctrl或Alt设置为ModeSwitch键,因为没有键可以充当两个不同的修饰键。
然而,我们能变成CapsLock钥匙ModeSwitch:
xmodmap -e "keysym Caps_Lock = Mode_switch Mode_switch"
要将CapsLock+重新映射Ctrl到CapsLock键,请执行以下命令。
xmodmap -e "keysym Control_L = Control_L Control_L Caps_Lock"
xmodmap -e "keysym Control_R = Control_R Control_R Caps_Lock"
注意CapsLock这里的是修饰键,因此您必须先按下此键。
我们不能以相同的方式将CapsLock+Alt或CapsLock+重新映射Super到,因为和在单独按下时和用作修饰键时具有不同的功能。EscapeAltSuper
所有其他键均可正常工作。示例:
对于CapsLock+ `(标准美国布局),使用
xmodmap -e "keysym grave = grave asciitilde Escape"
对于CapsLock+ Space,使用
xmodmap -e "keysym space = KP_Space KP_Space Escape"
尖端:
.gnomerc
为了使重新映射永久生效,请在主文件夹中创建/编辑文件并在其中保存相应的命令。要撤消所有重新映射,只需执行
setxkbmap