使用xinput
命令,可以查看和更改当前系统的输入设备状态。xinput -list
可以查看当前系统存在的输入设备和其id
$ xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M720 Triathlon id=12 [slave pointer (2)]
⎜ ↳ LogiOps Virtual Input id=16 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=15 [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)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ HID 046a:0011 id=11 [slave keyboard (3)]
↳ Chicony USB2.0 Camera: Chicony id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Logitech M720 Triathlon id=17 [slave keyboard (3)]
↳ LogiOps Virtual Input id=18 [slave keyboard (3)]
通过设备的id,可以禁用或启用设备。例如我们更改上面名为SynPS/2 Synaptics TouchPad
的设备,也就是触控板的状态,可以通过其id 15来操控。
#启用
xinput enable 15
#禁用
xinput disable 15
想要查看一个设备的状态,可通过xinput list-props <id>
。比如查询上面的触控板的状态就可以这样。
$ xinput list-props 15
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (214): 0
...
实际上会输出很多状态信息,但最有用的是第一行的Device Enabled
,若是为0
,则代表设备被禁用,若是为1
,表示设备被启用。
知道上面那些信息,就可以写一个脚本开关指定名字设备的状态。这里我用的是python,通过检测xinput的输出,找到指定名字的设备id。通过id查询其状态,若是禁用则启用,若是启用则禁用。
# -*-coding:utf-8-*-
import subprocess
import re
dev_name='设备名称'
dev_id=None
dev_status=None
output=subprocess.run('xinput -list',shell=True,stdout=subprocess.PIPE).stdout.decode().split('\n')
dev_list=output
for dev in dev_list:
if dev_name in dev:
dev_id=re.findall(r'id=(\d.*?)\s',dev)[0]
#print(dev_id,type(dev_id))
break
output=subprocess.run('xinput list-props 15 |grep "Device Enabled" ',shell=True,stdout=subprocess.PIPE).stdout.decode()
dev_status=int(re.findall(':.*(\d)',output)[0])
#print(dev_status,type(dev_status))
if dev_status==0:
#print("开启")
subprocess.run('xinput enable '+dev_id,shell=True)
elif dev_status==1:
#print("关闭")
subprocess.run('xinput disable '+dev_id,shell=True)
将python 脚本.py
命令添加到你的linux桌面的自定义快捷键上,就可以快速开关指定名称的输入外设。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。