我的键盘损坏了,键盘上的 [é] 键总是被按下,这让我无法工作。在 Windows 上,我找到了软件 sharpkey 来禁用 [é] 按钮,但在 Ubuntu 上我找不到解决方案。在许多论坛上,他们谈到了 Xmodmap,但我无法在终端上工作,因为 [é] 按钮经常被按下。请您能给我一个解决方案吗?谢谢
答案1
我会尝试:
在那里连接 USB 键盘,或者使用 ssh 进入机器。
打开终端,然后运行
xev -event keyboard
。它会在屏幕上显示一些内容。如果你省略参数,你会注意到,如果你移动鼠标,它也会显示更多内容。然后按下要禁用的组合键 [é]。屏幕上的信息将会改变,您必须查找该
keycode
值。运行类似这样的操作,改变您在上一步中
<value>
获得的值:keycode
xmodmap -e 'keycode <value>='
例如,如果我想禁用
~
键(Shift + ` ),我必须运行:xmodmap -e 'keycode 49='
我只尝试过更多标准键,例如大写锁定... 但我想它也应该适用于此。希望这会有所帮助!
答案2
我个人使用的简单 bash 脚本已上传至https://github.com/anitaggu/ikbdop。
要禁用笔记本电脑的内置键盘,
./ikbdop.sh detach
再次启用键盘
./ikbdop.sh attach
还上传了一份简短的操作指南YouTube
答案3
上述方法都不适用于 Wayland。我不确定其他桌面环境是否适用,但在 sway-wm 上禁用特定键盘上的特定键的最简单方法是使用 keyd。但是它需要终端,我建议您在移除物理键盘后使用 USB 键盘,直到完成此操作。
- 从 GitHub 克隆 keyd,构建它并启动守护进程。
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable keyd && sudo systemctl start keyd
- 找到有问题的键和键盘的名称。运行
sudo keyd monitor
后会得到类似这样的结果:
device added: 0fac:0ade keyd virtual keyboard (/dev/input/event20)
device added: 03f0:5341 PIXART HP Wireless Keyboard and Mouse Consumer Control (/dev/input/event18)
device added: 03f0:5341 PIXART HP Wireless Keyboard and Mouse (/dev/input/event17)
device added: 03f0:5341 PIXART HP Wireless Keyboard and Mouse (/dev/input/event7)
device added: 06cb:7f13 Synaptics TM3253-001 (/dev/input/event5)
device added: 0001:0001 AT Translated Set 2 keyboard (/dev/input/event0)
keyd virtual keyboard 0fac:0ade enter up
keyd virtual keyboard 0fac:0ade kp5 down
我连接了两个键盘。一个带有PIXART HP Wireless
,03f0:5341
另一个 AT Translated Set 2 keyboard
带有0001:0001
。这些代码是 keyd 用来识别键盘的。因此,请记下代码和键名,以备下一步使用。最后一列给出了键名。在这里,我按下enter
了kp5
。
- 编辑文件
/etc/keyd/default.conf
以:
[ids]
0001:0001 #code of attached keyboard from earlier
[main]
kp5 = noop #Ignore the key 'kp5'
- 最后,
sudo keyd reload
要禁用所有键盘上的特定键。编辑default.conf
上述内容
[ids]
*
[main]
kp5 = noop
答案4
1)检测要禁用的键盘键的键码:
方法A:
此方法仅在您尝试禁用常规键时才有效,而不是 F1、F2、F3....等
当你阅读这个答案时,右键单击我的答案的任意位置->单击检查元素或者检查,将此代码粘贴到安慰Tab 并按 Enter 键:
window.addEventListener('keypress', (e) => console.log(e.keyCode) )
再次用鼠标左键单击我的答案,然后按下要禁用的键,您会注意到在安慰浏览器。
复制该号码并执行下一步。
方法B:
此方法适用于键盘上的每个键
打开终端xev
,并按如下方式使用该实用程序:
$ xev -event keyboard
将会打开一个小窗口,按下您想要禁用的键盘上的键,然后关闭小窗口,您会注意到终端上的输出,在此输出中,您将看到类似的内容keycode 93
。复制该键盘键的键码并执行下一步。
2)禁用该键:
打开终端xmodmap
,并按如下方式使用该实用程序:
xmodmap -e 'keycode <value>='
- 代替上面的内容
<value>
,将其替换为关键代码您从步骤 1 中获得的方法 A 或 B。