Vay*_*ayn 37 linux console keymap
我想交换Esc并CapsLock在控制台中(不是在 X 中,并使用xev),我该怎么做?
我的操作系统是 Ubuntu。
les*_*ana 64
在虚拟控制台上操作键盘布局的工具是loadkeys、dumpkeys和showkey。阅读他们的联机帮助页并了解他们的复杂性。
请注意,这些工具只能在虚拟控制台中运行,而不能在 gnome 等图形环境中的终端模拟器中运行。了解差异阅读此问题和答案:https : //askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal .
这是做您想做的事情的简短指南:
保存您当前的键盘布局:
$ dumpkeys > backup.kmap
Run Code Online (Sandbox Code Playgroud)
如果出现问题,您可以使用以下命令恢复您的键盘映射:
$ sudo loadkeys backup.kmap
Run Code Online (Sandbox Code Playgroud)
如果键盘乱七八糟,您甚至无法执行此操作,那么您唯一不涉及古老内核魔法的选择就是重新启动。
检查分配给您的键的键码:
$ showkey
Run Code Online (Sandbox Code Playgroud)
现在按下 ESC 键和 CAPSLOCK 键。键码应该显示在屏幕上。记下键码。在我的系统上,ESC 的键码为 1,CAPSLOCK 的键码为 58。showkey将在 10 秒不活动后终止(至少在我的 ubuntu 10.04 上是这样)。
请注意转储键中的 ESC 和 CAPSLOCK 键的名称:
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
Run Code Online (Sandbox Code Playgroud)请注意 dumpkeys 中的 keymap 行:
$ dumpkeys | head -1
keymaps 0-127
Run Code Online (Sandbox Code Playgroud)创建一个切换 ESC 和 CAPSLOCK 的键盘映射文件:
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
Run Code Online (Sandbox Code Playgroud)加载键盘映射:
$ sudo loadkeys swap_esc_capslock.kmap
Run Code Online (Sandbox Code Playgroud)测试:测试 CAPSLOCK 键是显而易见的。只需按他们的 CAPSLOCK 键并检查其他键是否大写。要测试 ESC 键,您可以使用 CTRL+V 后跟 ESC。它应该打印^[. CTRL+V 使 shell 逐字打印下一个键而不是解释它。
要在每次重新启动时加载此修改,请将以下行放入您的/etc/rc.local文件中:
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Run Code Online (Sandbox Code Playgroud)
从各个页面收集的信息,包括但不限于: