如何在设备插件上启动 GUI 应用程序?

如何在设备插件上启动 GUI 应用程序?

如何自动启动 GUI 程序以便当设备插入 Ubuntu 16.04 时它保持打开状态?

我的目标是让我的 Cintiq 显示器打开时启动 gnome-pie 程序,然后让该程序在显示器关闭时终止。

我尝试使用 udev 和 systemd 来调用一个脚本,然后启动该程序。脚本运行,但应用程序不运行。

这是我的 udev 行:

ACTION=="add", ATTR{product}=="DTK-2100", ATTR{idProduct}=="00cc", ATTR{idVendor}=="056a", TAG+="systemd"

...以及我的 systemd 文件内容。

[Service]
Type=forking
Restart=no
ExecStart=/bin/sh /home/user/xsetwacom.sh

[Install]
WantedBy=default.target
WantedBy=sys-devices-pci0000:00-0000:00:1a.2-usb5-5\\x2d2.device

最后这是我的脚本:

#!/bin/bash
sleep 4


export DISPLAY=:0
export XAUTHORITY=/home/user/.Xauthority
xsetwacom set "Wacom Cintiq 21UX2 Pad pad" Button 1 key Shift ctrl l
xsetwacom set "Wacom Cintiq 21UX2 Pad pad" Button 14 key Shift ctrl r
/home/user/touch-toggle1_ubuntu.sh
gnome-pie & disown

除“gnome-pie & disown”之外的所有东西都运行正常,但我不知道为什么。

有人能帮我解决这个问题吗?我想利用这种行为的可能性包括 USB 驱动器、相机、扫描仪、网络摄像头以及几乎任何其他需要某种 GUI 交互的东西。

答案1

事实证明我处理问题的方法是正确的。不幸的是,我发现虽然我可以启动大多数程序,但 gnome-pie 不是其中之一。

我还了解到,如果不断断开/重新连接,即使应用程序启动,这种方法有时也会出现错误并且无法正常工作。

考虑到没有其他人会以这种方式使用 gnome-pie,找到让它正常工作的解决方案可能不会发生。

希望将来适用于 Linux 的 Wacom 驱动程序能够更新以包含径向菜单。

答案2

Udev 不适用于 GUI 工具之类的用途...它是一个低级守护进程。

目前,最好的解决方案是编写一个脚本(例如python& pyudev),监视 udev 事件以启动您想要的任何内容。

相关内容