首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么xsetwacom在udev中不起作用?

为什么xsetwacom在udev中不起作用?
EN

Unix & Linux用户
提问于 2013-02-22 17:44:50
回答 4查看 6K关注 0票数 9

我制作了一个脚本来旋转我的Wacom竹片180度。当我以自己(用户)或根用户的身份执行它时,它工作得很好,但是当从udev (即当将平板插入到usb端口时)启动时,它将无法工作。

Udev规则

代码语言:javascript
复制
SUBSYSTEMS=="usb", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", ATTRS{manufacturer}=="Wacom Co.,Ltd.", RUN+="/usr/local/bin/red-wacom-bamboo.sh"

/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

导致/tmp/red-wacom.log

代码语言:javascript
复制
Cannot find device 'Wacom Bamboo 2FG 4x5 Pen stylus'.
Cannot find device 'Wacom Bamboo 2FG 4x5 Finger touch'.

(注意,日志中的错误意味着udev规则本身并不是问题。)

我尝试在脚本中设置一个sleep,也许它需要几毫秒。但这没什么用。

  • 当直接从udev?调用时,为什么这个脚本不能工作?
    • 我该怎么解决这个问题?

  • 我可以以特定用户的身份从udev调用脚本吗?(例如,将/home同步到外部备份驱动器- /home/只对其用户可见)
EN

回答 4

Unix & Linux用户

回答已采纳

发布于 2013-02-22 18:26:06

有一个相当简单的解决方法,您可以将类似的内容添加到您的xorg.conf (或xorg.conf.d中的文件,正如我所做的那样):

代码语言:javascript
复制
anthony@Watt:/etc/X11/xorg.conf.d$ cat 55-local-wacom.conf 
Section "InputClass"
       Identifier "Wacom Left Handed"
       MatchDriver "wacom"
       Option "Rotate" "half"
EndSection

有关可以设置的所有选项的详细信息,请查看wacom(4)手册

(理论上,您可以使用MatchProduct单独配置触摸屏、笔、橡皮擦等,但当我不久前尝试时,它会导致Xorg出现分段错误。如果我想让它们浮起来的话。但你不能这么做..。也许现在窃听器已经修好了。

票数 3
EN

Unix & Linux用户

发布于 2014-09-09 09:33:26

如果您创建两个文件,一个包装器脚本由udev调用,然后udev在后台调用实际的配置脚本,它就可以工作。配置脚本需要休息一段时间,以便X11有时间完成它的工作。下面是我使用的设置:

udev (/usr/local/bin/setupwacom.sh):调用的

包装器脚本#!/usr/bin/env bash /usr/local/bin/setupwacom-post-X11.sh & 包装器脚本(/usr/local/bin/setupwacom-post-X11.sh):

调用的

配置脚本#!/usr/bin/env bash sleep 2 export XAUTHORITY=/home/adrian/.Xauthority export DISPLAY=:0 # Put your xsetwacom commands here, for example: xsetwacom --set "Wacom Intuos S Pad pad" Button 1 "key +ctrl +shift e"

票数 4
EN

Unix & Linux用户

发布于 2013-02-22 18:14:26

当您插入设备时:

  1. Linux检测设备并根据udev规则创建设备条目。
  2. X服务器检测设备。

您不能在第2阶段之前运行xsetwacom。您的脚本正在失败,因为您在第1阶段运行它,而此时X还不知道设备。

您可以使用gnome-settings-daemon设置一些设置。我相信它是通过D-总线通知新设备的,但我不知道D总线事件是什么样子。试试和dbus-monitor一起监视公共汽车。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/65788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档