Das Einstellen des Audioausgabepegels schlägt in tmux fehl

Das Einstellen des Audioausgabepegels schlägt in tmux fehl

Ich folgediese Frageum meine Lautstärkepegel über die Befehlszeile einzustellen. Ich muss die Lautstärke innerhalb einer tmux-Sitzung einstellen können (eigentlich von einem in tmux ausgeführten Knotenprozess aus).

Wenn ich es amixer -D pulse sset Master 50%direkt in meiner SSH-Sitzung ausführe, funktioniert es einwandfrei.

$ 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]

Wenn ich tmux öffne und dann denselben Befehl ausführe, schlägt es fehl:

$ 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

Innerhalb des Knotens verwende ich einfach die child_process.spawnFunktion, die dasselbe Ergebnis liefert wie die Ausführung von tmux. Daher gehe ich davon aus, dass sie zusammenhängen.

Was gibt?

Antwort1

Für Neugierige: Das lag daran, dass meine Tmux-Sitzung von einer systemweiten Servicedatei aus gestartet wurde und die Umgebungsvariablen für die Kommunikation mit dem Pulseaudio-Dienst auf Benutzerebene nicht eingerichtet waren.

Das Problem wurde behoben, indem ich meinem Amixer-Befehl einfach die folgende Zeichenfolge voranstelle:

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

etwa so:

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

Das /run/user/1000kann unterschiedlich sein, Sie können es feststellen, indem Sie

$ echo $XDG_RUNTIME_DIR

In einer Sitzung als Benutzer mit der Pulseaudio-Sitzung angemeldet, die Sie verwenden möchten.

verwandte Informationen