Повідомлення не працюють у самостійних менеджерах вікон Linux (Openbox, Awesome WM тощо). Я намагався встановити сповіщення-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
програма Trivial C нічого не видає (наприклад, помилки немає).
Я використовую Archlinux з systemd та d-bus, я підозрюю, що це проблема з polkit або якийсь демон, що не працює при запуску менеджера вікон, але поняття не маю, що я можу спробувати чи як отримати більш значущі повідомлення про помилки.
EDIT: я взяв зразок коду звідти: 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
Я навіть намагався запускати демони безпосередньо (просто виконувати) і намагався надсилати сповіщення. Якщо соменон знає, як я міг би отримати мені більше інформації, будь ласка, не соромтеся запропонувати.
EDIT 2: Я спробував запустити демона сповіщень з sudo: sudo notification-daemon_name &
(у моєму випадку sudo dunst &
), а sudo notify-send something
потім сповіщення працює. Але коли я намагаюся виконувати будь-яку з попередніх дій як непривілейований користувач (що важливо, більшість програм надсилає сповіщення як непривілейовані користувачі), нічого не показується.
notification-daemon
відмовляється взагалі працювати без помилок чи попереджень.
EDIT 3: Очевидно, це проблема дозволів: я не можу надсилати сповіщення без доступу root. Після чистої перезавантаження: sudo notify-send "something"
працює навіть без запуску демонів вручну, проте що я (і мої запущені програми) потрібно зробити, щоб мати можливість надсилати сповіщення без привілеїв root, як це можливо в Gnome або будь-якому іншому повноцінному середовищі робочого столу?
libnotify
як це забезпечуєnotify-send
команду (що все, що вам потрібно)?