I found bluez-git has upgraded to the version that this issue no longer exists (5.50.r295.g9e6da22ed-1 > 5.50-264-g750a26cd9)
Now we can remove this and install bluez-git:
yay -R fix-bt-a2dp
rm /etc/.fix-bt-a2dp.device-profiles /etc/.fix-bt-a2dp.user
yay -S bluez-git
after installing bluez-git, please check out my comments below...there is a problem I have to fixed manually.
Original README.md below
On my ArchLinux KDE plasma setup, BT headphone will use A2DP only when connected by pairing; after disconnect and reconnect, only HSP/HFP is available
According to EHfive/pulseaudio-modules-bt#14 (comment), this should soon become unnecessary
this workaround deploys a udev-rules
to detect changes of BT dev and systemctl start fix-bt-a2dp
to call fix-bt-a2dp.rb
in background with correct user
basically a rewrite from https://gist.github.com/EHfive/c4f1218a75f95b076f0387403246de78, mainly because I want to avoid slowing down connecting of other BT devs
install this AUR first:
yay -S fix-bt-a2dp
run this command with root to set GUI session owner:
/usr/bin/fix-bt-a2dp set-user [user]
recently pulseaudio-modules-bt has added codec name after a2dp_sink
profile, and pacmd list-cards
tells that my MDR-1ABT only supports AptX...so I finally came up with a solution by telling fix-bt-a2dp
what profile should be used for a device manually...(so fix-bt-a2dp
will set card profile to what you assigned when connected)
bluetoothctl devices
# => Device 10:4F:A8:CE:DB:D2 MDR-1ABT
fix-bt-a2dp set-device-profile MDR-1ABT a2dp_sink_ldac
# currently known profiles are
# a2dp_sink_sbc a2dp_sink_aac a2dp_sink_aptx a2dp_sink_aptx_hd a2dp_sink_ldac