我正在尝试按应用程序显示键盘事件x输入。我尝试了三个工作站。在前两个工作站(在本地 X 会话中)上,一切都很好:
获取设备列表:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ HID 1241:1177 id=8 [slave pointer (2)]
⎜ ↳ SIGMACH1P USB Keykoard id=10 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ SIGMACH1P USB Keykoard id=9 [slave keyboard (3)]
设备事件:
$ xinput test 9
key release 36
key press 48
key press 47
key release 48
key press 46
lkey release 47
key release 46
key press 41
key press 36
key release 41
key release 36
key press 62
key release 62
key press 37
但在第三个工作站上,我从 X 终端连接x2go(从 Windows 7 连接)。在此工作站中,xinput 无法履行其功能。 Xinput 找不到设备和段错误。
$ xinput
"pointer" id=0 [XPointer]
"keyboard" id=1 [XKeyboard]
$ xinput test 1
unable to find device '1'
$ xinput test-xi2 1
"keyboard" id=1 [XKeyboard]
Num_keys is 248
Min_keycode is 8
Max_keycode is 255
Segmentation fault
问题一:如果从 X 终端连接到 X 服务器稳定,xinput 原理不起作用?或者这是标准 X11 应用程序中的错误?
问题2:如果从 X 终端 (x2go) 连接,如何替代获取全局键盘事件(按下和释放键)?
环境:
来自连接:Windows 7 Pro,来自网站 x2go.org 的官方 X2GO 客户端。
连接:Debian 7.8、LXDE、来自站点 x2go.org 的官方服务器 X2GO。
答案1
分段错误是程序中的错误xinput
。
有限的设备集和缺少的 X 输入功能看起来缺乏对 x2go X 服务器的较新版本的 X 输入扩展的支持。