16

I'm trying to set up pulseaudio's card profiles, and I've gotten profile switching to work using pactl set-card-profile, but so far when the machine reboots, the audio profile reverts back to the default of output:analog-stereo instead of remaining on HDMI. How can I set the profile in a way that persists across reboots?

Daenyth
  • 768

1 Answers1

10

To make default settings for the pulseaudio daemon we can edit /etc/pulse/default.pa (as root) to give a default source or sink in the last section by uncommenting the corresponding lines and give in the name of our output sink and input source:

### Make some devices default
set-default-sink <name_of_sink>
set-default-source <name_of_source>

In case your sound card needs a specific profile we can also add the follwing line:

set-card-profile <cardindex> <profilename>

Please make a backup of this file before editing to be able to restore the default setting.

In case you are unsure what name your sink has you can issue the following command in a terminal to list all sinks presently active:

pacmd list-sinks

To test if the sink is correct we can issue

pacmd set-default-sink <nameofsink>

in a terminal before we change the default.pa. Open Audio Settings to see the effect (but this will not actually change the sink with default settings - see this answer!)

Takkat
  • 142,284
  • I'm not using sink setting (as far as I know). I'm changing profiles by using pactl set-card-profile. Is this still done the same way? How do I find out what sinks get put in the config file? – Daenyth Oct 20 '11 at 17:09
  • Usually there will be an audio sink for the HDMI port listed on pacmd list-sinks (e.g. <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1> this may be different on your hardware!) that you can use for your default.pa. – Takkat Oct 20 '11 at 17:52
  • Another note: you should test your command using pacmd set-default-sink <nameofsink> in a terminal to see if it does what you want. – Takkat Oct 20 '11 at 18:02
  • In all cases that I've seen so far, I only ever have one sink in the list-sinks output. What details the sink states change based on what card profile I have enabled. If I try to use set-default-sink, I get "Sink does not exist" – Daenyth Oct 20 '11 at 18:07
  • 2
    In this case you can add your set-card-profile <card-index> <profilename> to the default.pa – Takkat Oct 20 '11 at 18:16
  • @Takkat: IDK if this knowledge is useful, but you can test with pactl instead of pacmd if so desired. The command-line arguments are the same. – TSJNachos117 May 15 '17 at 18:02
  • The pacmd info output speaks of sink input(s) and source output(s) but the names of the sinks listed by pacmd list-sinks all include the string output - so much for consistency in terminology. – FKEinternet Jun 13 '19 at 18:01
  • Instead of hacking /etc/pulse/default.pa directly, you can drop an extra script under /etc/pulse/default.pa.d. – Apteryx Feb 01 '22 at 01:30