Как установить ярлык, который чередует его функцию условно?

Я хочу установить уникальную горячую клавишу, чтобы иметь возможность чередовать системный звук между аналоговыми и HDMI выходами. Как я могу это сделать?

Такое поведение можно наблюдать в ярлыке play (из org.gnome.settings-daemon.plugins.media-keys), который воспроизводит и приостанавливает воспроизведение мультимедиа.

Я мог найти ответ здесь , что команда для установки вывода звука - pactl set-card-profile 0 output:[card-profile]

4
задан 28 August 2019 в 05:04

1 ответ

Ну, при чтении тем, что 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] команда должна переключить звуковой вывод сервера, как пожелали.
1
ответ дан 1 December 2019 в 10:30

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

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