Intereting Posts
14.04 wifi не может подключиться "<warn> Соединение отключено (причина -3)" Увеличение / загрузка раздела путем сокращения логического тома ubuntu-vg Без спящего экрана в спящем режиме Предварительный просмотр файлов САПР в формате .dwg Как контролировать состояние батареи и всплывающее уведомление? Я не могу выбрать обновления в диспетчере обновлений Как установить программы на другие компьютеры Ubuntu без использования Интернета Отключить приложение KDE Chat и значок в системной панели. Может ли 10-битное соединение монитора сохранять все тоны в 8-разрядных градиентах sRGB на широкоэкранном мониторе? Как заставить клавиши яркости работать с HP Folio 13? Почему некоторые открытые приложения отображаются как «вопросительные знаки» в Unity launcher? Ubuntu 16.10 Устройства USB отключены после запуска мультимедийных файлов Проблема с двойной загрузкой с помощью ubuntu 12.04 и Vista Запросить подтверждение пользователя перед выполнением скрипта? Управление пакетами установленной системы из живой среды

уведомлять-отправлять только работы с sudo

проблема

sudo notify-send Test "Hello World" 

Отображает уведомление, как ожидалось.

 notify-send Test "Hello World" 

Не отображает уведомление.

Дальнейшая информация

Версия Ubuntu 16.04.

В уведомлениях используется notify-osd вместо демона-уведомления. При запуске уведомления-отправки запускается процесс notify-osd под пользователем, который запускал notify-send. Я не уверен, что такое dbus.

Нет сообщений об ошибках

В syslog нет ошибок. Когда я запускаю следующий код, ошибок не возникает.

 #include <libnotify/notify.h> #include <stdio.h> int main() { gboolean x = notify_init ("Hello world!"); printf( "notify_init: %d\n", x ); NotifyNotification * Hello = notify_notification_new ("Hello world", "This is an example notification.", "dialog-information"); GError *err = NULL; x = notify_notification_show (Hello, &err); printf( "notify_notification_show: %d\n", x ); if(err != NULL) { printf("Error detected!\n"); printf("Error message:%s\n", err->message); } else { printf("No error detected.\n"); } g_object_unref(G_OBJECT(Hello)); notify_uninit(); return 0; } 

Я не знаю, что я делаю. Спасибо за помощь.

Python Notify

Раньше я использовал программу python с рабочими уведомлениями. Я проверил приветствие в мире, и он работает без sudo!

 #!/usr/bin/env python # -*- coding: utf-8 -*- import gi gi.require_version('Notify', '0.7') from gi.repository import Notify Notify.init("test") n = Notify.Notification.new('test', 'test2') n.set_urgency(Notify.Urgency.CRITICAL) n.show() 

Код от http://www.devdungeon.com/content/desktop-notifications-python-libnotify

Я не уверен, почему это работает. Python Notify просто обертывает библиотеку, используемую в примере C. Я бы предпочел не использовать python, но, если нужно.

редактировать

Проблема снова возникла. Решено, добавив критичность срочности.

Перезапуск исправил проблему. Не знаю, почему.

Изменить Проблема возникла снова. Использование критической важности вызвало появление уведомления. Команда:

  notify-send --urgency="critical" "asdf" 

С этим ответом я «исправил» проблему. Теперь не нужно sudo . DBUS_SESSION_BUS_ADDRESS снова DBUS_SESSION_BUS_ADDRESS переменную среды DBUS_SESSION_BUS_ADDRESS :

 eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"; 

Но, как просили здесь :

  • notify-send -u critical "Nice title" "Nice description" отлично работает, но
  • notify-send -u normal "Nice title" "Nice description" не работает.

Кроме того, использование -i таким образом кажется устаревшим: notify-send -i "notification-network-wireless-full" "Summary" "Body" . Может быть, мы должны подать ошибку .