Форум программистов, компьютерный форум, киберфорум
Luca Brasi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Переключение между колонками и наушниками

Запись от Luca Brasi размещена 13.02.2021 в 01:49
Показов 2112 Комментарии 1

В прошлом я имел следующую компоновку: в передний порт системника были воткнуты наушники, а на динамики монитора Philips 234E транслировался звук через HDMI. Если оно и играло, то играло всё вместе (и наушники, и динамики монитора). Использовал я Kubuntu 18.04. Вообщем начал я копать в сторону Pulse Audio и нашел всякие интересные вещи позволяющие переключать устройства, чтобы не лезть графический менеджер пульса для переключения.
Нажмите на изображение для увеличения
Название: Untitled 1.jpg
Просмотров: 331
Размер:	14.8 Кб
ID:	6796
Отсалось только написать скрипт, а потом забиндить его через xbindkeys
По сути всё свелось к постоянному переходу между источниками вывода звука
Bash
1
2
3
pactl list sinks short
#0       alsa_output.pci-0000_26_00.1.hdmi-stereo-extra1 module-alsa-card.c      s16le 2ch 44100Hz       SUSPENDED
#1       alsa_output.pci-0000_28_00.3.analog-stereo      module-alsa-card.c      s16le 2ch 44100Hz       RUNNING
Более того, мало между ними переходить, надо еще перенаправлять уже запущенные звуковые потоки. Но ничего, есть уже живой скрипт.

Потом в один день у меня появился монитор без динамиков. А динамики шли отдельное поставкой. То есть стало, что спереди у меня наушники, а сзади динамики.
Если вызвать все доступные устройства, то можно увидеть где то в этом списке аналоговый стерео-выход.
Bash
1
pacmd list-sinks
Но самое интересное - это порты. То есть колонки и наушники.
pacmd list-sinks

2 sink(s) available.
index: 0 - упущен

* index: 1
....
ports:

analog-output-lineout: Line Out (priority 9900, latency offset 0 usec, available: no)

properties:

analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: yes)
properties:
device.icon_name = "audio-headphones"
active port: <analog-output-lineout>

То есть, зная активный порт, и оговорив устройства заранее - мы можем переключаться между имеющимися портами, выбирая опоситный порт от текущего активного. А если забиндить всё это дело на Crtl + Shift + Arrow UP, то станет вооще очень комфортно.

Итого, указываем полное имя устройств в списке devices:
Python
1
2
3
4
5
6
    devices = []
    devices.append(Device("alsa_output.pci-0000_28_00.3.analog-stereo",
                  "analog-output-lineout"))
    
    devices.append(Device("alsa_output.pci-0000_28_00.3.analog-stereo",
                  "analog-output-headphones"))
Полный листинг скрипта лежит тут.
Ну и немного про конфиг xbindkeys. Так выглядит вызов скрипта, посредством кнопок Crtl + Shift + Arrow UP
Bash
1
2
3
4
5
6
7
# Examples of commands:
 
"xbindkeys_show" 
  control+shift + q
 
"python3 /tmp/audio_port_switcher.py"   
    m:0x5 + c:111
Размещено в Linux
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    ну, для меня это высший пилотаж, по аналогии я велосипедист)
    Запись от в52 размещена 18.03.2021 в 02:26 в52 вне форума
 
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru