Пятница, 2024-05-17, 6:12 PM
Приветствую Вас Гость | RSS

Блог

Главная » 2010 » Февраль » 16 » [HOW-TO]Собственные уведомления (notify) в Gnome
2:59 PM
[HOW-TO]Собственные уведомления (notify) в Gnome
Речь пойдет об извещениях которые показываю практически все приложения от Rhythmbox до сетевых подключений. В этой статье я расскажу, как создавать собственные.
1. Для начала понадобится установить пакет libnotify-bin

sudo apt-get install libnotify-bin

2. Выполним небольшой тест. В консоле:

notify-send test


Если у вас появилась такое окошко значит програма установилась без ошибок.

3. Синтаксис

notify-send [Ключ] [Тело]

4. Ключ
-u, --urgency=LEVEL
Вариантов здесь не так много, low, normal, critical. Разница лишь в полоске которая появляется с левой стороны.
-t, --expire-time=TIME Specifies the timeout in milliseconds at which to expire the notification.
Здесь все понятно, указываем время в миллисекундах которе извещение будет висеть на экране.
-i, --icon=ICON[,ICON...] Specifies an icon filename or stock icon to display.
С иконкой тоже все замечательно, Во первых можно прямо указать путь на любое изображение на диске. Другой вариант это открыть /usr/share/icons/hicolor/48x48/apps/ и выбрать там любую и указать ее название только без расширения notify-send -i pidgin test
-c, --category=TYPE[,TYPE...] Specifies the notification category.
по идеи задание категории должно было дать результат но я поверьте его так и не заметил, поэтому пойдем дальше
-h, --hint=TYPE:NAME:VALUE Specifies basic extra data to pass. Valid types are int, double, string and byte.
хинты дают возможность большу возможность по настройке, например местоположение на экране где должно появится извещение -h int:x:500 -h int:y:500

5. Тело
Принимаются 2 текста, первый идет в шапку, второй это тело с небольшими возможностями гипертекста.

notify-send «Шапка» "жирный италик ссылка"


6. Приминяем в bash сценариях
После того как разобрались с настройками сразу начинает зарождаться мысль, а куда это применить и первое это собственный органайзер. Все время говорят что надо отрываться от монитора каждые 45 минут, значит есть шанс это сделать. Шаг первый это написать небольшой скриптик

#!/bin/sh
# get_display [USER] — Returns $DISPLAY of USER.
# If first param is omitted, then $LOGNAME will be used.
get_display () {
who \
| grep ${1:-$LOGNAME} \
| perl -ne 'if ( m!\(\:(\d+)\)$! ) {print ":$1.0\n"; $ok = 1; last} END {exit !$ok}'
}
DISPLAY=$(get_display) || exit
export DISPLAY
PATH=/usr/bin/:/bin/
notify-send --urgency normal --expire-time=10000 -i typing-monitor -h int:x:500 -h int:y:500 "Пора сделать перерыв" "Глазам нужен отдых"


что здесь важно, это DISPLAY, крон его не видит в упор и поэтому команды хоть и будут выполнятся на экране ничего не появится. Однако жестковбитый DISPLAY — не хорошо. Он время от времени может меняться, даже, если всего один пользователь за компьютером. Кроме того, если ты закрыл сессию и ушел, крон будет все равно работать и ошибки будут сыпаться тебе в почту. Лучше определять его автоматом, например, с помощью вот такой вот функции get_display, описанной в скрипте.
сохраняем ставим на исполнение и проверяем.

chmod a+x sh1.sh
./sh1.sh


7. Приминяем в Skype
Если вам не нравятся стандартные всплывающие окна, их можно заменить на notify. Для этого отключаем стандартные уведомления в Skype.
Настройка-> Раздел уведомления-> Больше настроек-> Снимаем галочку с Отображать всплывающее уведомления-> Поставить галочку в поле Запускать следующий скрипт-> написать в этом же поле следующее:

notify-send "%sname" -i skype


Теперь вместо стандартного скайповского окна будет обычный Ubuntuвский пузырь. Разве что вместо %sname будет имя позвонившего вам. Дальше дело фантазии. Все в тех же настройках уведомлений выбираете Входящий звонок и скрипте заменяете надпись в кавычках с %sname на звонок от %sname и так дальше по аналогии.
Также вы можете использовать следующие команды:
  • %sskype — Skype имя контакта (где это применимо)

  • %sname — отображаемое имя контакта (где это применимо)

  • %smessage — собственно текст сообщения

  • %fpath — путь к файлу

  • %fname — имя файла

  • %fsize — размер файла (в байтах)

  • %fprogress — статус загрузки (в байтах)

  • %fspeed — скорость загрузки (байт в секунду)

Удачных вам экспериментов!

Категория: [HOW-TO] | Просмотров: 2014 | Добавил: Draco | Рейтинг: 0.0/0
Всего комментариев: 6
6 optorbHom  
0
Смотрел новый фильм http://kinomanja.ru/cat4/teoriya-poleta.php - Теория полета еще такого не видел !! !

5 affoneymn  
0
http://www.sarvajal.com - viagra

4 DalpCyncplarl  
0
http://gfkdjghfkgjjkhj.com - gfkdjghfkgjjkh

3 Hanna  
0
That's the smart thinking we could all bneeift from.

2 huntfisherr  
0
Январь - «Глухой сезон», «трудное время» — слывет у рыболовов январь-лютовей, месяц свирепых ветров и леденящих морозов. Над большей частью территории России воздух сильно охлажден студеным дыханием Арктики. Обширная область от Балтийского моря до Тихого океана и от Северного Ледовитого океана до Черного моря, предгорий Кавказа, пустынь Средней Азии, южных границ на Дальнем Востоке покрыта снегом а достойно описано - полностью читайте на fisherhunter.ru/rybalka/rybolovnyj-kalendar/janvar.html


Спасибоговорить не надо

1 Mikel  
0
Was totally stuck until I read this, now back up and rnuinng.

Имя *:
Email *:
Код *:
Форма входа
Поиск
Опрос
Как вам Ubuntu 10.10?
Всего ответов: 28
Статистика