notification-bubbleВсплавающие сообщения в Ubuntu 9.10 сделаны действительно красиво. Но многим очень не нравится то, что часть сообщений (пользовательские сообщения) появляются ниже системных. Дырка между сообщением и панелью выглядит совсем безрадостно. Эта проблема решилась достаточно просто, но всплыли другие.

Мне захотелось получать уведомления в таком же стиле от Skype и от Thunderbird. Вообще удивительно, почему программы, написанные для Ubuntu, не используют систему notify-osd. Будем надеяться, что это станет стандартом в следующей версии. А пока подправим, что можем, сами. Подробнее о notify-osd можно узнать на wiki.ubuntu.com.

Начнем со смены позиции пользовательских сообщений. Очень хорошо об этой проблеме написал в своем блоге Leolik. Но если вам лень все делать самому, то качаем уже скомпилированный файл notify-osd_0.9.24-0ubuntu1_i386.deb и устанавливаем (это скомпилированный пакет с патчем от Лёлика). Создаем в своей домашней папке файл настроек .notify-osd. Если этого не сделать, то будут использованы настройки по умолчанию. Копируем туда слудующие строки:

slot-allocation = dynamic
bubble-expire-timeout = 10sec
bubble-vertical-gap = 5px
bubble-horizontal-gap = 5px
bubble-corner-radius = 37,5%
bubble-icon-size = 30px
bubble-gauge-size = 6px
bubble-width = 240px
bubble-background-color = 131313
bubble-background-opacity = 90%
text-margin-size = 10px
text-title-size = 100%
text-title-weight = bold
text-title-color = ffffff
text-title-opacity = 100%
text-body-size = 90%
text-body-weight = normal
text-body-color = eaeaea
text-body-opacity = 100%
text-shadow-opacity = 100%

Описание настроек (взято здесь - блог Leolikа):

slot-allocation - система вывода сообщений. Значения: dynamic - система вывода по-умолчанию в 9.04, fixed - система вывода по-умолчанию в 9.10. Чтобы выводить сообщения на одном и том же месте, ставьте dynamic.
bubble-expire-timeout - время отображения сообщения. В секундах.
bubble-vertical-gap - вертикальный отступ между всплывающими сообщениями. В пикселях.
bubble-horizontal-gap - горизонтальный отступ между сообщением и правым краем экрана. В пикселях.
bubble-corner-radius - закругление углов у сообщения. В процентах. Нормальные значения между 0% и 55%. Но от изменения закругления меняется тень от сообщения. К примеру при 0% - не будет закругления, но не будет и тени, а если больше 55% ставить, то закругление будет криво отображаться и тень будет просто зашкаливать.
bubble-icon-size - размер иконок в сообщениях. В пикселях, сразу и по высоте, и по ширине.
bubble-gauge-size - высота шкалы громкости, яркости и т.п. В пикселях. Значение от 5 до 10. Если меньше или больше, то шкала пропадает.
bubble-width - ширина сообщений. В пикселях.
bubble-background-color - цвет фона сообщений. Цвет ставится, как в стилях в html-верстке.
bubble-background-opacity - прозрачность фона сообщений. В процентах. Значение от 0% до 100%.
text-margin-size - отступ от текста до границ всплывающего сообщения. В пикселях.
text-title-size - размер шрифта заголовка сообщения. В процентах от значения параметра 'Система'->'Параметры'->'Внешний вид'->'Шрифты'->'Шрифт приложения'. Тоесть, если у вас шрифт приложения стоит 8px, то 8px = 100%. Увеличение процента даст больший размер шрифта, уменьшение - меньший размер шрифта. Это действительно и для параметра text-body-size, что описан ниже.
text-title-weight - толщина начертания шрифта заголовка. Значения: bold - жирный, normal - нормальный, light - тонкий.
text-title-color - цвет шрифта заголовка. Цвет ставится, как в стилях в html-верстке.
text-title-opacity - прозрачность шрифта заголовка. В процентах. Значение от 0% до 100%.
text-body-size - размер шрифта заголовка основного текста. В процентах от значения параметра 'Система'->'Параметры'->'Внешний вид'->'Шрифты'->'Шрифт приложения'.
text-body-weight - толщина начертания шрифта основного текста. Значения: bold - жирный, normal - нормальный, light - тонкий.
text-body-color - цвет шрифта основного текста. Цвет ставится, как в стилях в html-верстке.
text-body-opacity - прозрачность шрифта основного текста. В процентах. Значение от 0% до 100%.
text-shadow-opacity - прозрачность тени от текста. В процентах. Значение от 0% до 100%. Цвет тени к сожалению не меняется.

Теперь ВСЕ всплывающие сообщения будут показываться на одном месте и в соответсвии с параметрами из .notify-osd.

Настраиваем сообщения Thunderbird.

Для Thunderbird достаточно просто скачать плагин libnotify-mozilla-0.1.4-beta.xpi и установить его (Инструменты - Дополнения)

libnotify

Не забудьте выключить уведомления от Thunderbird, а то будете получать каждое сообщение дважды.

Настройка сообщений Skype.

Для начала устанавливаем в Synaptic пакет libnotify-bin и проверяем, установлен ли пакет notify-osd.

Заходим в настройки Skype, выбираем "Уведомления" и нажимаем кнопку "Больше настроек" (см. рисунок ниже). Снимаем галочку с "Отображать всплывающее уведомление". Отмечаем галочкой "Запускать следующий скрипт" и вводим нужную команду (см. ниже)

Настройка всплывающих сообщений Skype

Все события Skype, которые требуется привести к виду стандартных уведомлений, нужно отредактировать по приведенной схеме. Ниже в таблице приведены скрипты для самых востребованных событий Skype (список с легкой редактурой взят здесь):

Событие Skype Скрипт для стандартного уведомления Ubuntu
Входящий звонок notify-send "%sname" "Вам звонит" -i skype
Номер занят notify-send "%sname занят" -i skype
Звонок не удался notify-send "%sname звонок не удался" -i skype
Удержание вызова notify-send "%sname" "Удержание звонка" -i skype
Вызов продлен notify-send "%sname" "Вызов продлен" -i skype
Вызов завершен notify-send "%sname" "Вызов завершен" -i skype
Контакт показался в сети notify-send "%sname" "Снова в сети" -i skype
Контакт покинул сеть notify-send "%sname" "Покинул сеть" -i skype
Первое сообщение получено notify-send "%sname" "%smessage" -i skype
Сообщение получено
Запрос на передачу файла notify-send "%sname передаёт файл %fname (%fsize)" -i skype
Передача файла завершена notify-send "%sname" "Завершил передчу файла %fname" -i skype
Передача файла не удалась notify-send "Ошибка передачи файла" "%fname (%fsize)" -i skype

Можно использовать параметр %sskype вместо %sname, чтобы выводить скайповое имя пользователя (его логин в Skype), но мне больше нравится использовать имя. О других параметрах читайте на хабре.

Еще вариант вывода сообщений от Skype был реализован неким Димой на сайте thexnews.com. На сайте все прекрасно описано, поэтому не буду повторяться и копипастить. Я стал использовать оба эти способа, заменив строку для "Сообщение получено" и "Первое сообщение получено" на вызов скрипта от Димы:

skypenotify "%sname" "%smessage"

Основное достоинство здесь в том, что сообщение от одного абонента складываются, что очень удобно при активной переписке (см. картинку с сайта автора):

notify

Вот такие возможности есть у notify-osd. Из несдотатков всего вышесказанного я заметил только jодно: Thunderbird выводит сообщения о новых письмах даже, если это спам. Но и плагин - beta, надеюсь в релизе будет больше настроек.

Популярность: 4%

Поделиться в соц. сетях

Опубликовать в Одноклассники
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Яндекс
Опубликовать в Google Buzz
Опубликовать в Google Plus