我正在运行 Lubuntu 16.04,xboxdrv 版本 0.8.6(从 git存储库构建,因为 0.8.5 是 Ubuntu 存储库中可用的版本),使用官方 Microsoft Xbox 360 有线控制器,并运行官方版本的 Steam对于 Linux。
xorg/x11 存在一个问题(我不确定这里更正确的名称,因为我对 Linux 很陌生)默认情况下操纵杆将具有鼠标控制。从Ubuntu 论坛上的这个线程,这可以通过创建来解决/usr/share/X11/xorg.conf.d/50-joystick.conf
:
Section "InputClass"
Identifier "joystick catchall"
MatchIsJoystick "on"
MatchDevicePath "/dev/input/event*"
Driver "joystick"
Option "StartKeysEnabled" "False" # These Two Lines Disable
Option "StartMouseEnabled" "False" # The mouse emulation
EndSection
这解决了问题,并将防止发生以下情况:
移动左拇指杆时,它也会发送EV_KEY
事件(KEY_LEFT
向左移动时等)。
移动右手拇指棒时,会发生不同的事情,具体取决于方向:
- 向上移动右摇杆将鼠标光标移动到 LEFT,
- 向下移动右摇杆将鼠标光标移动到 RIGHT,
- 向左移动右摇杆似乎无济于事,
- 向右移动右摇杆 RIGHT CLICKS。
扣动左扳机时,似乎没有什么奇怪的事情发生,
扣动右扳机时,鼠标光标向下移动;释放时,鼠标光标然后向上移动,并将继续直到 xboxdrv 停止,
最后,方向键似乎没什么奇怪的。
也就是说,直到 Steam for Linux 启动。一旦 Steam 加载并启动,上面的一切都会发生,就好像50-joystick.conf
从未创建过一样。一旦 Steam 关闭并重新启动 xboxdrv,游戏手柄就会按预期工作。
当 Steam 运行时,所有东西也会发送正确的事件(触发器、摇杆等),因为它们在视频游戏中工作,控制器被检测为游戏手柄。此外,这些额外的事件似乎不会在游戏中发生,只有在游戏失去焦点时才会发生。
附带说明一下,当通过 Wine(通过 PlayOnLinux)运行 Steam 时,不会发生这种情况。我不知道控制器是否适用于通过 Wine Steam 安装和启动的任何游戏(我已经设置了 koku 的 xinput 库,遵循这个reddit 线程;它适用于 GOG Spelunky),但是。
Steam 是否有任何可以防止或逆转的修改 xorg/x11 的内容?