linux 脚本 input,Linux 下通过命令行和脚本开关笔记本触控板和其他输入外设

使用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 。比如查询上面的触控板的状态就可以这样。$ 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桌面的自定义快捷键上,就可以快速开关指定名称的输入外设。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值