连接无线键盘时执行操作

连接无线键盘时执行操作

连接蓝牙键盘时我需要执行命令。我如何“收听”此事件?

答案1

当插入一个硬件时,乌德夫框架决定如何处理它。典型的操作是在 下创建设备节点/dev,但您可以运行任何 shell 命令。

首先,您需要弄清楚如何识别您的设备。连接键盘并运行,udevadm info -a -n /dev/input/event9其中最后一个参数是与您的设备对应的设备文件的路径/dev/。您可以省略前缀/dev/。您可以使用 syspath(位于 下的路径/sys)代替设备节点名称,方法是将 替换-n …-p class/input/event9。在所有情况下,请替换input/event9为适合您设备的路径。这会打印您设备的各种特征。收集表格中的一行或多行SETTING=="VALUE",足以唯一地识别您的设备。

/etc/udev/rules.d在名为vemv-keyboard.rules或类似的文件下创建一个文件。在此文件中放置一行,其中包含要匹配的设置和要运行的操作。请注意使用正确的运算符:用于==匹配属性、=设置属性以及+=指定其他操作。就像是:

# Run a program when my wireless keyboard is connected
SUBSYSTEMS=="input", ATTRS{vendor}=="Yoyodene", ATTRS{model}=="Bluetooth keyboard 9000", RUN+="/path/to/script $root/$name"

该程序将在您下次插入设备时运行(添加文件对已连接的设备没有影响)。您可以通过运行udevadm test class/input/event9(其中参数是上面的 syspath)来检查您的规则是否具有所需的效果。如果您想手动应用规则,请运行udevadm trigger --sysname=class/input/event9

答案2

看来跑步udevadm monitor是解决我的问题的良好基础。可以让守护进程解析其输出、过滤所需的条目并对这些事件做出反应。

相关内容