Bluetooth is disabled by default in game mode

A recent Bazzite update about 2 weeks reset all the Steam settings and logged our user profiles out. Since then, bluetooth stopped working on boot. To get bluetooth working, I was having to unplug and re-plug in the USB bluetooth adaptor every time I turned the computer on.

I did some troubleshooting today. I booted the computer, then used a wired keyboard to go to desktop mode and view the KDE bluetooth settings. I noticed that my wireless controller connected fine after I switched to desktop mode. I restarted the computer, and in game mode went to the ‘Bluetooth’ settings. I noticed the toggle was off.

If anyone is having a similar problem, where their Steam settings got reset and now their controllers won’t connect unless they unplug and re-plug in their bluetooth adaptor, my solution was simple. Plug in a keyboard, and in game mode, go to Steam’s bluetooth settings and turn bluetooth on. Game mode will now automatically have bluetooth switched on whenever you restart.

If possible though, I would love to see bluetooth switched on by default in game mode, like it is in KDE desktop mode, so no one else runs into this situation.

Thanks

This happened to me again today after a Bazzite stable update. I got logged out of all Steam accounts and bluetooth was switched off.

I had to plug a wired mouse into my HTPC, then log into a Steam profile with the QR code, then go to ‘Settings > Bluetooth’, then turn on the bluetooth toggle.

I added this to the following Github issue: No bluetooth after update · Issue #3112 · ublue-os/bazzite · GitHub

There is another problem here. After turning on the PC, Bluetooth autopairing does not work, even if it is turned on. To connect the gamepad via Bluetooth, you need to go to the Bluetooth menu, it turns on the search, and only then the gamepad is connected. How can I make autopairing always work, like on steamdeck?

We need to pray to ChatGPT God. I found the solution with it:

Auto-connect Bluetooth Gamepad on Bazzite

This guide sets up your system so your Bluetooth gamepad connects automatically when turned on. It uses a udev rule for instant connection and a systemd timer (every 5 seconds) as a fallback.

Step 1: Create the auto-connect script

Create the script folder:

mkdir -p ~/.local/bin

Create the script:

nano ~/.local/bin/bt-autoconnect.sh

Paste the following code (replace 11:22:33:44:55:66 with your gamepad’s MAC address):

#!/usr/bin/env bash
DEVICE=“11:22:33:44:55:66” # replace with your gamepad MAC

Check if already connected

if bluetoothctl info “$DEVICE” | grep -q “Connected: yes”; then
exit 0
fi

logger “bt-autoconnect: trying to connect $DEVICE”
/usr/bin/bluetoothctl connect “$DEVICE”

Make it executable:

chmod +x ~/.local/bin/bt-autoconnect.sh

Step 2: Create the systemd unit

Create the systemd folder:

mkdir -p ~/.config/systemd/user

Create the service unit:

nano ~/.config/systemd/user/bt-autoconnect.service

Paste:

[Unit]
Description=Auto-connect Pro Controller

[Service]
Type=oneshot
ExecStart=%h/.local/bin/bt-autoconnect.sh

Step 3: Create the systemd timer (every 5 seconds)

Create the timer unit:

nano ~/.config/systemd/user/bt-autoconnect.timer

Paste:

[Unit]
Description=Fallback: try to connect gamepad every 5s

[Timer]
OnBootSec=5
OnUnitActiveSec=5s
Unit=bt-autoconnect.service

[Install]
WantedBy=default.target

Enable the timer:

systemctl --user daemon-reload
systemctl --user enable --now bt-autoconnect.timer

Step 4: Create the udev rule for instant connection

Create the udev rule file:

sudo nano /etc/udev/rules.d/99-bt-autoconnect.rules

Paste (replace 11:22:33:44:55:66 with your gamepad MAC):

ACTION==“add”, SUBSYSTEM==“bluetooth”, ATTR{address}==“11:22:33:44:55:66”, TAG+=“systemd”, ENV{SYSTEMD_USER_WANTS}+=“bt-autoconnect.service”

Reload udev rules:

sudo udevadm control --reload-rules
sudo udevadm trigger

:small_blue_diamond: How it works

udev: triggers the service immediately when the gamepad is turned on.

systemd timer: checks every 5 seconds and retries connecting if the first attempt failed.

:white_check_mark: With this setup, your Bluetooth gamepad should connect almost instantly and reliably every time.