
Наконец-то новый Скайп поддерживает оформление Qt. Потихоньку программа становится более-менее юзабельной, но косяков еще много. Например, когда вам приходят сообщения в Linux'овый Скайп, они появляются где-то сбоку-снизу, что выглядит ужасно. Особенно в сравнении с великолепной Ubunt'овской системой уведомлений Notify-OSD. Поскольку у меня с помощью Notify-OSD все в принципе уведомления появляются в красивых прозрачных окошках справа-сверху, неродной Skype особенно режет глаз.
Если поискать в интернете, то можно найти совет прописать в настройках что-то вроде notify-send -i skype '%sname' '%smessage', но все равно выходит криво, потому что:
- Если вам придут несколько сообщений подряд, они будут выскакивать по очереди с перерывом 10 секунд, вместо того что-бы прикрепляться к предыдущему от того же собеседника (см. скриншот). Долго. И можно пропустить что-то важное.
- Сообщения будут выскакивать даже если у вас открыто окно чата, что просто бессмысленно.
Собственно 2 скрипта, один на Python - сервер который подключается к Notify-OSD; 2-ой bash, который посылает серверу мессаги из скайпа. Звучит сложно, делается просто :).
- Установите программу для управления окнами wmctrl и необходимые библиотеки: [code lang='bash']sudo apt-get install wmctrl python-notify libnotify[/code]
- Скачайте Скачать Skype Notify Append и раззипуйте оба моих скрипта в ~/bin/
- Сделайте скрипт исполняемым [code lang='bash']chmod +x ~/bin/skypenotify[/code]
- Skype->Options->Notifications
- Нажмите кнопку "Advanched" справа.
- Для событий "Chat Message Received" и "First Chat Message Received" в "Execute the following script" введите: [code lang='bash']skypenotify "%sname" "%smessage"[/code] (если скрипт skypenotify лежит в папке ~/bin полный путь прописывать необязательно)
- Для них-же уберите птичку с "Display pop-up"
- Сверните Скайп и ждите пока вам кто-нибудь напишет, для проверки. Ну или просто нажмите "Test Event"; (так неинтересно :).
PS: Ненавижу Skype. Но приходится им пользоваться, потому что многие думают иначе :(.
PPS: Теперь немного о том как это работает:
Сообщения будут прикрепляться (merge) друг к другу, только если вызывать их из одной программы. Команда notify-send работать не будет, так как ее новая копия запускается при каждом вызове.
Поэтому, запускается небольшой сервер на Python и начинает слушать 8091 порт.
Когда приходит мессадж, Skype через Bash скрипт запрашивает wget'ом адрес http://127.0.0.1:8091/сообщение
Python сервер это сообщение парсит, и выводит через pynotify.
Советую посмотреть исходники "сервера", может быть полезно, например для создания web-интерфейсов к Python программам.