我正在运行Lubuntu 16.04,xboxdrv版本0.8.6(从git repository构建,因为0.8.5是Ubuntu存储库中可用的版本),使用官方Microsoft Xbox 360有线控制器,并运行正式版Steam for Linux操作系统 .

有's an issue with xorg/x11 (I'我不知道这里更正确的名称是什么,因为我对Linux一般都很新),操纵杆默认会有鼠标控制 . 从Ubuntu论坛的this thread开始,可以通过创建 /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 等) .

移动右拇指杆时,会发生不同的事情,具体取决于方向:

  • 向右移动向上移动鼠标光标到左边,

  • 向右移动右手杆将鼠标光标移动到右侧,

  • 向左移动右杆似乎什么都不做,

  • 向右移动右拐点右键单击 .

拉动左扳机时,似乎没有什么奇怪的事情发生,

拉动右触发器时,鼠标光标向下移动;当释放时,鼠标光标然后MOVES UP,并将继续直到xboxdrv停止,

最后,方向键似乎没什么奇怪的 .

也就是说,直到Steam for Linux启动 . 加载并启动Steam后,上面的所有内容都会发生,就好像 50-joystick.conf 从未创建过一样 . 一旦Steam关闭并重新启动xboxdrv,游戏手柄就会按预期工作 .

当Steam运行时,一切都会发送正确的事件(触发器,操纵杆等),因为它们在视频游戏中工作,控制器被检测为游戏手柄 . 此外,这些额外的事件似乎不会在游戏中发生,只有当游戏失去焦点时 .

作为旁注,当通过Wine运行Steam时(通过PlayOnLinux),这不会发生 . 我在this reddit thread之后设置了koku的xinput库;然而,它适用于GOG Spelunky) .

是否有任何Steam可以修改xorg / x11,可以预防或撤消?