13 мая 2016 г.

Ubuntu. Уведомления. notify-send

notify-send - программа предназначенная для отправки уведомлений для пользователей системы.
В Сети куча "копипастных" примеров как реализовать, но слишком мало объяснений. Например не объясняется, что все интересующие нас иконки лежат в директории /usr/share/icons/elementary-xfce/ (у меня xubuntu). 
Соответственно, вместо стандартного notify-send "Заголовок" "Текст" -i gtk-info, который мне покажет "i" в синем круге, я могу писать notify-send "Заголовок" "Текст" -i [любая_иконка_из_указанной_выше_директории], разумеется, без расширения. Пример:
notify-send "Заголовок" "Текст" -i applications-3D
Путь до applications-3D/usr/share/icons/elementary-xfce/categories/48/applications-3D.png

Кстати, если пишем скрипт для оповещения из cron'а, то следует перед выполнением команды указать export DISPLAY=:0.0, для того, чтобы сообщение ушло на наш экран, а не в пустоту.

На Хабре говорят, что это плохой тон и надо определять его автоматом:
# get_display [USER] — Returns $DISPLAY of USER.
# If first param is omitted, then $LOGNAME will be used.
get_display () {
who \
| grep ${1:-$LOGNAME} \
| perl -ne 'if ( m!\(\:(\d+)\)$! ) {print ":$1.0\n"; $ok = 1; last} END {exit !$ok}'
}