我编写了一个脚本来将我的 Wacom Bamboo 数位板旋转 180 度。当我以我自己(用户)或 root 身份执行它时,它工作正常,但从udev
(即当将平板电脑插入usb
端口时)启动时,它不起作用。
Udev 规则:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", ATTRS{manufacturer}=="Wacom Co.,Ltd.", RUN+="/usr/local/bin/red-wacom-bamboo.sh"
Run Code Online (Sandbox Code Playgroud)
Wacom 脚本 /usr/local/bin/red-wacom-bamboo.sh:
#!/usr/bin/env bash
exec > /tmp/red-wacom.log
exec 2>&1
# I had to do this otherwise xsetwacom would say:
# "Failed to open Display ."
# Is there a way to do this without using my username?
export XAUTHORITY=/home/redsandro/.Xauthority
export DISPLAY=:0
/usr/bin/xsetwacom set "Wacom Bamboo 2FG 4x5 Pen stylus" Rotate half
/usr/bin/xsetwacom set "Wacom Bamboo 2FG 4x5 Finger touch" Rotate half
Run Code Online (Sandbox Code Playgroud)
结果在 /tmp/red-wacom.log:
Cannot find device 'Wacom Bamboo 2FG 4x5 Pen stylus'.
Cannot find device 'Wacom Bamboo 2FG 4x5 Finger touch'.
Run Code Online (Sandbox Code Playgroud)
(请注意,日志中的错误意味着 udev 规则本身不是问题。)
我尝试sleep
在脚本中设置 a ,可能需要几毫秒。但这无济于事。
udev
?
udev
作为特定用户调用脚本吗?(例如同步/home
到外部备份驱动器 - /home/ 仅对其用户可见)有一个相当简单的解决方法,您可以将类似的内容添加到您的xorg.conf
(或 中的文件xorg.conf.d
,就像我所做的那样):
anthony@Watt:/etc/X11/xorg.conf.d$ cat 55-local-wacom.conf
Section "InputClass"
Identifier "Wacom Left Handed"
MatchDriver "wacom"
Option "Rotate" "half"
EndSection
Run Code Online (Sandbox Code Playgroud)
有关可设置的所有选项的详细信息,请查看wacom(4) 联机帮助页。
(理论上,您可以用来MatchProduct
单独配置触摸板、笔、橡皮擦等,但是当我不久前尝试这样做时,它导致 Xorg 出现段错误。如果我尝试浮动它们也是如此。但是您没有做任何事情那个......也许这个错误现在已经修复了。)
归档时间: |
|
查看次数: |
5231 次 |
最近记录: |