如何阻止控制器移动(鼠标)指针?

如何阻止控制器移动(鼠标)指针?

我正在使用基于 Debian 的 antix17。我将 lightdm 与 kde 问候程序、IceWM 用于窗口管理器和 x 显示服务器一起使用。我的控制器是 PS2 仿制品,我使用 USB 适配器将其连接到 PC。该适配器有两个端口用于两个控制器,因此,计算机认为始终有两个控制器连接,无论实际有多少个控制器连接到计算机。

现在,谈谈问题。我的控制器可以直接与鼠标交互。我可以用操纵杆移动它,并且可以按一些按钮来模拟点击。这是不受欢迎的行为,因为当我真正想玩游戏时它会导致问题。经过一段时间的尝试,我设法让 RetroArch 在这台旧电脑上运行,但它存在控制器问题。在菜单上,我似乎得到了双重输入。当我进入菜单时,我会看到快速闪烁的内容,我认为这是我输入的子菜单,然后我回到了选择第一个选项的开始位置。这使得 RetroArch 上的控制器导航变得不可能,因为我无法进入子菜单。此外,移动鼠标的摇杆使我可以到达屏幕底部并将任务栏渲染在游戏顶部,使其失去焦点。到目前为止最大的问题是使用两人模式时。这两个控制器似乎以某种方式联系在一起。例如,在平台游戏中,我按下跳跃按钮,这使得两个角色都跳跃,当我按下另一个控制器上的跳跃时,也会发生同样的情况。我尝试了另一个游戏,这次只有第二个控制器让两个角色都跳了起来。方向键似乎是独立的。

我不知道这一切是如何运作的,我快疯了。顺便说一句,RetroArch 上的驱动程序设置为 udev,我尝试了更多,但没有解决任何问题。我似乎正在使用 eudev,不管那是什么。

有人可以帮我解决这个问题吗? *nix 环境中的控制器是我真正应该学习如何配置的东西。

答案1

Archlinux 维基

如果您想使用控制器玩游戏,您可能需要禁用对鼠标光标的操纵杆控制。为此,请编辑 /etc/X11/xorg.conf.d/51-joystick.conf(如果不存在则创建),使其如下所示:

> /etc/X11/xorg.conf.d/51-joystick.conf

Section "InputClass"
        Identifier "joystick catchall"
        MatchIsJoystick "on"
        MatchDevicePath "/dev/input/event*"
        Driver "joystick"
        Option "StartKeysEnabled" "False"       #Disable mouse
        Option "StartMouseEnabled" "False"      #support
EndSection

答案2

如果您使用的是较旧的发行版,其joystick(4)驱动程序尚不支持StartKeysEnabledStartMouseEnabled选项,则也可以像这样禁用通过操纵杆进行的鼠标控制:

Section "InputClass"
        Identifier      "Mouse-by-joystick disabler"
        MatchIsJoystick "true"
        Option          "Floating"      "true"
EndSection

但如果支持上述选项,请务必使用它们。 (将操纵杆设置为Floating会完全阻止它报告“核心事件”,但如果我的理解是正确的,设置Start(Keys|Mouse)EnabledFalse应该允许您有选择地如果稍后需要,请重新启用鼠标/按键事件功能,因此禁用这些选项应该会给您带来更大的灵活性。)

相关内容