找到输入设备的ID并更改其属性的值

我从这篇文章中了解到,您可以通过以下方式设置鼠标速度:

$ xinput --set-prop 10 "Device Accel Constant Deceleration" 4 

其中10是目标设备的id ,可以通过检查xinput命令的输出来获得。

但是,我的问题是每次拔掉我的鼠标并重新插上它时,它的id就会改变。 因此,简单地将上面的行放入mouse.sh是不够的。 我还需要动态搜索目标设备的当前id值,即我的鼠标。

悲惨的部分是我对bash脚本一无所知,因此在这里寻求快速解决我的具体问题:

如何编写这个简单的脚本来定位输入设备的id ,比如说mouse ,并在上面的xinput行中使用这个id

xinput 手册页 :

device可以是设备名称 ,也可以是设备的XID。

这意味着您只需将鼠标的全名赋予xinput命令即可。

让我们首先识别您的鼠标设备,在终端中键入xinput

 $ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=17 [slave pointer (2)] ⎜ ↳ Logitech Logitech Illuminated Keyboard id=11 [slave pointer (2)] ⎜ ↳ ROCCAT ROCCAT Kone Pure Optical id=13 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ HD Pro Webcam C920 id=9 [slave keyboard (3)] ↳ Integrated Camera id=15 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=16 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=18 [slave keyboard (3)] ↳ Logitech Logitech Illuminated Keyboard id=10 [slave keyboard (3)] ↳ ROCCAT ROCCAT Kone Pure Optical id=12 [slave keyboard (3)] ↳ No brand 2Port KVMSwicther id=14 [slave keyboard (3)] 

在这里,我的鼠标是ROCCAT ROCCAT Kone Pure Optical但你不能按原样使用它,因为这种类型的鼠标声明了几种设备(游戏鼠标)。

因此,在设备名称前加上’pointer:’,如下所示:

 $ xinput --set-prop 'pointer:ROCCAT ROCCAT Kone Pure Optical' "Device Accel Constant Deceleration" 4 

调整上面的命令以匹配您自己的设备,您可以将其粘贴到mouse.sh脚本中。