我需要紧急帮助,我的 Enter 键刚被损坏,我无法再正常使用终端。我把饮料洒在键盘上,除了 Enter 键之外,所有键都可以正常工作。
所以我想问一下,我是否有办法将它映射到不同的键,就像我在 Windows 上所做的那样
谢谢您的帮助
答案1
您需要两个应用程序:xev 和 xmodmap,它们都是命令行工具。
运行 xev。然后按下要更改其行为的键。即 Enter。然后xev
会输出有关所按下的键的一些信息。注意第三行。它应该是这样的:
state 0x10, keycode 110 (keysym 0xff55, Prior), same_screen YES,
在此示例中,Prior 是当前分配给该键的行为的名称,数字 keycode 是用于识别该键的内部 ID。现在使用另一个键(即 PgDown)执行此操作,输出如下
state 0x10, keycode 115 (keysym 0xff56, Next), same_screen YES,
这里对我们来说最有趣的部分是键码 115 和 Next。现在,当您想要交换这两个键时,请使用 xmodmap。
xmodmap -e "keycode 110 = Next"
这会将键盘上键码为 110 的键更改为下一步操作。这很简单。
答案2
如果 Enter 键不起作用,如何按此键
如果您很幸运地打开了一个终端,请同时按下Ctrl
+ Shift
+ U
,然后按Shift
+ A
(大写 A)插入“Enter”的 Unicode。
否则,您将必须使用屏幕键盘(可能安装有辅助功能工具)或使用外部键盘。
在 X11 桌面中重新映射键
使用命令获取要重新映射的键的键码
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
按下右 Shift 键时的示例输出,其键码为 62。
Return
使用以下命令重新映射所需的键码xmodmap
,例如:xmodmap -e "keycode 62 = Return"
将键码 62 从 重新映射
Shift_R
到Return
。如果您对当前的键盘映射感到满意并且希望在未来的 X-sessions 中使用它,请运行以下命令来保存它:
xmodmap -pke > ~/.Xmodmap
在本机 Linux 控制台中重新映射键
- 内核键码与 X11 键码不同。我发现此键码表在快速的 Google 搜索中。我会选择
R Shift
内核密钥代码为 54 的那个。 运行以下命令来转储当前的键盘映射:
dumpkeys > ~/keymap.dmp
现在,修改转储的键映射:您需要将键码 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
您的新键盘映射现在位于 ~/keymap.new 中
在控制台中加载新的键盘映射(需要 root 访问权限):
sudo loadkeys ~/keymap.new
对结果满意吗?在 Ubuntu 上,您可以在 中更改默认键盘设置
/etc/default/keyboard
。将修改后的键盘映射文件复制到安全位置,并了解如何在启动时自动加载它,这样您就不必loadkeys
每次都运行。
答案3
添加该行对我有用。
~/ tail -1 .tmux.conf
run-shell 'xmodmap -e "keycode 104 = Return"'