Я хочу установить уникальную горячую клавишу, чтобы иметь возможность чередовать системный звук между аналоговыми и HDMI выходами. Как я могу это сделать?
Такое поведение можно наблюдать в ярлыке play
(из org.gnome.settings-daemon.plugins.media-keys
), который воспроизводит и приостанавливает воспроизведение мультимедиа.
Я мог найти ответ здесь , что команда для установки вывода звука -
pactl set-card-profile 0 output:[card-profile]
Ну, при чтении тем, что Bose DK и предложенный ванадий и сделавший еще некоторое исследование к приобретению знаний о сценарии удара и Linux PulseAudio звучат как сервер, я предложил одно решение:
Мы должны сохранить следующий сценарий в файле (предпочтительно в /usr/local/bin/
, как объяснено здесь), отметьте его как исполняемый файл (выполнением chmod +x
по нему), и затем присвоил его сочетанию клавиш (дополнительно, как объяснено здесь).
#!/bin/bash
sound_output=$(pacmd list-cards | grep "active")
if [[ $sound_output = *"analog-stereo"* ]]; then
sound_output=hdmi-stereo
else
sound_output=analog-stereo
fi
pactl set-card-profile 0 output:"$sound_output"
echo -e "PulseAudio sound server output set to $sound_output"
Explaning:
#!/bin/bash
гарантирует, что интерпретатор для этого сценария является ударом, включая расширенный синтаксис такой как [[]].- Как процитировано здесь, синтаксис
$( )
"замена команды". Это выполняет команду и использование, оно производится для создания действия строки. Таким образом, мы сохраняем возвратpacmd list-cards | grep "active"
вsound_output
переменная.- Как объяснено здесь, использование
*
в условии превращают его в проверку подстроки.- Как отвечено здесь,
pactl set-card-profile 0 output: [card-profile]
команда должна переключить звуковой вывод сервера, как пожелали.