我已经在其上安装了 ubuntu 12.04.1 和 x2goclient。
当连接到 x2goserver(ubuntu 12.04.1)时,箭头键无法正常工作
例如:向下键的作用类似于 Enter
有人也遇到过这个问题吗?
答案1
问题在于键盘布局。
那是空的,我将其更改为英语(美国),现在它可以正常工作。
答案2
我想解释一下发生的事情:
在您的本地 X11 上,您的键盘的键代码是:
- 111 为▲(向上箭头键)
- 104 用于ENTER键盘
但在 x2go 上,相同的按键会产生不同的密钥代码!
- 104 为▲(向上箭头键)
我不知道 x2go 的实现为什么会这样做(而不是原封不动地转发密钥代码!),但事实就是这样。并非所有密钥代码/密钥都会发生这种情况。
因此,当您指示 x2go 对 XKB 设置不执行任何操作时,分配 keycode -> keysym 实际上是相同的,并且 keycode 104 仍然具有相同的结果:键盘的ENTER。
有趣的是:这个映射背后有一个模式!x2go 方面似乎使用在“旧”XKBROOT/keycodes/xfree86
文件中写下的键代码,而“现代”Linux 桌面的键代码来自 evdev,而 evdev 的键代码则写在文件中XKBROOT/keycodes/evdev
。
结果:您总是必须在 x2go 中加载新的 XKB 配置。让 x2go 客户端自行启动或加载您自己的配置,但请记住使用 xfree86 规则(或直接从 xfree86(同名)的密钥代码)。
答案3
在服务器上运行:
setxkbmap us -print | xkbcomp - $DISPLAY
它转储美国英语键盘映射表,并用它重新初始化你的 X。
答案4
在我的情况下,我使用的是 Archlinux,并且 x2goserver 需要xorg-setxkbmap
和xorg-xkbcomp
要在服务器端安装的包,尽管x2goserver
包本身没有将这些包列为依赖项。如果没有它们,它就无法应用键盘设置。您可以使用以下命令在 Archlinux 中安装它们:
sudo pacman -S xorg-setxkbmap xorg-xkbcomp
我呈交了错误报告。