% uname -a
Linux phoebe 3.2.0-33-generic #52-Ubuntu SMP Thu Oct 18 16:29:15 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
我在输入本文的机器上运行的是 12.04,并且已经运行了很长时间。我刚刚进行了 dist-upgrade,它包含了一些 Firefox 更新(现在已更新到 17.0.1)。重新启动浏览器后,我惊讶地发现我无法输入反引号或波浪号。它们在更新前几分钟还可以使用,但现在不行了。
我使用 Deck 键盘,并且重新映射了反引号/波浪号键。我已经使用这个键盘很多年了,重新映射一直有效:
% xmodmap -pk | egrep tilde
133 0x0060 (grave) 0x007e (asciitilde) 0x0060 (grave) 0x007e (asciitilde)
我可以在 xterm 窗口、Chrome、gvim、gedit 等中输入这些字符。Firefox 到底怎么了?我找不到任何相关的配置选项,而且我当然没有对它们进行修改。我也试过重启它几次。
我将尝试运行一个新的干净的配置文件,看看是否有区别;我确实有一些附加组件,但没有什么新的,也没有什么特别疯狂的东西。编辑不,也无法在普通的个人资料中输入字符。
编辑— 重新安装了 Firefox,情况还是一样。
再次编辑— 我还发现 VirtualBox 似乎忽略了 xmodmap 重新映射。我基本上将重音符/波浪符键与另一个重新映射到“Alt”的键交换了。现在在 VirtualBox 中(我不认为它一直都是这样,但我不能 100% 确定),我可以使用交换为“Alt”的键输入反引号或波浪符。然而,这在 Firefox 中不起作用 — 这两个键都不能用作重音符/波浪符键,尽管我刚刚验证了 Firefox 中重新映射的“Alt”键确实可以工作(作为“Alt”)!!
再次编辑— 升级到 12.10,同样的问题。某物已更改某处,因为我 100% 肯定该密钥在今天和过去几个月内一直有效。(为什么?如何在 Markdown 中引用内联代码片段?我在 Stackoverflow很多这就是我注意到它坏了的原因。)
答案1
我的老(我的意思是老的) xmodmap 重映射文件包含以下两行关键代码:
keycode 49 = Alt_L
keycode 133 = grave asciitilde
这两行完成了重新映射仅部分。我没能做到的是:
add mod1 = Alt_L
remove mod4 = Super_L
我想用作重音/波浪符号的键是修饰键,表示“mod4”,键符为“Super_L”。不知为何,直到昨天才开始出现问题。现在我Firefox
又像以前一样输入反引号了!!
因此,最重要的是:如果您重新映射键符号,请务必检查修饰键映射。您可以通过启动新的 X 会话然后键入以下内容来检查键的初始状态:
xmodmap -pk
然后,使用以下命令查看初始修改器图:
xmodmap
如果您将键符更改为键码,请确保根据需要在修饰符映射中添加/删除它们。
编辑— 哦,您还可以使用xev
它来找出特定键的键码/键符。只需从终端窗口运行它即可;它有点乱,但只需将鼠标悬停在其小窗口上并按下该键几次即可。^C
在终端窗口中使用 (control-C) 来停止它,或者我猜是窗口上的“关闭”按钮。