Активация аудио через USB с помощью скрипта /etc/pm/sleep.d, который запускает команды pacmd

Ubuntu досадно переключает устройство для ввода и вывода звука с моей USB-гарнитуры на встроенную звуковую карту каждый раз, когда я выхожу из системы, переходите в спящий режим или выключаете компьютер. Это происходит, даже если для «Аналоговый стереофонический USB-гарнитур» в «PulseAudio» выбран параметр «Установить как запасной вариант».

Я решил запускать скрипт каждый раз, когда мой компьютер запускается или оттаивает. Получить команды для запуска при входе в систему легко: я просто поместил их в свой файл .zshrc. Но у меня возникают проблемы с их запуском при выходе из спящего режима. Вот мой скрипт, который я поместил в /etc/pm/sleep.d:

#!/bin/bash

case "$1" in
    thaw|resume)
        pacmd set-default-sink "alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_Headset-00-Headset.analog-stereo"
        pacmd set-default-source "alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_Headset-00-Headset.analog-stereo.monitor"
        ;;
esac

Проблема в том, что он не выполняет команды pacmd при оттаивании (я не приостанавливаю свой компьютер потому что он замерзает при возобновлении). Я пробовал многочисленные варианты сценария, в том числе помещал команды pacmd вне оператора case, чтобы они (казалось бы) выполнялись независимо, но безрезультатно.

Когда я помещаю другие команды (например, gvim) в сценарий и переводю компьютер в спящий режим и оттаиваю их, они также не выполняются. Однако команды выполняются, если они находятся за пределами оператора, и я запускаю скрипт в командной строке. Если я помещаю команды в сценарий в /etc/pm/power.d вне оператора case, они выполняются дважды.

3
задан 1 March 2013 в 06:10

0 ответов

Другие вопросы по тегам:

Похожие вопросы: