Skip to content

Instantly share code, notes, and snippets.

@yejun
Last active November 3, 2025 17:43
Show Gist options
  • Select an option

  • Save yejun/2c1a070a839b3a7b146ede8a998b5495 to your computer and use it in GitHub Desktop.

Select an option

Save yejun/2c1a070a839b3a7b146ede8a998b5495 to your computer and use it in GitHub Desktop.
Use pulseaudio as bluetooth speaker on archlinux

Install packages

  • bluez
  • bluez-utils
  • pulseaudio-bluetooth

Enable bluetooth

Edit /etc/bluetooth/main.conf, uncomment following lines

[Policy]
AutoEnable=true

Add /etc/bluetooth/audio.conf

[General]
Enable=Source,Sink,Media

Enable and start bluetooth service

sudo systemctl enable bluetooth
sudo systemctl start bluetooth

Follow this guide to connect bluetooth devices. Some devices may need explicitly trust in bluetoothctl.

Enable pulseaudio system wide

Create pulse user, it is very important add pulse to lp group which grants access to bluetooth control dbus

sudo groupadd --system pulse
sudo useradd --system -g pulse -G audio,lp --home-dir /var/run/pulse pulse
sudo groupadd --system pulse-access

Add yourself to lp and pulse-access if necessay.

Add file /etc/systemd/system/pulseaudio.service

[Unit]
Description=PulseAudio Daemon

[Install]
WantedBy=multi-user.target

[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/bin/pulseaudio --system --realtime --disallow-exit --log-target=journal

Edit /etc/pulse/daemon.conf, uncomment

system-instance = yes

Add these lines to /etc/pulse/system.pa

load-module module-bluetooth-discover
load-module module-bluetooth-policy

Add file /etc/pulse/client.conf

default-server = /var/run/pulse/native
autospawn = no

Enable and start pulseaudio

sudo systemctl enable pulseaudio
sudo systemctl start pulseaudio

Config alsa if necessay, here is my /etc/asound.conf

pcm.!default {
    type plug
    slave {
        pcm "hw:0,0"
    }
}

ctl.!default {
    type hw
    card 0
}

Load pulse module using pacmd

sudo PULSE_RUNTIME_PATH=/var/run/pulse -u pulse pacmd
@whyshouldibother
Copy link

how do i turn it off and revert to the normal bt behaviour

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment