在 Windows 中,我可以将 Caps Lock 设置为第二个 Enter,可以用左手小指按下。我将此参数添加到注册表中来执行此操作:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "扫描码映射"=十六进制:00,00,00,00,00,00,00,00,02,00,00,00,1c,00,3a,00 ,00,00,00,00
我怎样才能在 Linux 中做同样的事情?
答案1
最接近的等价方法是运行xmodmap
每次登录时都进行编程。
.Xmodmap
将以下代码片段放入您的主目录中名为的文件中:
keycode 66 = Return
clear Lock
您可以通过运行来查看按键代码和当前关联的按键名称xev
从终端。Caps Lock当 xev 窗口聚焦时按下,您会看到类似的内容
KeyPress event, serial 29, synthetic NO, window 0x7c00001,
root 0x105, subw 0x0, time 96597741, (1548,225), root:(3151,256),
state 0x0, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
" XLookupString gives 1 bytes: (0d) "
" XmbLookupString gives 1 bytes: (0d) "
XFilterEvent returns: False
对于大多数按键,您只需要那根keycode
线。修饰符是单独跟踪的:您需要将键符号(指令右侧的内容keycode … = …
)与修饰符相匹配。该指令从所有键中clear Lock
删除Lock
修饰符(Caps Lock 或 Shift Lock)。
根据您的发行版和桌面环境,将这些行添加到可能或可能不够~/.Xmodmap
:许多设置(但不是全部)在登录时自动读取此文件。如果您没有,请xmodmap ~/.Xmodmap
在登录时运行该命令。如何执行此操作取决于您选择的桌面环境。
答案2
在我的 .Xmodmap 文件中我Caps Lock转向Escape
clear Lock
keycode 0x42 = Escape
把它变成Return你想要的样子,这会成功
clear Lock
keycode 0x42 = Return
非常有趣的是,它可以用于其他组合键,例如我有
keycode 0x87 = Insert
这变成Context Menu key了关键Insert。 (当然对我来说很有趣)
就像吉尔斯的回答所说,您可以用来xev
确定要重新分配的键的键码。
不要忘记您必须启动:
xmodmap ~/.Xmodmap
在您用户的窗口管理器的启动脚本中,以便为您登录的每个新会话考虑密钥重定向。