是否有任何命令行实用程序可以捕获操纵杆按钮的按下情况?

Dop*_*ger 11 linux command-line joystick

这是我的情况:我有一个安装了 Raspbian 的 Raspberry Pi。我还安装了 RetroArch 并连接了一个简单的 USB 游戏手柄。一切正常,但我想设置它以便按下组合键(例如 L1+L2+R1+R2)可以优雅地退出模拟器,这样我就不必随身携带键盘了。RetroArch 的默认退出键是 ESC,由于 RetroArch 的限制,我无法将其重新映射到组合键(但是,我可以将其重新映射到单个游戏手柄键)。

所以我想知道是否有任何实用程序可以侦听游戏手柄的按键,并在按下某个组合时执行操作(将 ESC 键发送到模拟器)。或者有没有更简单的方法来实现我想要的,而我只是很傻?

编辑:现在我考虑了一下,如果我可以让不同的组合键执行一个 bash 脚本来启动模拟器,这样我也可以在没有键盘的情况下启动它,那也会很好。

slm*_*slm 8

jstest一试。本文讨论了它的使用,标题为:flightgear.org - 输入设备。在大多数发行版中似乎默认安装。此外,这里有一个指向jstest手册页的链接。

基本上,您必须确定分配给操纵杆的设备。dmesg插入后查看日志文件以获取此信息。可能是这样的/dev/input0

$ dmesg | grep Joystick
input0: USB HID v1.00 Joystick [SAITEK CYBORG 3D USB] on usb2:3.0 
Run Code Online (Sandbox Code Playgroud)

然后运行这个命令:

$ jstest /dev/input0
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。`jstest` 对我来说效果很好。在我的例子中,路径是`/dev/input/js0`。 (3认同)

小智 6

这看起来像是 RetroPie/Emulation 站的常见问题。

他们在 RetroPie-Setup Wiki 中解决了这个问题:https : //github.com/petrockblog/RetroPie-Setup/wiki/EmulationStation#my-emulator-wont-close-through-my-gamepad

它应该只需要编辑你的 RetroArch 配置文件来添加一行:

input_exit_emulator_btn = “6?
Run Code Online (Sandbox Code Playgroud)

其中“6”是游戏手柄按钮标识符。


如果你想让它使用组合键,你可以添加以下几行:(来自http://forum.themaister.net/viewtopic.php?pid=1065#p1065

input_enable_hotkey_btn = 1
input_exit_emulator_btn = 2
Run Code Online (Sandbox Code Playgroud)

这使得您需要按按钮 1 来“解锁”热键,同时按 2 退出。