====== Desktop notifications. Сообщения системы. ====== 121224, 140721 [[sfslinux@gmail.com]] *Многие программы, например evolution, pidgin, NM, transmission , используют **Libnotify** - простой способ отображения уведомлений и информации в маленьком диалоговом окне. *При написании скриптов, возникают ситуации, требующие уведомления пользователя об определенных событиях или требуется интерактивность (вопрос-ответ). [[http://ubuntuforums.org/showthread.php?p=7267698|Пример]] Далее описаны варианты вывода этих сообщений ====== Теория ====== *[[https://wiki.archlinux.org/index.php/Desktop_notifications]] *[[http://www.galago-project.org/specs/notification/0.9/index.html|Desktop Notifications Specification]] ====== Демоны ====== =====Управление===== ==== Запуск ==== Происходит автоматически, при наличии /usr/share/dbus-1/services/org.название_сервиса.Notifications.service ==== Отправка сообщения ==== notify-send "Заголовок" "Сообщение" -i Путь_к_иконке Демоны естественно постоянно находятся в памяти. Расход не большой , но он есть... *Есть иконки (если демон поддерживает). *Можно менять задержку, иконку ==== Отправка сообщения от root==== *https://dunst-project.org/faq/#sending-notifications-from-another-user-root *https://forum.puppyrus.org/index.php?topic=24152.msg187150#msg187150 ===== Стандартные демоны ===== ==== Gnome ==== [[https://wiki.ubuntu.com/NotifyOSD| notify-osd]]. *В отличие от прочих нельзя менять положение вывода сообщений (только верхний правый угол). 2 одновременных сообщения будут показаны по очереди *[[http://leolik.blogspot.ru/2009/12/notify-osd.html|Расширенная настройка всплывающих сообщений (notify-osd)]] *Только с ним возможны трюки: notify-send "Volume" -i notification-audio-volume-low -h int:value:30 -h string:x-canonical-private-synchronous: notify-send "Brightness" -i notification-display-brightness-high -h int:value:101 -h string:x-canonical-private-synchron ==== XFCE ==== xfce4-notifyd *Иконки, шрифты, положение, кнопки *Самый легкий из стандартных *GUI конфигуратор ==== Mate ==== *http://mate-desktop.org/blog/2013-01-20-changes-to-mate-notification-daemon/ *Иконки, шрифты, положение *Конфигуратор, темы *Если сообщений некоторое время нет - самоуничтожается из памяти ==== Enlightenment ==== *Отдельным модулем выделить тяжело *Иконки, шрифты, положение *Конфигуратор, темы ===== Нестандартные демоны ===== Осуществляет привязку [[http://www.galago-project.org/specs/notification/0.9/x408.html|dbus]] к скриптам и утилитам. Т.е. привязывает их к стандарту Libnotify ==== notification-daemon ==== *https://aur.archlinux.org/packages/notification-daemon-gtk2/ *Что-то среднее между mate и gnome ==== dunst ==== *http://www.knopwob.org/dunst/index.html *Легковесный *Версия 1.2: есть вариант с закругленными краями (gtk) *Без gtk зависимостей ==== cow-notify ==== *Осуществляет привязку dbus к xcowsay и любым скриптам и утилитам. *Очень легкий *Поддерживает notify-send . Передает 3 параметра : продолжительность popup, заголовок, тело сообщения *https://aur.archlinux.org/packages/cow-notify-git/ ==== osdsh ==== *Осуществляет привязку dbus к osd_cat *https://aur.archlinux.org/packages/osdsh/ ==== sind ==== *Осуществляет привязку dbus к dzen *https://github.com/htylo/simplenotifydaemon ==== notification-thing ==== https://github.com/mk-fg/notification-thing на python ==== wired==== https://github.com/Toqozz/wired-notify на rust ======= Утилиты ======= ===== gtkdialog ===== *[[/programming/gtkdialog2]] *Поддержка gtk2 и 3 *Иконки, шрифты *Максимальный функционал. Сложный синтаксис. Тяжело отлаживать ===== yad ===== *Иконки, шрифты, трей *Поддержка gtk2 и 3 *Проще gtkdialog, но менее функционален *https://code.google.com/p/yad/ [[/programming/yad]] ===== Xdialog ===== *http://xdialog.free.fr/ *gtkdialog функциональнее ===== gxmessage ===== Иконок нет. Цвет есть. Вывод только по центру или под курсором. На gnome, xfce абсолютно не похоже. ===== xcowsaw (xpupsay) ===== *Только popup (всплывающее сообщение) *Есть выбор иконок, места выводв и прочие настройки (см. xpupsay --help). *http://www.doof.me.uk/xcowsay/ *[[http://www.murga-linux.com/puppy/viewtopic.php?p=430055|www]] ===== osd_cat (aosd_cat) ===== *Только текст. Только popup (всплывающее сообщение) *http://ldots.org/xosd-guide/osd_cat.html *https://aur.archlinux.org/packages/libaosd/ ===== zenity ===== Более тяжелый вариант, аналогичный yad ===== dzen ===== *Только текст *https://wiki.archlinux.org/index.php/Dzen ===== dmenu ===== *http://tools.suckless.org/dmenu/ *Только текст *Много различных патчей ======Скрипты====== *Не поддерживают [[http://www.galago-project.org/specs/notification/0.9/x408.html|dbus]]. Приложения не смогут использовать их через libnotify *Не являются демонами. Ресурсоемкость и объем минимальны. *Как правило, имеются в системе и применяются для других целей ===== gtkdialog-splash ===== *[[http://208.109.22.214/puppy/viewtopic.php?t=73941&sid=d7b4d243424488f614c339f294ee02b3|www]] [[http://murga-linux.com/puppy/viewtopic.php?t=56448|www]] *В различных вариантах, иногда под именем //yaf-splash//, используется в [[wpru>PuppyLinux]]. Основан на **gtkdialog** и будет работать везде, где он есть. *Вывод в правой части экрана (стандартное место) проблематичен или невозможен. *Выводит иконки. ===== conky ===== Использовать [[wpru>conky]] для сообщений придумал [[http://forum.puppyrus.org/index.php/topic,11683.msg63255.html#msg63255| сам.]] Стало интересно, неужели никому подобное в голову не приходило... Поискал. Приходило: [[http://www.techrepublic.com/blog/opensource/how-to-use-conky-for-automatic-system-notification-and-administration/2969|1]], [[http://ubuntism.ru/2011/05/conky-notifyosd-style-theme/|2]], [[http://g33q.co.za/2011/01/16/using-notify-send-as-a-conky-replacement/|3]] *Можно весь мониторинг трея перенести в //conky//. *Перекомпиляция (//conky-//) под мою конфигурацию позволила избавиться от тяжелых библиотек типа //imlib// и уменьшить размер. Пришлось пожертвовать выводом иконок. Там где //imlib// уже есть ([[wpru>Openbox]]) - лучше использовать стандартный //conky//. Если иконки хочется, возможно есть смысл подумать о //notifyd//. *Проблемы вывода справа нет. *Можно сделать рамку и т.п. *Можно менять цвет, шрифт. *Можно использовать [[http://help.ubuntu.ru/wiki/conky#%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5|переменные conky]]. Документация по конфигурации //conky//: [[http://ramzport.blogspot.com/|1]], [[http://forum.ubuntu.ru/index.php?topic=123423.0|2]], [[http://rus-linux.net/lib.php?name=/MyLDP/admin/monitoring/tools.html|3]] ======Итог: ntf ====== *В стандартном окружении лучше использовать штатные средства. *В нестандартном - наименее ресурсоемкий popup - xcowsay + cow-notify dunst *Наиболее оптимальный по соотношению ресурсы\функциолал : dunst Написал //sh// скрипт [[http://forum.puppyrus.org/index.php/topic,11768.0.html|ntf]]. *Будет работать в любом линуксе |(в зависимостях yad и gtkdialog - оба есть gtk2 и gtk3) *Определяет наличие в системе демонов и выводит popup через них *Упрощает написание интерактивных диалогов : вопрос, выбор из списка *Активно использую в [[/puppyrus/pra|PRA]]