Bluetooth earbud devices changing encoders when playing games at full screen
is it a bug? is it intentional? can i stop it? for some reason it switch to the lowest quality codec (Headset Head Unit 'HSP/HFP, codec mSBC')

25 Replies
proton for whatever reason always switches bluetooth into headset mode
I think I did something to stop it from happening on mine, but I do not remember what I did
i can't even manually change or the earbuds just freak out and disconnect then connect again and use the low quality codec
yeah a lot of the time I had to just turn off my headphones and turn them back on

hm, hopefully this will do the trick
ofc assuming wireplumber is a thing on bazzite
nop
$ wpctl settings --save bluetooth.autoswitch-to-headset-profile falsedoes nothing, it still switches
I went down a rabbit hole and I have no idea what I endedup doing to not have every game causing issues. it was very bad for a time with overwatch, it would switch the audio every time it tries to enable team chat, which was every game for me
god
that sounds awful, like i get its a low quality codec but damn
on TF2C basically makes the sound non-existent
yeah I get that for me it switching to mono ontop of being very bad
oh yeah speaking of, what does bazzite use

seaches gives some fuzzy results
i assume it would be pipewire since its new and updated
it does use pipewire but wireplumber and pulseaudio does work through pipewire compatibility layer
oh
I know I did not fully disable auto switch because teamspeak and discord can still trigger it but games do not anymore

arch wiki does give out some pointers
but these files doesn't exist or atleast im unable to find them
so wireplumber setting changes wouldn't affect it?
hm

kinda annoying

it should afaik
i had your issue, and using arch wiki and a few wireplumber github issues listed below i just disabled microphone on my headset and instead use my webcam's mic if i need to use it
if you want to do this for yourself below is the config file:
to activate it log out/in again, or run:
systemctl --user restart wireplumber.service

wireplumber.conf.d doesnt exist as a directory
so i'd assume i would create one there
disabled microphone on my headset and instead use my webcam's mic if i need to use itmy earbuds dont even have a microphone also i use the internal microphone my laptop has
Solution
use instead
Use either (A2DP Sink, codec SBC) or (A2DP Sink, codec AAC) mode, since that is supported on your earbuds
oh
perfect
(A2DP Sink, codec SBC-XQ) support heavily depends on the manufacturer(both receiver and transmitter), and usually will not work or have heavy artifacts
even if an article from 2019 says that it is mandatory SBC, ever since AAC, LDAC, AptX became mainstream, manufacturers started to focus on those instead.
If you have a problem on bazzite, take a look at the ujust menu first, by using either or only
pipewire is a lower level layer, and isn't really supposed to be interacted with by the user
you can continue to use pulseaudio tools like pactl(which comes with bazzite, along with pwctl), they should work just fine
Bazzite is based
Bazzite is based on Fedora Kinoite/Silverblue which themselves are rolling release, which means that it is usually quite up to date.
Since Fedora is usually quite bold in transitioning to new technologies, you can expect that Bazzite will also have most newer packages, systems, etc.
oh cool, they ended up implementing it after all
yeah half the time some of these directories will not exist
but yeah, what you’re going through is a known wireplumber bug, there are issues on their github/gitlab pages about this