Уведомления не работают в автономных оконных менеджерах Linux (Openbox, Awesome WM и т. Д.). Я пытался установить Notification-Daemon и Dunst, но при отправке с помощью notify-send "something"
не открывается окно.
Я попытался запустить polkit-gnome-agent и запустить демоны уведомлений напрямую, но это не помогло (в то время как я решил подобную проблему подобным образом, но теперь это ничего не делает).
Нет никаких признаков ошибок, если я не отправляю тривиальное уведомление с python, тогда я получаю только смутное сообщение об ошибке:
File "/usr/lib/python3.3/site-packages/gi/types.py", line 113, in function
return info.invoke(*args, **kwargs)
gi._glib.GError: Could not connect: Connection refused
Тривиальная программа C ничего не выводит (например, без ошибок).
Я использую Archlinux с systemd и d-bus, я подозреваю, что это проблема с polkit или каким-то демоном, который не запускается при запуске оконного менеджера, но понятия не имею, что я могу попробовать или как я могу получить больше значимых сообщений об ошибках.
РЕДАКТИРОВАТЬ: я взял пример кода оттуда: https://wiki.archlinux.org/index.php/Libnotify#Python
Dbus должен быть запущен, потому что systemd имеет его как зависимость. Я libnotify
установил - это пакет, который обеспечивает notify-send
. Также демон уведомлений должен запускаться по мере необходимости (только при получении уведомлений) следующим файлом рабочего стола /usr/share/dbus-1/services/org.freedesktop.Notifications.service
:
[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/bin/dunst
Я даже пытался запускать демоны напрямую (просто выполнять) и пытался отправлять уведомления. Если somenone знает, как я могу получить больше информации, пожалуйста, не стесняйтесь предлагать.
РЕДАКТИРОВАТЬ 2: Я попытался запустить демон уведомлений с sudo: sudo notification-daemon_name &
(в моем случае sudo dunst &
), а sudo notify-send something
затем уведомление работает. Но когда я пытаюсь выполнить какое-либо из предыдущих действий от имени непривилегированного пользователя (что важно, большинство программ отправляют уведомления непривилегированным пользователям), ничего не отображается.
notification-daemon
отказывается работать вообще без каких-либо ошибок или предупреждений.
РЕДАКТИРОВАТЬ 3: Очевидно, это проблема с разрешениями: я не могу отправлять уведомления без root-доступа. После чистой перезагрузки: sudo notify-send "something"
работает даже без ручного запуска каких-либо демонов, однако что я (и мои запущенные программы) должен сделать, чтобы иметь возможность отправлять уведомления без привилегий root, как это возможно в Gnome или любых других средах полного рабочего стола?
libnotify
поскольку это обеспечиваетnotify-send
команду (это все, что вам нужно)?