La configuración del nivel de salida de audio falla dentro de tmux

La configuración del nivel de salida de audio falla dentro de tmux

Estoy siguiendoesta preguntapara configurar mis niveles de volumen desde la línea de comando. Necesito poder configurar el volumen desde una sesión de tmux (en realidad, desde un proceso de nodo que se ejecuta en tmux).

Cuando ejecuto amixer -D pulse sset Master 50%directamente mi sesión ssh, funciona bien.

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

Si abro tmux y luego ejecuto el mismo comando, falla:

$ 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

Dentro del nodo, solo estoy usando la child_process.spawnfunción que da el mismo resultado que ejecutar desde tmux, así que supongo que están relacionadas.

¿Lo que da?

Respuesta1

Por esta curiosidad, esto se debió a que mi sesión de tmux se inició desde un archivo de servicio de todo el sistema y no tenía las variables de entorno configuradas para comunicarse con el servicio pulseaudio a nivel de usuario.

Se solucionó simplemente anteponiendo la siguiente cadena a mi comando amixer:

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

al igual que:

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

El /run/user/1000puede ser diferente, puedes determinarlo ejecutando

$ echo $XDG_RUNTIME_DIR

En una sesión, inicie sesión como usuario con la sesión de pulseaudio que le gustaría usar.

información relacionada