这似乎是一个令人惊讶的复杂问题,更糟糕的是,我不确定这是我所做的配置更改还是 ubuntu 的更新导致了问题。我在 Asus K55A 上运行 Ubuntu Studio 14.04,所有最新更新(Linux 版本 3.13.0-30-lowlatency (buildd@kissel))。事情是这样的:
- 我的键盘丢失了一些键(由于极端的热带湿度),即主要的“输入”键。
- 使用小键盘回车键(“KPEN”)在vim中不起作用(我不知道vim如何解释它发送的键码(104),但它不断插入“M”)
- 因此,我深入研究了 xkb 文件并将所有 KPEN 映射从 更改
KP_enter
为Return
- 同时,我执行了一堆积压的更新,由于带宽较低,上个月我没有执行这些更新。
- 在这两个事件之后的某个时刻,我的 KP Enter 键开始在 vim 中工作(大概是因为我所做的更改),但我不再能够切换键盘布局。
现在,这是问题的更详细描述:
- 在我的配置中,我已经并且已经拥有了,因为我的配置中没有任何更改 - 我的默认键盘布局为(西班牙语)
EN_US
,辅助布局为LATAM
(西班牙语)。为了在它们之间切换,我使用shift+caps lock
. xfce4-xkb-plugin 按预期工作。 - 在这个神秘事件之后,我的配置看起来仍然相同,但是按下
shift+caps lock
除了激活大写锁定之外什么也不做。此外,尽管我的键盘设置中定义了第二种布局,但 xfce4-xkb-plugin 不显示任何其他布局选项。
这是我所做的诊断:
- 用过一个不同的键盘。失败:问题仍然存在(并且没有预料到,因为所有症状都指向软件问题)
- 已配置仅拉丁美洲布局在我的键盘设置中(即删除了美国键盘作为选项)。失败:键盘布局仍然是英文。
- 切换到电传打字机1使用
ctrl+alt+F1
并输入sudo loadkeys latam
.成功:拉丁字符起作用。 - 切换回电传打字机7(即我的桌面环境),失败:发现键盘还是英文的。
- 在我的桌面环境中,我打开xterm然后又做了
sudo loadkeys latam
一次。失败:没有错误,但不起作用任何一个。 - 然后我做了
sudo loadkeys --verbose latam > /tmp/latam.keys
和sudo loadkeys --verbose us > /tmp/us.keys
和跑了一个差异来验证这两个文件确实不同。文件不同(这是有道理的,并且表明 loadkeys 正在正确地完成其工作)。 - 我然后创建了一个新帐户,测试我,然后登录以查看问题是否是系统范围的。失败:问题是系统范围的。无法切换布局。
- 搜索xkb 在进程列表中。什么也没有出现。也许这很正常,但我至少期望有一个 xkb 守护进程来处理翻译之类的事情。
我跑了
setxkbmap -v 10 latam
。失败:我得到以下输出:setxkbmap -v 10 latam Setting verbose level to 10 locale is C Warning! Multiple definitions of keyboard layout Using command line, ignoring X server Trying to load rules file ./rules/evdev... Trying to load rules file /usr/share/X11/xkb/rules/evdev... Success. Applied rules from evdev: rules: evdev model: pc105 layout: latam Trying to build keymap using the following components: keycodes: evdev+aliases(qwerty) types: complete compat: complete symbols: pc+latam+inet(evdev) geometry: pc(pc105) Error loading new keyboard description
不幸的是,我对按键翻译子系统不太了解,所以我现在有点卡住了。在我看来,也许由于某种原因,系统只是丢弃整个用户配置并退回到系统设置,但我不知道为什么loadkeys
在 xterm 中不起作用。
无论如何,我就这样吧。我很乐意提供任何新信息。谢谢!
-凯尔
答案1
好吧,不幸的是,几天后运气不佳,我决定重新安装操作系统。我安装并运行了所有更新,再次将 KPEN 更改为 Return,最后得到了一个功能正常的键盘。我不知道之前发生了什么,所以不幸的是我无法向其他试图解决此问题的人提供任何见解......抱歉!