tmux 内でオーディオ出力レベルの設定が失敗する

tmux 内でオーディオ出力レベルの設定が失敗する

私はフォローしていますこの質問コマンドラインから音量レベルを設定します。tmux セッション内 (実際には tmux で実行されているノード プロセス) から音量を設定できるようにする必要があります。

amixer -D pulse sset Master 50%SSH セッションで直接実行すると、問題なく動作します。

$ amixer -D pulse sset Master 50%
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 26214 [50%] [on]
  Front Right: Playback 26214 [50%] [on]

tmux を開いて同じコマンドを実行すると、失敗します。

$ tmux
...
$ amixer -D pulse sset Master 50%
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

amixer: Mixer attach pulse error: Connection refused

child_process.spawnノード内では、 tmux から実行した場合と同じ結果を返す関数を使用しているだけなので、それらは関連していると思います。

何が起こったのですか?

答え1

興味深いことに、これは私の tmux セッションがシステム全体のサービス ファイルから開始され、ユーザー レベルの pulseaudio サービスと通信するための環境変数が設定されていなかったために発生しました。

次の文字列を amixer コマンドの先頭に追加するだけで修正されました。

PULSE_SERVER=unix:/run/user/1000/pulse/native

そのようです:

$ PULSE_SERVER=unix:/run/user/1000/pulse/native amixer -D pulse sset Master 50%

異なる可能/run/user/1000性がありますが、実行中であるかどうかを判断できます

$ echo $XDG_RUNTIME_DIR

使用したい pulseaudio セッションを持つユーザーとしてログインしたセッション。

関連情報