PulseAudio hints and tricks

PulseAudio is nowadays the default sound system in many Linux distributions. It lets you do a number of useful things.

PulseAudio comes with a handy command line utility pacmd to do a number of things.

pacmd commands

  • pacmd exit
  • pacmd help
  • pacmd list-(modules|sinks|sources|clients|cards|samples)
  • pacmd list-(sink-inputs|source-outputs)
  • pacmd stat
  • pacmd info
  • pacmd load-module NAME [ARGS ...]
  • pacmd unload-module NAME|#N
  • pacmd describe-module NAME
  • pacmd set-(sink|source)-volume NAME|#N VOLUME
  • pacmd set-(sink-input|source-output)-volume #N VOLUME
  • pacmd set-(sink|source)-mute NAME|#N 1|0
  • pacmd set-(sink-input|source-output)-mute #N 1|0
  • pacmd update-(sink|source)-proplist NAME|#N KEY=VALUE
  • pacmd update-(sink-input|source-output)-proplist #N KEY=VALUE
  • pacmd set-default-(sink|source) NAME|#N
  • pacmd kill-(client|sink-input|source-output) #N
  • pacmd play-sample NAME SINK|#N
  • pacmd remove-sample NAME
  • pacmd load-sample NAME FILENAME
  • pacmd load-sample-lazy NAME FILENAME
  • pacmd load-sample-dir-lazy PATHNAME
  • pacmd play-file FILENAME SINK|#N
  • pacmd dump
  • pacmd move-(sink-input|source-output) #N SINK|SOURCE
  • pacmd suspend-(sink|source) NAME|#N 1|0
  • pacmd suspend 1|0
  • pacmd set-card-profile CARD PROFILE
  • pacmd set-(sink|source)-port NAME|#N PORT
  • pacmd set-port-latency-offset CARD-NAME|CARD-#N PORT OFFSET
  • pacmd set-log-target TARGET
  • pacmd set-log-level NUMERIC-LEVEL
  • pacmd set-log-meta 1|0
  • pacmd set-log-time 1|0
  • pacmd set-log-backtrace FRAMES

Changing audio output from the command line

For this I use the pacmd utility and manipulate the sink inputs. For already running streams, the move-sink-input needs to be used.

I have a PC with a weird configuration and requires me to switch profiles instead.

Get the current active profile:

pacmd list-cards | grep 'active profile'

Set the active profile:

pacmd set-card-profile #card #profile#

Example commands:

pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo
pacmd set-card-profile 0 output:hdmi-stereo+input:analog-stereo

All that logic is in a script here or download from this link.

MATE control crashing status icon

For some reason the sound control icon in the notification bar gets lost for me. To make it re-appear use this command: