当插入外部键盘/鼠标时,如何使用 xinput 自动禁用笔记本电脑键盘/鼠标?

当插入外部键盘/鼠标时,如何使用 xinput 自动禁用笔记本电脑键盘/鼠标?

我知道我可以用来xinput禁用鼠标和键盘,每次将键盘和鼠标插入键盘时,我通常会键入三个命令:

xinput float 'AT Translated Set 2 keyboard'

xinput float 'Ideapad extra buttons'

xinput float 'SynPS Synaptics Touchpad'

我通常使用 id 值而不是名称,但您明白我的意思。

那么有什么方法可以自动化它,这样每当插入键盘时,我的计算机就会运行上面的两个命令,而当插入鼠标时,我的计算机就会运行下面的命令?与通过运行重新连接拔掉鼠标/键盘时重新启用设备相同xinput

答案1

我从来没有这样做过,但我会尝试根据其他 SE 网站提供帮助。

基本上遵循这个答案您应该可以通过修改 udev 文件并提供脚本来开始:

/etc/udev/rules.d/00-usb-keyboard.rules

ATTRS{idVendor}=="09da", ATTRS{idProduct}=="0260", OWNER="YOURUSERNAME"
ACTION=="add", RUN+="/home/YOURUSERNAME/.bin/usb-keyboard-in_udev"
ACTION=="remove", RUN+="/home/YOURUSERNAME/.bin/usb-keyboard-out_udev"

/home/您的用户名/.bin/usb-keyboard-in_udev

#!/bin/bash
/home/YOURUSERNAME/.bin/usb-keyboard-in &

#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/YOURUSERNAME/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME
YOUR_COMMAND_HERE

/home/您的用户名/.bin/usb-keyboard-out_udev

#!/bin/bash
/home/YOURUSERNAME/.bin/usb-keyboard-out &

/home/您的用户名/.bin/usb-keyboard-out

#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/YOURUSERNAME/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME
YOUR_COMMAND_HERE

所有这些脚本都应该具有可执行权限(chmod +x)。

根据答案:

USB 键盘供应商和产品 ID 应根据命令 lsusb 的输出进行更改(例如,我的 USB 键盘的 lsusb 输出为:Bus 001 Device 006:ID 09da:0260 A4 Tech Co., Ltd)

相关内容