如何切换 xinput 设备属性

如何切换 xinput 设备属性

我可以像这样禁用设备:

xinput set-prop 13 "Device Enabled" 0

但我想设置一个自定义快捷键,在 0\1 之间切换。我的 bash 技能有点生疏,我该怎么做呢?没有 get-prop 命令,我只能做到这一步:

xinput list-props 13 | grep "Device Enabled"

正确打印出来

Device Enabled (135):   1

但我不知道下一步该做什么。帮忙吗?

答案1

使用以下 bash 脚本打开或关闭 xinput 设备。

#!/bin/bash

device=13
state=$(xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$")

if [ $state == '1' ];then
  xinput --disable "$device"
else
  xinput --enable "$device"
fi

答案2

我做了这个单行Jason YiZhang Chen 的回答。如果您只需要一个命令来输入键盘快捷键或启动作业,它就很方便。它利用了您还可以按名称设置设备属性的事实,并且触摸板的名称不会改变。

获取设备名称:

$ xinput | grep Touchpad
⎜   ↳ ETPS/2 Elantech Touchpad                  id=18   [slave  pointer  (2)]

因此我的设备名为ETPS/2 Elantech Touchpad。我将其硬编码到以下一行中:

[ "$(xinput list-props 'ETPS/2 Elantech Touchpad' | grep 'Device Enabled' | grep -o '[01]$')" == "1" ] && xinput --disable 'ETPS/2 Elantech Touchpad' || xinput --enable 'ETPS/2 Elantech Touchpad'

相关内容