Cas*_*son 6 linux keyboard console keyboard-layout
我想重新映射CapsLock到Esc当单独按下时以及Ctrl在不使用 X 的情况下用另一个键按下时。
这类似于上一个问题(将CapsLock 重新映射到 Escape 和控制系统范围),但我专门寻找没有 X 的解决方案。
要更改虚拟终端 ( alt+ f1- alt+ f6)的键盘映射,请使用 loadkeys。这仅影响虚拟终端登录,不会更改X 或 X 终端应用程序(如Xterm或urxvt )中的键盘映射。
loadkeys 命令需要以 root 身份运行,否则会出现以下错误:
Couldn't get a file descriptor referring to the console
要交换escape,caps_lock您将执行以下操作:
# echo keycode 58 = Escape | loadkeys -
# echo keycode 1 = Caps_Lock | loadkeys -
Run Code Online (Sandbox Code Playgroud)
另一种选择是重新映射Caps_Lock到shift+ Scroll Lock
# echo keycode 69 = Num_Lock Caps_Lock | loadkeys -
Run Code Online (Sandbox Code Playgroud)
键映射的格式可能有点混乱。它使用加权系统,具体取决于按下的修饰符。(Ctrl、Alt、Shift 等)。作为来自键盘映射手册页的示例。
keycode 30 = a A VoidSymbol VoidSymbol VoidSymbol .....
Run Code Online (Sandbox Code Playgroud)
当shift按下和 a时,我们在第二列中执行操作,因为 shift 的权重为 1。control另一方面,权重为 4。
这可能会在映射修饰符时导致问题。举个例子,如果一个键编码第一个也是唯一的列control作为它的动作。现在,自从您按下它以来的权重现在是 4,当您释放该键时,它control不会显示已释放,因为现在要执行第 5 列操作,但它没有定义任何操作。所以control密钥永远不会被释放。
这就是为什么大多数修饰符没有分配其他动作的原因。如果在键盘映射中只定义了一个动作,那么它会应用于所有动作。
我一直在尝试解决这个问题,但只得到了不一致的结果。有时修饰符会释放,有时不会。
更改 Caps Lock 以作为转义或控制执行此方法效果很好。映射到两者,不是那么多。
如果您搞砸了键盘映射,请执行以下操作来重置它。
# loadkeys -d
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1023 次 |
| 最近记录: |