问题是 jstest-gtk 仅更改操纵杆设备的映射,即/dev/input/js0. 然而,大多数使用 SDL 的现代游戏不再使用操纵杆设备,而是使用原始 evdev,即 /dev/input/eventX,并且不允许任何重新映射。
最快的解决方法是设置环境变量:
export SDL_JOYSTICK_DEVICE=/dev/input/js0
Run Code Online (Sandbox Code Playgroud)
这将强制基于 SDL 的应用程序使用旧的操纵杆设备,从而遵守映射。它对非 SDL 应用程序没有帮助。
另一种选择是xboxdrv,它是一个用户空间 Xbox360 驱动程序,允许在驱动程序级别进行各种配置选项(包括键盘和鼠标模拟)。这适用于所有游戏。