我正在尝试禁用 Capslock 并进行以下重新映射:
Ctrl+Capslock => Capslock
Alt+Capslock => Escape (since my Escape key is broken)
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试使用 Xmodmap。
我只有以下几点:
keycode 66 = NoSymbol Caps_Lock
Run Code Online (Sandbox Code Playgroud)
这会禁用 Capslock 并将 Shift+Capslock 映射到 Capslock,但我想要的是 Ctrl+Capslock 而不是 Shift+Capslock。
我不知道如何将 Alt+Capslock 映射到 Escape 键。
我想澄清一下,我不需要使用 Xmodmap 的答案,任何方法都可以。
Xmodmap 无法满足您的要求,但它可以让您接近。
修改键行为的基本语法是
xmodmap -e "keycode KEYCODE = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"
xmodmap -e "keysym KEYSYMBOL = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"
Run Code Online (Sandbox Code Playgroud)
在哪里
KEYSYMBOL2
在按下 的同时按下该键时会触发Shift。KEYSYMBOL3
在按下 的同时按下该键时会触发ModeSwitch。KEYSYMBOL4
Shift当按下+的同时按下该键时会触发ModeSwitch。KEYSYMBOL1
当按下没有上述情况的按键时会被触发。我们无法设置Ctrl或Alt成为ModeSwitch键,因为没有键可以充当两个不同的修饰符。
不过,我们可以CapsLock把关键变成ModeSwitch:
xmodmap -e "keysym Caps_Lock = Mode_switch Mode_switch"
Run Code Online (Sandbox Code Playgroud)
要将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"
Run Code Online (Sandbox Code Playgroud)
注意CapsLock这里是修饰键,所以你必须先按这个键。
我们无法以相同的方式将CapsLock+Alt或CapsLock+重新映射Super为,因为和在单独按下时和用作修饰键时提供不同的功能。EscapeAltSuper
其他所有键都可以正常工作。例子:
对于CapsLock+ `(标准美国布局),请使用
xmodmap -e "keysym grave = grave asciitilde Escape"
Run Code Online (Sandbox Code Playgroud)对于CapsLock+ Space,使用
xmodmap -e "keysym space = KP_Space KP_Space Escape"
Run Code Online (Sandbox Code Playgroud)尖端:
要使重新映射永久化,请在主文件夹中创建/编辑文件.gnomerc
并在其中保存相应的命令。
要撤消所有重新映射,只需执行
setxkbmap
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
2156 次 |
最近记录: |