Как запустить приложение с графическим интерфейсом на плагине устройства?

Как я могу автоматически запустить программу с графическим интерфейсом, чтобы она оставалась открытой при подключении устройства к Ubuntu 16.04?

Моя цель - запустить программу gnome-pie при включенном мониторе Cintiq, а затем завершить эту программу при выключении монитора.

Я пытался работать с udev в сочетании с systemd, чтобы вызвать скрипт, который затем запустил бы программу. Скрипт работает, а приложение - нет.

Вот моя строка udev:

ACTION=="add", ATTR{product}=="DTK-2100", ATTR{idProduct}=="00cc", ATTR{idVendor}=="056a", TAG+="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-накопителям, камерам, сканерам, веб-камерам и многим другим вещам, требующим некоторого взаимодействия с графическим интерфейсом.

2 ответа

Udev не готов к такому использованию, как инструменты с графическим интерфейсом... Это демон низкого уровня.

В настоящее время лучшим решением является написание сценария (например, python & pyudev) который наблюдает за событиями udev для запуска, что вы хотите.

Оказывается, я был прав в том, как пытался справиться с проблемой. К сожалению, я обнаружил, что хотя я могу запускать большинство программ, gnome-pie не является одной из них.

Также я узнал, что иногда этот метод будет давать сбои и работать некорректно, если есть постоянное отключение / повторное подключение, даже с приложениями, которые будут запускаться.

Учитывая, что никто не будет использовать gnome-pie таким образом, найти решение, как заставить его работать, вероятно, не произойдет.

Надеемся, что драйвер Wacom для Linux будет обновлен, чтобы в будущем включить радиальное меню.

Другие вопросы по тегам