システムサウンドをアナログ出力とHDMI出力に切り替えることができるように、独自のホットキーを設定したいと思います。これどうやってするの?
この動作は、メディアを交互に再生および一時停止するplay
ショートカット(org.gnome.settings-daemon.plugins.media-keys
から)で確認できます。
私は答えを見つけることができました ここ サウンド出力を設定するコマンドは
pactl set-card-profile 0 output:[card-profile]
であること
DK Bose および vanadium が示唆するトピックを読み、bashスクリプトおよび Linux PulseAudioサウンドサーバー について学習するためにさらに調査を行った1つの解決策を思い付きました:
次のスクリプトをファイル(できれば_/usr/local/bin/
_で保存 here )に保存し、実行可能としてマークし(_chmod +x
_を実行して)、割り当てます。キーボードショートカットに(オプションで説明されているように here )。
_#!/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"
_
説明:
- _
#!/bin/bash
_は、このスクリプトのインタープリターがbashであることを保証し、[[]]などの拡張構文を有効にします。- 引用 ここ のように、構文
$( )
は「コマンド置換」です。これはコマンドを実行し、その出力を使用してラインアクションを構成します。このように、_pacmd list-cards | grep "active"
_の戻り値を_sound_output
_変数に保存します。- 説明したように、 ここ のように、条件で_
*
_を使用すると、部分文字列チェックになります。- 答えは here ですが、_
pactl set-card-profile 0 output: [card-profile]
_は、必要に応じてサウンドサーバーの出力を切り替えるコマンドです。