我知道我可以用来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)