Software Developer
0,0
рейтинг
17 декабря 2009 в 00:32

Администрирование → Skype и стандартные всплывающие сообщения в Ubuntu

Пишу чтобы не забыть, а в дальнейшем использовать, надеюсь кому-нибудь тоже будет полезно. Озадачился заменить скайповские попапы на стандартные убунтовские нотификации, уж больно глаз режут. Есть задача, есть желание её решить. Как оказалось решение достаточно несложное. И так, решение.

На ноуте Ubuntu 9.10, репозиторий и сам Skype взят из Ubuntu Tweak. Создание самих нотайсов оказалось делом несложным, вот пример команды:

notify-send "Hello world!"

чтобы появилось notify-send следует установить libnotify-bin:

sudo aptitude install libnotify-bin

В Skype есть настройка уведомлений. Выбираем событие, например «Сообщение получено». Нажимаем кнопку «Больше настроек», отключаем чекбокс «Отображать всплывающее уведомление», а в строке «Запускать следующий скрипт» пишем:

notify-send "%sname: %smessage" -i skype

переменные %sname и %smessage будут заменены в уведомлении на имя контакта и сообщение соответственно. Дополнительны параметр -i skype указывает системе установить иконку приложения в окне нотификации, в данном случае иконку Skype.
«Запрос на передачу файла» можно оформить аналогичным способом:

notify-send "%sname передаёт файл %fname (%fsize)" -i skype

По сути всё просто и понятно, следует отредактировать нужные события и настроить параметры notify-send.

Ниже приведён список доступных переменных в строке для событий.

Глобальные параметры:
%type — тип события
%sskype — Skype имя контакта (где это применимо)
%sname — отображаемое имя контакта (где это применимо)

Сообщения в чате:
%smessage — собственно текст сообщения

Передача файла:
%fpath — путь к файлу
%fname — имя файла
%fsize — размер файла (в байтах)
%fprogress — статус загрузки (в байтах)
%fspeed — скорость загрузки (байт в секунду)

UPD: Спасибо shlyapa. Более симпотично разделить нотайс на заголовок (выводится жирным шрифтом) и сообщение:

notify-send "%sname" "%smessage" -i skype

Ссылка на статью в моём блоге Настройка всплывающих сообщений в Skype для Linux
Вадим @dnabyte
карма
74,2
рейтинг 0,0
Software Developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (50)

  • +2
    А я, млин, с API и DBus возюкался. А тут вот оно что.
    Кстати, есть ещё параметр -c и www.galago-project.org/specs/notification/0.9/x211.html
  • +1
    Молодец. Быстро и просто сделал. Только у меня в notify-send -u что low что critical ставишь — все одно получается и напоминания ничем не отличаются. Что тут у меня может быть не так?
    • 0
      Странно, у меня тоже параметр -u (urgency) не выставляется. По идее urgency == critical не должен автоматом пропадать с экрана.
    • 0
      А они еще не допилили свой notification-daemon настолько, чтобы он понимал такие сложные команды :)
      • 0
        так в man'е же написан ключ… видимо, работает, просто я совсем не вижу разницы :)
    • +2
      На сколько я понял, параметр -u влияет на порядок сообщений, а не на ух вид.
      Попробуй что-неибудь в таком духе:
      notify-send «0» && notify-send «1» -u low && notify-send «2» -u «critical»
      должно вылезти в таком порядке: 0, 2, 1
      • 0
        пробовали уже, не то.
        • +1
          cтранно. я пробовал, у меня работало. или разные версии или я не знаю =)
          • 0
            одно за другим идут, все по очереди пропадают.
            • +1
              правильно говорит, выходят не попорядку а 0 потом 2 и потом 1, проподать то пропадают, но порядок отображения меняется, второе хоть и указывается последним, но появляется вторым
              • 0
                прошу прощения, ошибся, порядок правильный.
              • 0
                По ходу касяу нашёлся)
                notify-send «1» -u low && notify-send «2» -u critical
                Не пашет! Работает только если поставить перед этим notify-send "..." без параметра -u
                • +1
                  да. потому, что когда приходит первое сообщение он сразу его выводит.
                  а потом приходят сразу два сообщения и он их выстраивает в порядке приоритета.
                  код для проверки:
                  notify-send 0 && notify-send -u low 1 && notify-send -u critical 2
                  порядок будет — 0 2 1
                  хотя при этом
                  notify-send 0 && notify-send -u low 1 && notify-send -u normal 2 && notify-send -u critical 3
                  порядок будет 0 3 1 2, а не 0 3 2 1, как ожидается… видимо, уровни low и normal не различаются
                  • 0
                    впринципе да, логично.
            • 0
              А можно заставить при появлении нового принудительно убирать старое (или двигать вверх)?
  • +1
    А для firefox рецепта нет ли случайно?
    • +4
      есть такое https://addons.mozilla.org/en-US/firefox/addon/9622
      • +1
        О, здорово! Оно и нужно. Спасибо!
  • 0
    А спецсимволы в %name и %message экранируются скайпом?
  • +2
    ух ты, как просто ларчик открывался)))
  • +1
    А в какой версии скайпа тестировали?
    у меня 2.1.0.47 и он позволяет только один скрипт на все события повесить. Понимаю, глупо, но факт :)
    • +1
      Нужно выбрать «Запускать следующий скрипт» в самом низу, а не первый пункт расширенных настроек.
      • +1
        да, спасибо :)
  • +1
    Была проблема со связкой mon + notify-send. Надо было, чтобы при сбое сервера сразу выводилось уведомление на десктопе. В итоге бросил notify-send и писал ошибки в файл, а с помощью specto мониторил этот файл.
  • 0
    dpkg -i skype4pidgin.deb?
    • +2
      кривое оно
    • +2
      У меня он попеременно ведёт к вылетам скайпа и пиджина, так что имхо неюзабелен.
      • +1
        Наблюдаю тоже самое. В итоге отказался. Но коллега на 8.04 LTS пользует — и проблем вроде нет.
        • +4
          У меня тоже 8.04 использую постоянно skype4pidgin, редко но бывает что при запуске пиджина запускается и скайп, но где-то через 1-2 секунды пиджин тихо и не заметно дохнет, перезапуск пиджина решает проблему. А так как такое случается не чаще чем раз в неделю, то для меня не проблема запустить пиджин ещё разок.
  • +1
    Спасибо! Сейчас попробую сделать тоже самое для Qutim
    • +1
      для него есть плагин libqutim-libnotify.so
  • +5
    notify-send -i skype "%sname" "%smessage" разве не красивше будет?
    • 0
      несомненно красивше, спасибо за ценное дополнение.
  • 0
    Жаль не проследил последовательность действий при которых у меня автоматически появились такие уведомления. Видимо плагин pidgin-skype это реализовал (Под 64 бита, на работе i386 такого нет). Возможно кто то подскажет как реализовать закрытие таких нотисов при клике на них (Как в маке)?
    • 0
      вообще параметр -u critical и должен оставлять нотайс на виду, закрыть его кликом можно, но вот чего-то не работает.
      • 0
        Если вам так хочется, чтобы он был на виду, то -t 0 решает)
  • +1
    Во как! Спасибо!
  • +1
    Хорошо бы оформить в пакетик…
    А кто-нибудь дружил Skype с AWN?
  • +3
    Спасибо, очень красиво:)
    #!/bin/bash
    wget -c $1
    notify-send "Закачалось !"


  • +4
    огромное спасибо автору за статью, только вот меня немножко напрягает, что убунтовые нотификейшены не кликабельны, т.к. нажимаешь на него, а оно не переходит в окно приложения, вот если бы еще это как-то вылечить — то вообще шикарно стало бы
    • +1
      Пассивность нотификаций notify-osd — это «фича» и о ней написано в спецификации. Много видел возмущений по этому поводу, но до того кто дизайнил их, почему то они увы не дошли, самому тоже не нравится. Хотели круче growl сделать, а получилась какашка…
      • +1
        А мне нравится эта фича. В Growl все время случайно открываю окно (:
        Когда на убунте — ок.
        • 0
          Ну, видимо это должно быть настраиваемо, раз кому то нравится, а кому то нет :)
  • 0
    После «sudo aptitude install libnotify-bin», Java в NetBeans и Aptana Studio начали загружать систему на 100%…
  • 0
    Может кто знает, есть ли такая фича, для нотификейшенов в picasa?
  • +1
    В общем так.
    Я тут это немного поиспользовал. По всей видимости, было бы неплохо все события от скайпа отправлять демону (кажется, его придётся написать), который их бы старательно фильтровал. Например затем, чтобы не показывать попапы, если окно с чатом, из которого приходит попап на переднем плане или просто видно. Или затем, чтобы не флудить мессагами после долгого отсутствия (я подписан на один довольно активный чат, поэтому для меня это актуально).
    Так что без плагина к скайпу, по всей видимости, всё-таки не обойтись.
    • 0
      Ну тут уже развитие идеи) Можно и с плагином позаморачиваться.
  • 0
    Параметр время и уровень не работают. Про время — длинная дискуссия на лончпаде. До сих пор :( (привет из будущего, у нас тут уже 10.10 и ядро 26)

    В конце дискуссии есть решение, чтоб сообщения быстрее пропадали. У меня к тому же они стали появлятся прямо под часами, а не с отступом как с обычным notify-send:
    notify-send "%sname:" --hint=string:x-canonical-private-synchronous: "%smessage" -i skype

    Теперь интересует вопрос с параметром %picture или типа того — какбы аватар контакта выдирать еще?
  • 0
    Кстати про модификацию интерфейса. Скайп имеет API, использующее D-Bus. Существует ли приятный интерфейс для Скайп, основанный на этом?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.