Arch Linux: уведомления в Openbox с libnotify

Автор: | 08/23/2017
 

Надо добавить всплывающее окошко, которое бы по крону выводило какой-то текст на экран.

Используем libnofity, выполняем на Arch Linux (хотя принципиальной разницы нет — хоть на Убунте).

Документация самого libnotify — тут>>>.

Установка

Устанавливаем libnotify:

sudo pacman -S libnotify

И notification-daemon:

sudo pacman -S notification-daemon

Либо notify-osd:

sudo pacman -S notify-osd

Запускаем демон:

/usr/lib/notification-daemon-1.0/notification-daemon &

Добавляем в автостарт:

echo "/usr/lib/notification-daemon-1.0/notification-daemon &" >> /home/setevoy/.config/openbox/autostart

Проверяем:

notify-send 'Hello world!'

Иконки

Что бы добавить иконку к сообщению — используем -i.

Например — иконки из Arc темы:

ls -l /usr/share/icons/Arc/apps/128
total 96
lrwxrwxrwx 1 root root    30 Nov 24  2016 activity-log-manager.png -> preferences-system-privacy.png
lrwxrwxrwx 1 root root    13 Nov 24  2016 blueman.png -> bluetooth.png
lrwxrwxrwx 1 root root    13 Nov 24  2016 blueradio-48.png -> bluetooth.png
lrwxrwxrwx 1 root root    13 Nov 24  2016 blueradio.png -> bluetooth.png
...

Вызываем notify-send и указываем путь к иконке:

notify-send -u critical -i '/usr/share/icons/Arc/apps/128/system-users.png' 'Hello, World' 'Other'

И уведомления в трее:

Примеры

bash

Свамй простой скрипт на bash будет выглядеть так:

#!/usr/bin/env bash

notify-send 'Hello world!' 'This is an example notification.' --icon=dialog-information

Вызываем:

bash .opt/notify.sh

При необходимости — добавляем в cron (добавив $DBUS_SESSION_BUS_ADDRESS).

C

#include <libnotify/notify.h>

int main() {

    notify_init ("Hello world!");

    NotifyNotification * Hello = notify_notification_new ("Hello world", "This is an example notification.", "dialog-information");
    
    notify_notification_show (Hello, NULL);
    
    g_object_unref(G_OBJECT(Hello));
    
    notify_uninit();
    
    return 0;
}

Собираем:

gcc -o notify `pkg-config --cflags --libs libnotify` notify.c

Выполняем:

Ссылки по теме

How To Send Desktop Notifications on Ubuntu Using notify-send