notify-send – удобная прога для отображения всяких уведомлений прямо на дисплее. Только она не работает в кронтабе, потому что cron идет в обход GUI, а notify-send хочет dbus. Для этого мы сделаем простой фикс.
1. Устанавливаем notify-osd
sudo add-apt-repository ppa:leolik/leolik sudo apt-get update sudo apt-get upgrade sudo apt-get install libnotify-bin pkill notify-osd
2. Устанавливаем notifyosdconfig
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install notifyosdconfig
notifyosdconfig заводится командой
notifyosdconf
Тут можно ставить всякие опции, если надо.
3. Сделаем файл dbus_get.sh, который надо включать при стартапе после залогивания. Для этого различные десктопы и оконные менеджеры имеют свои приспособления
#!/bin/sh touch $HOME/.dbus/Xdbus chmod 600 $HOME/.dbus/Xdbus env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.dbus/Xdbus echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.dbus/Xdbus exit 0
4. Поставим разрешение на писание в папке .dbus/Xdbus
chmod -R a+w ~/.dbus/Xdbus
5. Засунем строчку в кронтаб
crontab -e
* * * * * DISPLAY=0:0 /bin/sh /home/alex/notify.sh
В кронтабе можно писать сразу команду, но мы сделаем отдельный файл, где можно программно чередовать различные уведомления. У меня он несложный:
6. notify.sh
#!/bin/bash if [ -r "$HOME/.dbus/Xdbus" ]; then . "$HOME/.dbus/Xdbus" fi notify-send -i /home/alex/volk.jpg 'Прювет лунатикам' 'Волк'
Вообще для notify-send синтакс такой:
a) простой
notify-send 'Title of the message' 'Text of the message'
b) с иконкой
notify-send -i /home/alex/volk.jpg 'Прювет лунатикам' 'Волк'