I have a notebook connected to a port replicator. I want to use the build-in speakers and microfone and not the external ones. If I boot my notebook in my port replicator Ubuntu changes the devices to external.
- Find your internal speaker
pactl list short sinks
0 alsa_output.usb-Generic_USB_Audio_201405280001-00.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_output.pci-0000_00_1f.3.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
-
Set your internal speaker as default
pactl set-default-sink <DEVICE>
e.g.pactl set-default-sink alsa_output.pci-0000_00_1f.3.analog-stereo
-
Add to "Startup Applications" ("Startprogramme" in German)
- Open the application "Startup Applications" (Should be preinstalled on Ubuntu)
- Click on "Add"
- Give your startup item a name
- Copy your command from above into the command field.
- Click on "Save".
- Find your internal microfone
pactl list short sources
0 alsa_output.usb-Generic_USB_Audio_201405280001-00.analog-stereo.monitormodule-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_input.usb-Generic_USB_Audio_201405280001-00.iec958-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
2 alsa_output.pci-0000_00_1f.3.analog-stereo.monitor module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
3 alsa_input.pci-0000_00_1f.3.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
-
Set your internal speaker as default
pactl set-default-source <DEVICE>
e.g.pactl set-default-source alsa_input.pci-0000_00_1f.3.analog-stereo
-
Repeat step 3.
How would one handle if there are multiple defaults?
For example when my bt headphones is disconnected i'd like to default to the speakers but when i connect my headphones it should default to the headphones.
Or is this entirely beyond the scope of what is attempted here?
edit: answered my own question with some searching, this is a combination of the above and an udev rule.
see https://askubuntu.com/questions/686144/run-a-shell-command-after-a-bluetooth-input-device-is-detected for the info i used
edit2: you need to add the
--server=
flag to thepactl
command for udev to set your sink or source, you can get the server withpactl info
use the server string, you need this because root will run your script which has no known pulseaudio session.Now my bt headset and default speakers switch seamlessly (both ways) ^^