如何更改默认的 Xinput 值?

如何更改默认的 Xinput 值?

我想禁用鼠标加速,并想通过使用命令libinput Accel Profile Enabled Default将 from的值更改为1, 0to 来更改它,但这会返回错误:0, 1xinput --set-prop [ID] [id of the value] 0, 1

X Error of failed request:  BadAccess (attempt to access private resource denied)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Serial number of failed request:  19
  Current serial number in output stream:  20

我无法创建启动应用程序,因为我的鼠标 ID 会无缘无故地不断变化。我也无法更改变量的全局值,因为我需要为触摸板启用指针加速。

答案1

編輯:

我修改了我的答案以显示一种更简单的方法。您可以使用设备type:name代替它,ID如下所示:

xinput set-prop "keyboard:Logitech K400 Plus" "libinput Middle Emulation Enabled" 1

这避免了必须了解易失性ID字段。


旧答案:

我还没有找到改变 Xinput 默认值的方法,但您可以使用 bash 管道动态获取 ID 并在启动应用程序中使用它。

由于我不清楚您的设备的具体情况,因此我以我的个人案例为例。我想更改 K400+ 键盘的一些 Xinput 属性。

首先你必须找到明确地标识您设备的 Xinput 行。

$ xinput

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech K400 Plus                        id=6    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Logitech K400 Plus                        id=7    [slave  keyboard (3)]

因此我可以使用简单的正则表达式K400.*keyboard来获取最后一行(不是指针行)。接下来我将grep这个正则表达式放入管道中,通过实用程序隔离 id cut

$ xinput | grep K400.*keyboard | cut -f2 | cut -c4-
7

最后我用它来改变我想要的任何属性。在本例中,我感兴趣的是libinput Middle Emulation Enabled。执行此操作的完整命令是:

xinput | grep K400.*keyboard | cut -f2 | cut -c4- | 
xargs -I{} xinput set-prop {} "libinput Middle Emulation Enabled" 1

现在您可以将其用作启动应用程序。

相关内容