most of my experience with kde has been pretty smooth, but i am having trouble getting the correct pipewire a2dp source and sink modes with some audio devices. specifically, i am trying to use my samsung q60 television as an external speaker.
at one point, i did have this feature working with linux mint xfce and pulseaudio, so i have ruled out hardware issues. with nixos/kde plasma, the devices pair, but the audio from the television plays on my laptop speakers, instead of the other way around.
so far, i have confirmed with bluetoothctl that both devices support both a2dp modes, but when i try to change the profile in the gui for audio settings or on the television itself, i am not offered the option to treat the laptop as a source.
i would love any advice on how to reverse the a2dp order. thanks in advance.
EDIT: workaround sort of found. the problem seems to be at least partly due to bluez5/pipewire inappropriately prioritizing and selecting a sink a2dp profile by default, so i configured wireplumber to disable the a2dp sink profile using the advice from… well, links i can’t seem to post here. okay.
i suspect the long term resolution will be when pipewire fixes the bug (there is an outstanding issue for it) and then when kde implements it.
the relevant part of my nixos config looks like:
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
wireplumber = {
enable = true;
configPackages = [
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/51-mitigate-annoying-profile-switch.conf" ''
wireplumber.settings = {
bluetooth.autoswitch-to-headset-profile = false
}
monitor.bluez.properties = {
# disable sink mode on laptop to try and fix bt tv problem
bluez5.roles = [ a2dp_source ]
# bluez5.roles = [ a2dp_sink a2dp_source ]
}
'')
];
};
};