我正在使用基于 Debian 的 antix17。我将 lightdm 与 kde 问候程序、IceWM 用于窗口管理器和 x 显示服务器一起使用。我的控制器是 PS2 仿制品,我使用 USB 适配器将其连接到 PC。该适配器有两个端口用于两个控制器,因此,计算机认为始终有两个控制器连接,无论实际有多少个控制器连接到计算机。
现在,谈谈问题。我的控制器可以直接与鼠标交互。我可以用操纵杆移动它,并且可以按一些按钮来模拟点击。这是不受欢迎的行为,因为当我真正想玩游戏时它会导致问题。经过一段时间的尝试,我设法让 RetroArch 在这台旧电脑上运行,但它存在控制器问题。在菜单上,我似乎得到了双重输入。当我进入菜单时,我会看到快速闪烁的内容,我认为这是我输入的子菜单,然后我回到了选择第一个选项的开始位置。这使得 RetroArch 上的控制器导航变得不可能,因为我无法进入子菜单。此外,移动鼠标的摇杆使我可以到达屏幕底部并将任务栏渲染在游戏顶部,使其失去焦点。到目前为止最大的问题是使用两人模式时。这两个控制器似乎以某种方式联系在一起。例如,在平台游戏中,我按下跳跃按钮,这使得两个角色都跳跃,当我按下另一个控制器上的跳跃时,也会发生同样的情况。我尝试了另一个游戏,这次只有第二个控制器让两个角色都跳了起来。方向键似乎是独立的。
我不知道这一切是如何运作的,我快疯了。顺便说一句,RetroArch 上的驱动程序设置为 udev,我尝试了更多,但没有解决任何问题。我似乎正在使用 eudev,不管那是什么。
有人可以帮我解决这个问题吗? *nix 环境中的控制器是我真正应该学习如何配置的东西。
答案1
如果您想使用控制器玩游戏,您可能需要禁用对鼠标光标的操纵杆控制。为此,请编辑 /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)
驱动程序尚不支持StartKeysEnabled
或StartMouseEnabled
选项,则也可以像这样禁用通过操纵杆进行的鼠标控制:
Section "InputClass"
Identifier "Mouse-by-joystick disabler"
MatchIsJoystick "true"
Option "Floating" "true"
EndSection
但如果支持上述选项,请务必使用它们。 (将操纵杆设置为Floating
会完全阻止它报告“核心事件”,但如果我的理解是正确的,设置Start(Keys|Mouse)Enabled
为False
应该允许您有选择地如果稍后需要,请重新启用鼠标/按键事件功能,因此禁用这些选项应该会给您带来更大的灵活性。)