共计 1880 个字符,预计需要花费 5 分钟才能阅读完成。
应用 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 桌面的自定义快捷键上,就能够疾速开关指定名称的输出外设。
正文完