连接输入设备后启动自定义脚本

连接输入设备后启动自定义脚本

我有一台 Genius 平板电脑,当我将其连接到 USB 时,我需要重新映射上面的一些按钮。重新映射通过以下命令完成:

xinput set-button-map 'Genius EasyPen M610X' 0 0 0 0 0 0 0 1 3 2

我正在使用 udev 调用如下脚本:

#!/bin/bash

sleep 10
/usr/bin/xinput set-button-map 'Genius EasyPen M610X' 0 0 0 0 0 0 0 1 3 2

脚本运行良好,设备插入时 udev 也会调用脚本,但是 xinput 行不会执行。Dmesg 和 syslog 没有显示任何错误,使用 udevadm 测试设备时也没有任何错误。有什么想法吗?谢谢。

答案1

最有可能的问题是调用脚本时DISPLAY未设置环境变量。此变量告诉 X 程序它们应该连接到哪个显示器。尝试在调用之前添加以下内容xinput

export DISPLAY=:0

例如:

% export DISPLAY=:0
% xinput ...

相关内容