我需要认真的帮助,我的 Enter 键刚刚损坏,无法再正常使用终端。我在键盘上分酒,除回车键外,所有键都可以正常工作。
所以我想问一下我是否可以像使用 Windows 那样将它映射到不同的键
谢谢您的帮助
您需要有两个应用程序:xev 和 xmodmap,两者都是命令行工具。
运行xev。然后按您想要更改其行为的键。即输入。然后xev将输出有关按下的键的一些信息。注意第三行。应该是这样的:
state 0x10, keycode 110 (keysym 0xff55, Prior), same_screen YES,
Run Code Online (Sandbox Code Playgroud)
在此示例中,Prior 是当前为该键分配的行为的名称,数字键码是识别该键的内部 id。现在用另一个键执行此操作,即 PgDown 给出此输出
state 0x10, keycode 115 (keysym 0xff56, Next), same_screen YES,
Run Code Online (Sandbox Code Playgroud)
对我们来说,有趣的部分又是键码 115 和 Next。现在,当您想要交换两个键时,请使用 xmodmap。
xmodmap -e "keycode 110 = Next"
Run Code Online (Sandbox Code Playgroud)
这会将键盘上键码为 110 的键更改为“下一步”操作。这很简单。
如果您幸运地打开了终端,请同时按Ctrl+ Shift+ U,然后按Shift+ A(大写 A)插入“Enter”的 Unicode。
否则,您将必须使用屏幕键盘(可能已安装作为辅助工具)或使用外部键盘。
使用命令获取要重新映射的按键的键码xev。
KeyRelease event, serial 34, synthetic NO, window 0x4a00001,
root 0xc5, subw 0x0, time 482692681, (-95,23), root:(499,342),
state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)
按下右 Shift 键(键码为 62)时的输出示例。
Return使用命令重新映射所需的键码xmodmap,例如:
xmodmap -e "keycode 62 = Return"
Run Code Online (Sandbox Code Playgroud)
将键码 62 从 重新映射Shift_R到Return。
当您对当前的键盘映射感到满意并希望在将来的 X 会话中使用它时,请运行以下命令来保存它:
xmodmap -pke > ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)R Shift内核密钥代码为 54 的那个。运行以下命令来转储当前的键盘映射:
dumpkeys > ~/keymap.dmp
Run Code Online (Sandbox Code Playgroud)现在,修改转储的键映射:如果要使用右移,则需要将键码 28 的行为复制到新键码,即键码 54。您可以在文本编辑器中手动执行此操作或使用以下命令(将行为从键码 28 复制到键码 54):
sed -n '/keycode *28 = /p' ~/keymap.dmp > ~/keymap.return
sed -i 's/28 =/54 =/' ~/keymap.return
sed -e '/keycode *54 = /!b;r '$HOME'/keymap.return' -e 'd' ~/keymap.dmp > ~/keymap.new
Run Code Online (Sandbox Code Playgroud)
您的新键盘映射现在位于 ~/keymap.new 中
在控制台中加载新的键盘映射(需要 root 访问权限):
sudo loadkeys ~/keymap.new
Run Code Online (Sandbox Code Playgroud)对结果感到高兴吗?在 Ubuntu 上,您可以更改 中的默认键盘设置/etc/default/keyboard。将修改后的键盘映射文件复制到安全位置,并了解如何在启动时自动加载它,这样您就不需要loadkeys每次都运行。
| 归档时间: |
|
| 查看次数: |
22571 次 |
| 最近记录: |