私のThinkPad T450はManjaroを実行しています。私はスクラムマスターとして、外部モニターが2つあるデスク、モニターのない会議室、外部モニターが1つある会議室の間を頻繁に移動します。autorandr
使用可能なハードウェアに応じてワークスペースを自動的に設定するようにラップトップを設定しました。私はそれが大好きです!
しかし、私は同様のオーディオソリューションも好きです。デスクに入ると、入力代替デバイスはBluetooth Jabraヘッドフォンであり、出力代替デバイスは「すべてのデバイスに同時出力」疑似デバイスになりたいのですが、会議室では通常次のものを接続します。 USB(JabraまたはLogitech)会議室スピーカーデバイス - 次に、ボリュームコントロールパネルに移動してデフォルトのデバイスを設定する必要があります。
すべてを自動化できれば新しく接続されたデバイスが自動的に選択されます。バックアップI/Oとして本当に良いようです!
警告する:報酬を受け取るには、回答が有効な解決策を説明する必要があります。自動的にハードウェアが接続または切断されたとき。実行されるたびに実行されるようにスクリプトをトリガーすることは許可されますautorandr
(ただし、autorandr
独自のスリープストリーム機能はありません)。
編集する:@telcoMの回答に触発され、現在システムに認識されているソースとシンクのリストを含めることができます(現在接続されていない会議室のソースとシンクのリストを含む)。
$ pactl list | grep -B 2 'ame:' | grep -A 2 'Sink #'
Sink #0
State: SUSPENDED
Name: alsa_output.pci-0000_00_1b.0.analog-stereo
--
Sink #1
State: SUSPENDED
Name: combined
--
Sink #43
State: SUSPENDED
Name: alsa_output.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono
--
Sink #93
State: SUSPENDED
Name: alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1
そして
$ pactl list | grep -B 2 'ame:' | grep -A 2 'Source #'
Source #0
State: SUSPENDED
Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
--
Source #1
State: SUSPENDED
Name: alsa_input.pci-0000_00_1b.0.analog-stereo
--
Source #2
State: SUSPENDED
Name: combined.monitor
--
Source #46
State: SUSPENDED
Name: alsa_output.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono.monitor
--
Source #47
State: SUSPENDED
Name: alsa_input.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono
--
Source #97
State: SUSPENDED
Name: alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1.monitor
答え1
デフォルトでは、Pulseaudioは各再生ソースが接続されている出力デバイスを記憶し、入力デバイスと録音ソフトウェアも同様です。これは、もともとPulseaudioデバイス接続の主なソースです。
代替デバイスは、たとえば、再生ソースに以前に接続されたレコードがない場合、または以前に接続されたデバイスが使用できなくなった場合にのみ使用されます。
少なくともKDEには、オーディオ入力/出力デバイスの各オーディオ入力/出力タイプ(通信対オーディオまたはビデオの再生/録音)の優先順位を個別に設定するために使用できるマルチメディア設定ダイアログボックスがあります。これはPulseaudioの動作を変えるようです。
このブログと言及されたpaswitch
ユーティリティはあなたに役立ちます。
https://www.tablix.org/~avian/blog/archives/2012/06/switching_pulseaudio_output_device/
Gitリポジトリpaswitch
:https://www.tablix.org/~avian/git/paswitch.git
以前はこの目的のためのスクリプトがありましたpaswitch
が、デフォルト/代替出力を切り替えるだけでなく、アクティブソースと以前に記憶されたソースを新しい出力に切り替えるので、より良い方法です。残念ながら、出力側のみを処理します。
特定のマイクを使用して起動されたアクティブクライアントを切り替えるには、次の手順を実行する必要があります。
pacmd set-default-source "$SOURCEID"
if ! pacmd list-source-outputs | head -1 | grep -q "^0 source output"
then
# active input clients, switch them to new mic
for idx in $(pacmd list-source-outputs | awk '/index:/{print $2;}')
do
# sources include monitor sources that cannot be moved
pacmd move-source-output $idx $SOURCEID >/dev/null
done
fi
これにより、最初にデフォルトのマイクが指定されたマイクロに変更され、次にすべてのアクティブ$SOURCEID
なアプリケーションが対応する新しいマイクロに移動されます。
ただし、他のオーディオソースデバイスを使用する前にアプリケーションが実行されていて、そのソースがシステムでまだ利用可能な場合、Pulseaudioは永続機能がオフになっていない限り、デフォルトでは新しいデフォルトソースの代わりに古いソースに接続します。
答え2
ああ!入力名と出力名を取得する正しいコマンドが見つかりました!これは主に以下に由来します。これは他の質問に対する答えですしかし、本当に褒め言うべき点は、telcoM
私に方向を提示してくださったという点だpactl
。
$ pactl list short sources
0 alsa_output.pci-0000_00_1b.0.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz RUNNING
1 alsa_input.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
2 combined.monitor module-combine-sink.c s16le 2ch 44100Hz RUNNING
144 alsa_output.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono.monitor module-alsa-card.c s16le 1ch 16000Hz RUNNING
145 alsa_input.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono module-alsa-card.c s16le 1ch 16000Hz RUNNING
152 alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1.monitor module-alsa-card.c s16le 2ch 44100Hz RUNNING
そして
$ pactl list short sinks
0 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
1 combined module-combine-sink.c s16le 2ch 44100Hz RUNNING
136 alsa_output.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono module-alsa-card.c s16le 1ch 16000Hz RUNNING
143 alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1 module-alsa-card.c s16le 2ch 44100Hz RUNNING
これによりソースを設定できます。
$ pactl set-default-source alsa_input.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono
$ pactl set-default-source alsa_input.pci-0000_00_1b.0.analog-stereo
そして流し台:
$ pactl set-default-sink alsa_output.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono
$ pactl set-default-sink combined
それからこのコマンドを」フックスクリプト”をautorandr
実行するには、ビデオケーブルを接続する前にUSBオーディオデバイスを接続するだけで、すべてがうまく機能します!