Запустите приложение PyQt из события acpi в Linux - PullRequest
0 голосов
/ 12 июня 2010

Я хочу использовать приложение PyQt для отображения изображения, когда в Linux запускается какое-то событие acpi.

Я уже настраиваю конфигурацию для события, и сценарий python выполняется, когда событие запускается, но когда программа достигает создания QApplication

app = QApplication(sys.argv)

останавливается без ошибок. Я попытался настроить те же переменные окружения DISPLAY и PATH, что и у моего текущего пользователя, но это не сработало.

Это мой файл событий:

event=sony/hotkey SNC 00000001 00000011
action=/etc/acpi/vaio-tools/brightness/sonybright.sh up 2>&1>/tmp/vaio-tools_brightness.log

Я попытался найти какую-то ошибку в /tmp/vaio-tools_brightness.log, но он ничего не регистрирует после того, как достигнет создания QApp в коде.

любые намеки ??

1 Ответ

0 голосов
/ 12 июня 2010

Ваше приложение запускается пользователем root, у которого нет доступа к X-дисплею ваших пользователей.

Либо установите в $ XAUTHORITY путь к файлу авторизации X, используемому вашим пользователем, либо используйте что-то вроде этого (не проверено):

su your_user -l -c "xauth extract - $DISPLAY" | xauth merge -

См. Справочные страницы для xauth и Xsecurity для получения дополнительной информации об этом.

Лучшим решением было бы событие ACPI для отправки сообщения через DBus и запуска приложения в сеансе пользователя, прослушивающего это сообщение.

...