当我编程时,我喜欢交换这些键:
Esc? Tab Ctrl?CapsLock
在 中~/.xmodmap
,我指定了这些重新映射:
keycode 66 = Control_L
keycode 37 = Caps_Lock
keycode 23 = Escape
keycode 9 = Tab
Run Code Online (Sandbox Code Playgroud)
在Escape
与Tab
键互换,但没有任何问题,而不是Caps_Lock
和Control_L
交换,这两个按键变成Caps_Lock
。
无论我尝试做什么,都不Caps_Lock
会将Control 键分配给(键码 66)。如果我离开keycode 66 =
,则键未分配,但是当我分配Control_L
或 时Control_R
,它就不起作用。但是,如果我分配一些其他键,例如keycode 66 = Tab
,,它会被分配,没问题。
就像 xmodmap 只是不想交换 Caps Lock 和 Control 键。真令人沮丧。任何帮助/指针都会非常有帮助。
PS:我正在使用 Archlinux。
该xmodmap的(1)手册页有整整一个这样的例子
!
! Swap Caps_Lock and Control_L
!
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
Run Code Online (Sandbox Code Playgroud)
但是如果你想按照你开始的方式完成它,我认为你至少需要添加remove
和add
行
remove Lock = Caps_Lock
remove Control = Control_L
keycode 37 = Caps_Lock
keycode 66 = Control_L
add Lock = Caps_Lock
add Control = Control_L
Run Code Online (Sandbox Code Playgroud)
我猜这就是基于这一段的情况
add MODIFIERNAME = KEYSYMNAME ...
This adds all keys containing the given keysyms to the indi?
cated modifier map. The keysym names are evaluated after all
input expressions are read to make it easy to write expressions
to swap keys (see the EXAMPLES section).
Run Code Online (Sandbox Code Playgroud)
这听起来像是修改器更改(移位、控制等)在您运行之前不会应用。
(逻辑上与 相同remove
)
该keycode
版本具有幂等的优点,这意味着如果多次运行 xmodmap,效果不会改变。
松散相关的答案:我想将大写锁定键重新映射到左控件,而不更改实际的左控件。xmodmap 手册页还提供了解决方案:
keycode 66 = Control_L
clear Lock
add Control = Control_L
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6365 次 |
最近记录: |