由于 CentOS 6.4 昨天发布,我开始对其进行测试并发现了一个奇怪的问题,所以我在这里询问,以防其他人可以帮我解决问题。
我的设置
- Linux CentOS 6.3 服务器 + XFCE-4
- 使用 Windows 7 中的 NX 客户端进行远程访问。也可以与 OpenNX.net 客户端配合使用。
- 我有一个国际键盘,型号:pc105 + 布局:es,所有键都工作正常,特殊字符,我不需要做任何特殊的事情来让它工作,它就可以工作。
我运行了yum update
,所有新的软件包都下载了,服务器现在运行的是 CentOS 6.4,其他配置没有变化。
问题是,更新后,当我通过 NX Client 或 OpenNX.net 连接时,键盘未被设置,据我所知:
- 大多数按键看起来像是美式键盘
- 无法输入字母“P”(说真的,这是我唯一无法输入的字母,什么都没有发生)
当我打开终端并执行“setxkbmap”(必须通过 ssh 访问服务器并创建脚本,因为无法在命令中输入“p”)时,这是输出:
Couldn't interpret _XKB_RULES_NAMES property
Use defaults: rules - 'base' model - 'pc105' layout - 'us'
使用一个脚本我设法执行了:
setxkbmap -model pc105 -layout es
这解决了特殊字符的问题,但我仍然无法输入字母“P”
我做过的其他测试:
- 安装了另一个 CentOS-6.4(来自 6.4 CD,无更新)
- 键盘映射在主控制台上运行良好,已使用 GNOME(startx)和 XFCE(startxfce4)进行测试
- 当从其他主机通过 XDMCP 访问时,键盘映射工作正常
- 如果我在服务器上安装 nx/freenx 并配置访问,也会出现同样的键盘问题。
答案1
向 CentOS 提交了一个错误(http://bugs.centos.org/view.php?id=6298)并且似乎这个问题与这个错误有关(https://bugs.freedesktop.org/show_bug.cgi?id=50553)
问题出在 CentOS-6.4 中包含的 xkeyboard-config-2.6-6 包上。
更新:另一种解决方案是,您可以将所有软件包更新到 CentOS-6.4,然后运行以下命令:
# touch /usr/share/X11/xkb/keymap.dir
旧解决方案:同时,我的解决方案是将软件包降级到 CentOS-6.3 中使用的版本,并排除其再次更新。
从以下位置下载旧软件包: http://vault.centos.org/6.3/os/x86_64/Packages/xkeyboard-config-2.3-1.el6.noarch.rpm
强制删除新包并安装旧包:
rpm -e --force xkeyboard-config
rpm -ivh xkeyboard-config-2.3-1.el6.noarch.rpm
为了避免软件包再次更新,请在 /etc/yum.repos.d/CentOS-Base.repo 的 [base] 部分中添加以下行。
exclude=xkeyboard-config-*
答案2
如果您运行的是 Xfce 4.8,则 Super-p 和 Super-Tab 有默认的键绑定,这似乎会给 OpenNX 带来问题。显然有些东西让 Super 键看起来好像卡住了,但不幸的是我不知道这背后的问题。
您可以尝试删除这些绑定,看看是否能快速解决您的问题:
sed -i '/property name="<Super>p"/d' \
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
sed -i '/property name="<Super>Tab"/d' \
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml