Сайт | Скачать | Видео | Wiki

Автор Тема: ntf - стандартизация сообщений системы  (Прочитано 34158 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29319
  • Репутация: +196/-0
  • Автор темы
    • PuppyRus-A
ntf ( notify ) - написал на sh утилиту вывода сообщений
Последняя версия в PRA
Конфиг: $HOME/ntf.conf . Подробности : ntf --help. Тест: ntf --test
Код
Вывод сообщения
Use: /usr/local/bin/ntf [-[ieaqw][n]] "заголовок" ["текст"]
    /usr/local/bin/ntf -l "т|е|к|ст" ["заголовок"] ["текст"]
    /usr/local/bin/ntf -3 "gtk-yes|yes да|1=gtk-no|no|2" ["Заголовок"] ["текст"]
    /usr/local/bin/ntf -3 "\
gtk-yes
yes да
1
\
gtk-no
no
2" ["Заголовок"] ["текст"]
    Вместо '-3' можно использовать '-k' (--checklist) или '-r' (--radiolist)
    В этом случае в 1м поле можно задать дефолт 'true' или 'false'

    /usr/local/bin/ntf --test - демонстрация возможностей
    
    i - информация  (всплывающее)
    e - ошибка (всплывающее)
    a - авария
    q - вопрос (да=0)
    w - сообщение с кнопкой ОК
    l - выбор из списка
    3 - выбор из списка с иконкой и скрытым полем
    n - число секунд показа сообщения

i,e выдают всплывающее сообщение. Скрипт проверяет наличие в системе : notify-osd notifyd yad xpupsay conky conky-(без поддержки ico) yaf-splash gxmessage. Выводит сообщение первым найденным способом .

a,w выводят интерактивное сообщение (требуется нажать кнопку). Скрипт проверяет наличие в системе : yad Xdialog. Выводит сообщение первым найденным способом.

q - вопрос. Обработка : [ "`ntf -q "Выключить" "ПК?"`" ] && shutdown -h now.
Или через [ "$?" = "1" ] && exit (1-нет 0-да)

Cпособ вывода и прочие параметры можно указать в ~/.config/ntf.conf.

Скрипт проверяет наличие в системе : notify-osd notifyd xpupsay conky conky-(без поддержки ico) yaf-splash gxmessage. Выводит сообщение первым найденным способом.

a выводит интерактивное сообщение (требуется нажать кнопку).
q - вопрос. Обработка : [ "`ntf -q "Выключить" "ПК?"`" ] && shutdown -h now
Скрипт проверяет наличие в системе : yad Xdialog. Выводит сообщение первым найденным способом.
[/cut]
По моему опыту - это наиболее ходовые варианты уведомлений.
Можно дописать другие способы вывода.
В документации (ниже) содержатся ссылки на модули notify-osd и notifyd. При подключении вывод пойдет через них.
Обзор вариантов. Модуль yad
Таким образом получаем стандартизацию сообщений и возможность выбора их вида.
Будет работать в любом линуксе, где есть перечисленные утилиты
« Последнее редактирование: 27 Январь 2016, 16:19:38 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29319
  • Репутация: +196/-0
  • Автор темы
    • PuppyRus-A
Можно еще попробовать:
osdctl
xbanner http://www.hijinks.com/~spade/linux/XBanner/

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1419
  • Репутация: +20/-1
1.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)
2.core2duo,4Gb,Radeon HD7850,(ubuntu+openBox+LXPanel, ddr01)

Онлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10525
  • Репутация: +108/-2
sfs,
xbanner
вроде для окон логин-пароль призагрузке, а не для рабочего стола
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29319
  • Репутация: +196/-0
  • Автор темы
    • PuppyRus-A
conky  http://ubuntuone.com/0qaeqZcruAhNp19OA9bL8S#conky
Эта ссылка есть выше. Или что Вы имели ввиду?

xbanner - именно так. Но ведь и conky не для notify.
Меня osdctl xbanner не особо впечатлили.

Для фона р. стола (голого, без стола файл-менеджера) нашел xsri. Интересная, легкая штука. Может градиент и поверх картинку с эффектами. Как бы еще текст туда вывести... Хотя бы конвертацией в картинку...
« Последнее редактирование: 16 Май 2012, 09:25:59 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29319
  • Репутация: +196/-0
  • Автор темы
    • PuppyRus-A
28.05.12
Посмотрел оригинальный yaf-splash (не симлинк на gtrdialog-splash)
http://distro.ibiblio.org/quirky/pet_packages-common/yaf_splash-1.02.pet
В отличие от gtrdialog-splash, yaf-splash может выводить надписи  справа.
Только UTF-8 не поддерживает. Поэтому видимо от него и отказались  :'(
Может у кого есть yaf-splash UTF-8 или мысли как это сделать...
« Последнее редактирование: 29 Август 2012, 11:27:30 от sfs »

Онлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10525
  • Репутация: +108/-2
xpupsay очень радует, при условии что удаляются те что сейчас используем нотификаторы и значек собачки или чего там поменять на кастом.
переход без переделки скриптов возможен?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29319
  • Репутация: +196/-0
  • Автор темы
    • PuppyRus-A
Согласен - xpupsay - оптимален по возможности\потребляемые ресурсы

Думаю - оптимально:
1. в новых скриптах писать notify "head" "body" ico font
2. notify написать так, чтобы по желанию можно было выбрать метод (xpupsay, gtkdialog, notify-osd, ...)
3. для совместимости со старыми скриптами внутри notify написать транслятор ключей gtkdialog-splash и т.п. в стандарт п.1
4. по мере готовности заменять gtkdialog-splash и т.п. симлинками на notify. Там , где закосячит - переписывать вызывающий скрипт. В Байт есть скрипт notify-send уже заточенный под  gtkdialog-splash, gxmessage, conky, notifyd, notify-osd (требует доработки - за основу сойдет)
Проблема будет с Xdialog. Его нельзя заменить симлинком, т.к. в отличие от gtkdialog-splash он имеет еще кучу функций. Можно попробовать отлавливать нужные ключи и если не нотификация - передавать настоящему Xdialog

Для запуска достаточно принять стандарт  (п.1.) и написать notify на базе xpupsay (готов сделать)
Остальное можно оставить на потом или никогда.
Давайте решать....

Онлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10525
  • Репутация: +108/-2
я за, но я скрипты писать не умею, поэтому за всех не могу сказать
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 7751
  • Репутация: +176/-2
  • Старый чайник
в новых скриптах писать notify "head" "body" ico font
А оно нужно? Всё равно придётся править скрипты. Проще сразу вписать xpupsay. Работа несложная, sed справится.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150) Richy64
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250) Simply p8
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150) Richy32

Онлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10525
  • Репутация: +108/-2
знач надо сказать sed пусть начинает.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29319
  • Репутация: +196/-0
  • Автор темы
    • PuppyRus-A
Если сделать notify в виде заглушки - когда завтра появится xpupgaff еще лучше xpupsay - sed уже не понадобится
Т.е проблему можно решить раз и навсегда. Транслятор  gtkdialog-splash пригодится при использовании наработок woof.

Кроме того, любителям xfce (коих не мало) может захотеться родной notifyd
Опять sed?
« Последнее редактирование: 24 Октябрь 2012, 12:38:32 от sfs »

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
ИМХО, надо разделить нотификацию по типам сообщений, и для каждого типа сделать отдельный скрипт.
Например так:

Всплывающее окно с не очень важной информацией (если пользователь пропустит - не важно). Сейчас это gtkdialog-splash.
Окно с текстом и кнопкой ОК - более важная информация, которую пользователь не должен упустить. Возможно на Xdialog.
Окно с текстом и кнопками Да/Нет - запрос с возвращаемым результатом. Сейчас обычно используется Xdialog.
Окно с информацией о процессе, без кнопок вообще.

Всё остальное, более сложное, ИМХО лучше писать на чистом gtkdialog, без обёрток. Иначе не получиться необходимой гибкости. По умолчанию можно считать что gtkdialog в системе есть всегда.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29319
  • Репутация: +196/-0
  • Автор темы
    • PuppyRus-A
Всплывающее окно с не очень важной информацией
Окно с информацией о процессе, без кнопок вообще.
notify пойдет только для этого.
В остальном с Вами согласен.
Xdialog лучше бы не использовать. Смотрится топорно. На другом разрешении экрана иногда дает сюрпризы с размером окна.
Еще есть yad. Но документации и примеров по нему мало
К gtkdialog претензий нет (кроме отлаживать неудобно или я не умею). В последней версии 0.8.1 есть новые фичи. В доке есть примеры.
« Последнее редактирование: 24 Октябрь 2012, 18:50:51 от sfs »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 7751
  • Репутация: +176/-2
  • Старый чайник
Xdialog лучше бы не использовать.
Zenity?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150) Richy64
Netbook Acer 722 c6ckk (AMD C-50 Ontario, Radeon HD 6250) Simply p8
Nettop Asus Eee Box PC EB1007 (Intel Atom D425, Intel GMA 3150) Richy32