пятница, 20 сентября 2013 г.

Переключение статуса skype горячими клавишами

Для этого будем использовать skype4py, скрипты и утилиту назначения горячих клавиш xbindkeys.
Установка skype4py:
$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv 
$ sudo pip install skype4py


Вот какие статусы нам доступны:
#{ User status
cusUnknown = 'UNKNOWN' 
cusOffline = 'OFFLINE' 
cusOnline = 'ONLINE' 
cusAway = 'AWAY' 
cusNotAvailable = 'NA' 
cusDoNotDisturb = 'DND' 
cusInvisible = 'INVISIBLE' 
cusLoggedOut = 'LOGGEDOUT' 
cusSkypeMe = 'SKYPEME'

Лично я использую только три из них: в сети (ONLINE), нет на месте  (AWAY), не беспокоить (DND). Поэтому, если нужно будет сделать больше статусов, можно сделать по аналогии, это просто.

Теперь напишем скрипты для каждого статуса:
$ mkdir ~/.skype_status
$ vim ~/.skype_status/skype_online.py
#!/usr/bin/env python
import Skype4Py
skype = Skype4Py.Skype()
skype.Attach()
skype.ChangeUserStatus("ONLINE")

Создаем аналогично для skype_away.py, skype_dnd.py, отличия в строчках:
skype.ChangeUserStatus("AWAY")
skype.ChangeUserStatus("DND")

$ cd ~/.skype_status
$ chmod +x *

Моя стандартная программа управления хоткеями почему-то отказывалась работать:
поэтому я воспользуюсь сторонней утилитой.

Устанавливаем xbindkeys:
$ sudo apt-get install xbindekys

Создаем конфиг (пока пустой):
$ touch ~/.xbindkeysrc

Пусть будет, например, на alt+a - AWAY, alt+o - ONLINE, alt+d - DND.
Теперь нужно настроить хоткеи и соответствующие им команды.
$ xbindkeys -mk
жмем мышкой в область окна, и вводим:
alt+a
alt+o
alt+d
Смотрим что нам там написали. А написали примерно такое:
"(Scheme function)" - это команда, которая будет запускаться при нажатии сочетания клавиш
m:0x18 + c:32 - коды клавиш
Alt+Mod2 + o - коды клавиш, более-менее понятных для человека.

Теперь настраиваем основной конфиг ~/.xbindkeysrc, у меня он выглядит так:
$ vim ~/.xbindkeysrc
#away
"~/.skype_status/skype_away.py"
m:0x18 + c:38
Alt+Mod2 + a

#online
"~/.skype_status/skype_online.py"
m:0x18 + c:32
Alt+Mod2 + o

#dnd
"~/.skype_status/skype_dnd.py"
m:0x18 + c:40
Alt+Mod2 + d

Думаю тут вопросов возникнуть не должно.

Запускаем xbindkeys:
$ xbindkeys

Добавляем в автозагрузку, в Linux Mint Mate например:
Меню - Центр управления - Запускаемые приложения

2 комментария:

Unknown комментирует...

А как с этой схемой сделать отключение и включение микрофона горячими клавишами?
в skype4py пока никак не найду нужное

Amet13 комментирует...

Пробежался быстренько по API, тоже не нашел такого.