我有一个 Microsoft Ergonomic 4000 键盘,并且正在运行自定义键盘映射(dvorak 以及一些用于变音符号的内容):
- http://pingus.seul.org/~grumbel/tmp/md5/b054e11505c88e1bfc6ebd5da46bdb78-xmodmap_pke
- http://pingus.seul.org/~grumbel/tmp/md5/f5e42a5b8ba4a034c5945f719b3d2608-xmodmap_pm
多年来,这个功能一直运行良好,现在依然如此,只是现在 Mode_switch 键卡住了。当我同时按下 Control_R 和 Mode_switch 时(经常发生意外情况),Mode_switch 键会进入“卡住”状态,之后我输入的所有字母都会以变音符号形式显示,就像按下了 Mode_switch 一样。我可以通过再次同时按下 Control_R 和 Mode_switch 来解除 Mode_switch 的卡住,但这会使 Gnome 处于损坏状态,不再对我的 Gnome 键盘快捷键做出反应。窗口管理器仍会记录按键本身,因为可以看到应用程序中的变化(Gnome 终端中的光标将变成未填充的矩形,就像应用程序失去焦点一样),但不会触发绑定操作。
有人知道是什么原因造成的吗?或者有人知道我该如何调试吗?
xev 似乎在这里没有帮助,因为它报告正常的 KeyPress/KeyRelease 事件,即使按键卡住了。此外,当 Gnome 键绑定处于“损坏”状态时,根本不会报告。我猜它们在到达 xev 之前就被窗口管理器捕获了。
我正在使用带有 Gnome 和 Metacity 的 Ubuntu 10.04,我已禁用所有与 OpenGL 相关的效果,因此 Compiz 不会干扰。
一些关于哪些应用程序参与 Gnomes 键绑定处理的一般信息也会有所帮助,因为我假设它是 metacity,但重新启动 metacity 并不能解决问题。
答案1
其他人(包括我)也遇到了类似的问题;参见http://ubuntuforums.org/showthread.php?t=1485176(不包括解决方案但确认它不仅仅是硬件)。
答案2
我找到了这个解决方法:
$ setxkbmap -layout us
读https://rogerkeays.com/alt-tab-shortcuts-broken-in-ubuntu-lucid-with-xmodmap更多细节。
答案3
正如您所说,这个键盘多年来一直运行良好,所以这更像是硬件问题。
可能是按键下方有灰尘,导致按键卡住。
在这种情况下,简单的清洁可能会解决问题。
您也可以先尝试使用另一个键盘(如果有)来验证问题是否确实是键盘。