LINUX.ORG.RU

PyQt4 CaptureDeviceTray utility


0

1

Наваял на днях утилитку на PyQt4 для отображения текущего состояния микрофона (вкл/выкл запись).

Что мне было нужно:
Во время скайп митингов хочется переключать состояние по горячей клавише. Это решаемо через dbus или amixer + хоткеи вашего DE. Но при этом не видно текущего статуса микрофона. Окно скайп держать на виду не всегда удобно.

Как оно работает:
Помещает в трей иконку с микрофоном. Когда запись отключена, микрфон перечёркнут. Приложение слушает события альзы через pyalsa. Переключать можно помимо описанных выше способов, через dbus интерфейс самого приложения. Примеры команд для переключения:

  • CaptureDeviceTray dbus:
    qdbus org.kde.capturedevice /CaptureDevice org.kde.CaptureDevice.SwitchState
  • kmix dbus:
    qdbus org.kde.kmix /Mixer0 org.kde.KMix.setRecordSource Capture:0 [True|False]
  • amixer command-line:
    amixer sset Capture,0 capture [cap|nocap]

Плюс в том что интерфейс CaptureDeviceTray имеет одну команду switch, что избавляет вас от проверки текущего состояния.

Зависимости:
установленные PyQt4, pyalsa, запущенный dbus.

Установка:
Никакой. Распаковываем куда угодно, запускаем полным путём. Если запускаете через krunner, будет восстановлена при следующем логине.

Настройка:
кладём имя девайса в CaptureDevice.conf. Только один девайс в формате Dev_name:channel#. Имя устройства можно подсмотреть в том-же kmix. У меня там «Capture» и «Capture 2». Соответственно указываю «Capture:0» или «Capture:1». Либо можно посмотреть вывод команды 'amixer scontrols'

В KDE хоткей можно задать в Settings -> Shortcuts and Guestures. Жмём Edit -> New -> Global Shortcut -> DBus command. Во вкладке trigger выставляем хоткей, во вкладке Action:
Remote application: org.kde.capturedevice
Remote object: /CaptureDevice
Function: org.kde.CaptureDevice.SwitchState
Arguments: [пусто]
Жмём Call для проверки.

Это моё первое приложение на питоне, и код выглядит достаточно бессвязно. Написал потому что ничего подобного в сети не нашёл. Если кому-то покажется полезным, пользуйтесь на здоровье.

Выложил пока здесь



Последнее исправление: dmitry_kuzmenko (всего исправлений: 1)

Наверное, немногим это может понадобится, но, поскольку аналогов-то все равно, наверное, нет, автору зачет!

dumal ★★
()
Ответ на: комментарий от dumal

Спасибо! Если руки дойдут, сделаю PyGtk версию, может это увеличит аудиторию =))

dmitry_kuzmenko
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.