BTSpeakerManager: Keep Your Bluetooth
Speakers Alive and Connected

June 26, 2026  ·  VARØ Industries
← Back to Blog

Bluetooth speakers are great — until they go to sleep. You step away for a few minutes, your monitor enters standby, or there's a gap in audio playback, and suddenly your speaker has disconnected. When you come back, sound is blasting out of your monitor's tinny built-in speakers instead of your desk soundbar.

Windows doesn't help. There's no "keep this device alive" setting. There's no "always reconnect" toggle. There's no "fall back to this other device when my speaker disconnects." You're left manually switching audio devices multiple times a day.

BTSpeakerManager is a system tray app that fixes all of this. It keeps your Bluetooth speaker connected, sets it as the default audio device when it's available, plays a silent keep-alive tone so the speaker never goes to sleep, and automatically falls back to your wired output when the speaker disconnects.

Just want the download? The BTSpeakerManager tool page has the features, install steps, and FAQ in one place.

The Problem

Bluetooth audio devices have aggressive power-saving behavior. Most speakers will enter standby mode after a period of silence — sometimes as short as 30 seconds. When that happens:

If you work at a desk with a Bluetooth soundbar, this happens multiple times a day. It's maddening.

What BTSpeakerManager Does

Silent Keep-Alive
Plays a continuous, inaudible tone through the speaker so it never enters standby mode. Uses SND_LOOP for gapless playback.
Auto Default Device
Detects when your BT speaker connects and automatically sets it as the default audio device. No manual switching.
Fallback Audio
When the speaker disconnects, automatically switches to your wired output (e.g. Realtek) so you're never stuck on monitor speakers.
System Tray
Runs quietly in the tray with color-coded icons: blue = connected, gray = disconnected, orange = paused.
Speaker Selection
Scans your audio endpoints and lets you pick which Bluetooth speaker to manage. Auto-detects the BT instance ID.
No Audio Blips
Uses state-transition polling — only changes the default device on connect/disconnect events, not every poll cycle.

How It Works

BTSpeakerManager polls Windows audio endpoints at a configurable interval (30 seconds to 10 minutes). It tracks the connection state of your selected Bluetooth speaker and only takes action on state changes:

The keep-alive is a WAV file containing a single sample of silence, played on continuous loop via winsound.SND_LOOP. The speaker sees an active audio stream and stays awake.

Configuration

Everything is stored in config.json next to the executable:

Get BTSpeakerManager

BTSpeakerManager is free and open source. Download the standalone EXE (no Python install needed) or run from source.

GitHub: VAROIndustries/BTSpeakerManager

Run from Source

pip install pystray Pillow pycaw comtypes
python bt_tray.py

Build the EXE

pip install pyinstaller
build.bat

The resulting BTSpeakerManager.exe is a single ~27MB file you can drop anywhere and run.


Check out more free tools and apps at varo.industries/apps.

Frequently Asked Questions

Why doesn’t Windows switch back to my Bluetooth speaker when it reconnects?
Windows moves the default audio output to the next device in line the moment a Bluetooth speaker drops — usually your monitor — but it has no logic to move it back when the speaker returns. BTSpeakerManager watches your audio endpoints and sets the speaker as default again as soon as it reappears.
What is the fallback audio device?
It is the wired output you nominate, such as a Realtek onboard device, that BTSpeakerManager switches to the moment your Bluetooth speaker disconnects. Without it you get dumped onto whatever Windows picks, which is usually your monitor’s built-in speakers.
How often does BTSpeakerManager check on the speaker?
On a polling interval you choose: 30 seconds, 1, 2, 5 or 10 minutes. It uses state-transition polling, so it only acts when the connection state actually changes — a speaker that stays connected is left alone, which is what prevents audio blips every cycle.
Can I keep the automatic device switching but turn the keep-alive tone off?
Yes. The silent keep-alive and the polling are separate toggles in the tray menu and in config.json, so you can run the auto-default and fallback behaviour on its own, or pause monitoring entirely without closing the app.
Will the silent keep-alive tone interfere with music or calls?
No. The keep-alive is a WAV file containing a single sample of silence, played on a continuous loop through winsound’s SND_LOOP. The speaker sees an active audio stream and stays awake, while everything else plays over the top of it normally.
Can BTSpeakerManager start automatically with Windows?
Yes — there is an auto-start option that adds it to the Windows startup registry. Combined with a saved speaker selection, that means your Bluetooth speaker is the default output from the moment you log in.

Sources & References

  1. BTSpeakerManager
  2. BluFang: Rename Bluetooth Devices and See What They're Actually Doing — VARØ Industries Blog
  3. ClaudeTray: A Battery Meter for Your Claude Code Rate Limits — VARØ Industries Blog
  4. KillSwitch: Kill Every Messaging, Video, VPN, and Social App in One Click — VARØ Industries Blog
  5. PlainText for Claude: Stop Copying Broken URLs from AI Output — VARØ Industries Blog
  6. EnvForge: A Better Way to Manage Windows Environment Variables — VARØ Industries Blog