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

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

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33956
  • Репутация: +231/-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

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

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1610
  • Репутация: +27/-1
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн Pro

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

Оффлайн sfs

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

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

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33956
  • Репутация: +231/-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

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33956
  • Репутация: +231/-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

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

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8634
  • Репутация: +187/-2
  • Старый чайник
в новых скриптах писать notify "head" "body" ico font
А оно нужно? Всё равно придётся править скрипты. Проще сразу вписать xpupsay. Работа несложная, sed справится.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Pro

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33956
  • Репутация: +231/-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

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

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8634
  • Репутация: +187/-2
  • Старый чайник
Xdialog лучше бы не использовать.
Zenity?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64