为游戏鼠标编写 udev 规则时出现问题

为游戏鼠标编写 udev 规则时出现问题

TL;DR 是说我有一款精美的游戏鼠标,我想禁用其中的部分功能,但不是全部,而且很难确定具体是哪些功能。我正在使用, SUBSYSTEM=="input",ATTRS{serial}=="SZH410946",ACTION=="add",ENV{DEVLINK}=="/dev/input/by-id/usb-Swiftpoint_Limited_Swiftpoint_Z_SZH410946-if02-joystick",MODE="0000"但无法获取 000 部分。

长版本。我有一只我非常喜欢的 Swiftpoint Z 鼠标。这是一款游戏鼠标,里面有各种按钮、陀螺仪等。遗憾的是,就像太多东西一样,Linux 似乎不支持它的开发人员,但我可以在 Win-blows 中配置它,并将配置保存到鼠标的板载存储中。对于大多数情况来说,这都很好用。我试图解决的实际问题是,为了工作,鼠标会在多个设备上模拟键盘、鼠标和操纵杆。特别是操纵杆让我很烦恼。我的很多游戏都会选择它并将其视为控制器 1,并且这个假设备上的几个轴被固定住,造成各种混乱。我已经学会了查看它设置的设备sudo rm /dev/input/js**x**,然后等等。但每次重启后这都很乏味,而且我喜欢学习新东西,所以我开始学习 udev。

因此,第一个问题是,没有太多东西可以识别操纵杆和事件设备,例如鼠标或键盘部分。我一直试图用它隔离它ENV{DEVLINK}=="path/to/device",我认为它是匹配的,至少在我运行时sudo udevadm test blah blah它似乎得到了它。但我的MODE="0000"似乎不想正常工作。我也试过了,RUN+="/usr/bin/rm `readlink -f /path/to/dev`"但似乎什么也没做。

我注意到的另一件事是,在我拥有该ENV{DEVLINK}=="path/to/device"部件之前,它会吹走操纵杆(以及我的鼠标的其余部分),但只有使用命令时才会吹走udevadm test。简单地插入设备没有任何作用。

我一直在考虑用它运行一个脚本来帮rm我做这件事,但是...呃...感觉不如直接了解我做错了什么并修复它那么干净。任何帮助都非常感谢。

相关内容