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.spawn
funció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/1000
puede 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.