Desktop notifications. Сообщения системы.
121224, 140721 sfslinux@gmail.com
Многие программы, например evolution, pidgin, NM, transmission , используют Libnotify - простой способ отображения уведомлений и информации в маленьком диалоговом окне.
При написании скриптов, возникают ситуации, требующие уведомления пользователя об определенных событиях или требуется интерактивность (вопрос-ответ).
Пример
Далее описаны варианты вывода этих сообщений
Теория
Демоны
Управление
Запуск
Происходит автоматически, при наличии /usr/share/dbus-1/services/org.название_сервиса.Notifications.service
Отправка сообщения
notify-send "Заголовок" "Сообщение" -i Путь_к_иконке
Демоны естественно постоянно находятся в памяти. Расход не большой , но он есть…
Отправка сообщения от root
Стандартные демоны
Gnome
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
Иконки, шрифты, положение, кнопки
Самый легкий из стандартных
-
Mate
-
Иконки, шрифты, положение
Конфигуратор, темы
Если сообщений некоторое время нет - самоуничтожается из памяти
Enlightenment
Отдельным модулем выделить тяжело
Иконки, шрифты, положение
Конфигуратор, темы
Нестандартные демоны
Осуществляет привязку dbus к скриптам и утилитам. Т.е. привязывает их к стандарту Libnotify
notification-daemon
dunst
cow-notify
Осуществляет привязку dbus к xcowsay и любым скриптам и утилитам.
Очень легкий
Поддерживает notify-send . Передает 3 параметра : продолжительность popup, заголовок, тело сообщения
-
osdsh
sind
notification-thing
wired
Утилиты
gtkdialog
yad
Xdialog
gxmessage
Иконок нет. Цвет есть. Вывод только по центру или под курсором. На gnome, xfce абсолютно не похоже.
xcowsaw (xpupsay)
Только popup (всплывающее сообщение)
Есть выбор иконок, места выводв и прочие настройки (см. xpupsay –help).
-
-
osd_cat (aosd_cat)
zenity
Более тяжелый вариант, аналогичный yad
dzen
-
Только текст
Много различных патчей
Скрипты
Не поддерживают
dbus. Приложения не смогут использовать их через libnotify
Не являются демонами. Ресурсоемкость и объем минимальны.
Как правило, имеются в системе и применяются для других целей
gtkdialog-splash
conky
Использовать conky для сообщений придумал
сам.
Стало интересно, неужели никому подобное в голову не приходило… Поискал. Приходило: 1, 2, 3
Можно весь мониторинг трея перенести в conky.
Перекомпиляция (
conky-) под мою конфигурацию позволила избавиться от тяжелых библиотек типа
imlib и уменьшить размер. Пришлось пожертвовать выводом иконок. Там где
imlib уже есть (
Openbox) - лучше использовать стандартный
conky. Если иконки хочется, возможно есть смысл подумать о
notifyd.
Проблемы вывода справа нет.
Можно сделать рамку и т.п.
Можно менять цвет, шрифт.
-
Документация по конфигурации conky: 1, 2, 3
Итог: ntf
В стандартном окружении лучше использовать штатные средства.
В нестандартном - наименее ресурсоемкий popup - xcowsay + cow-notify dunst
Наиболее оптимальный по соотношению ресурсы\функциолал : dunst
Написал sh скрипт ntf.
Будет работать в любом линуксе |(в зависимостях yad и gtkdialog - оба есть gtk2 и gtk3)
Определяет наличие в системе демонов и выводит popup через них
Упрощает написание интерактивных диалогов : вопрос, выбор из списка
-