第一步我们需要先拿到设备的名字或者ID:
$ xinput list
⎡ Virtual core pointer id=2[master pointer (3)]
⎜ ↳ Virtual core XTEST pointerid=4[slave pointer (2)]
⎜ ↳ USB Optical Mouse id=8[slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPadid=7[slave pointer (2)]
⎣ Virtual core keyboard id=3[master keyboard (2)]
↳ Virtual core XTEST keyboard id=5[slave keyboard (3)]
↳ Sleep Button id=9[slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
↳ Video Bus id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6[slave keyboard (3)]
在这里触摸板的名字是 'SynPS/2 Synaptics TouchPad' ID是 7
键盘的名字是 'AT Translated Set 2 keyboard' ID是 6.
下一步我们要知道设备都有什么属性:
$ xinput list-props 'AT Translated Set 2 keyboard'
Device 'AT Translated Set 2 keyboard':
Device Enabled (127): 1
键盘只有一个属性 'Device Enabled' 他的值是 1,意思就是说键盘是打开状态的。
我们来尝试关掉它:
sleep 0.1 xinput set-prop 'AT Translated Set 2 keyboard' 'Device Enabled' 0 sleep 5 xinput set-prop 'AT Translated Set 2 keyboard' 'Device Enabled' 1
开头 sleep 0.1 的目的是要留出时间让你执行当前命令时所敲的回车的按键(keypress)事件能够完成, 我猜测当你按下回车时命令就会执行并把键盘禁用,但是按键d起(keyup)还没有被发送,所以X会以为你一直按这回车键。
另一个更简单的用法是用ID来进行 *** 作,这样你就不需要输入一大长串的名字了:
sleep 0.1 xinput set-prop 8 127 0 sleep 5 xinput set-prop 8 127 1
键盘的ID是8, 属性 'Device Enabled' 的ID是127。 当你用 list-props 列出设备属性时, 在属性名后面的数字就是属性的ID。 像 'Device Enabled' 的ID总是 127,但是设备的ID就不一样,它跟设备的连接时间有关,一般越先连接的设备ID越小,之后会越来越大。
PS:设置设备属性不需要root权限。
可以使用xinput命令来启用/禁用触摸板、键盘、鼠标等输入设备。 不过你想要在插上鼠标时自动禁用触摸板,那就需要有一个始终处于运行状态的服务来检测鼠标连接上这个动作,然后服务再去设置禁用触摸板。 ======================================...欢迎分享,转载请注明来源:内存溢出
评论列表(0条)