Ikona aplikacji BT Audio Idle: słuchawki ze znakiem Bluetooth i księżycem

Twoje słuchawki Bluetooth same się rozłączą, gdy Mac zamilknie

BT Audio Idle siedzi w pasku menu macOS i pilnuje ciszy. Jeśli przez 10 minut nic nie gra, rozłącza słuchawki i głośniki Bluetooth. Nie tracą baterii, kiedy leżą na biurku, i są wolne dla telefonu.

Wersja 1.1.0 · macOS 13 lub nowszy · plik DMG · bezpłatnie

Karta Devices w ustawieniach BT Audio Idle: cztery sparowane urządzenia audio, każde z przełącznikiem monitorowania i opcją własnego czasu bezczynności

Problem

Słuchawki podłączone do Maca, który od dawna nic nie gra

Muzyka ucichła, słuchawki leżą na biurku, a Ty jesteś w kuchni. macOS nie rozłączy ich sam: trzeba wyłączyć Bluetooth albo kliknąć ręcznie w ustawieniach.

Bateria idzie w ciszę

Połączone słuchawki zużywają energię, nawet gdy nic nie odtwarzają. Wieczorem okazuje się, że trzeba je ładować.

Telefon nie może ich przejąć

Dopóki Mac trzyma połączenie, słuchawki często nie połączą się z telefonem ani tabletem bez ręcznego przełączania.

Dźwięk trafia nie tam, gdzie trzeba

Zapomniany głośnik w innym pokoju wciąż jest domyślnym wyjściem. Następny dźwięk zagra właśnie tam.

Funkcje

Co potrafi BT Audio Idle

Wszystko ustawisz w jednym oknie z czterema kartami: General, Devices, Apps i About. Aplikacja ma interfejs po angielsku, dlatego nazwy opcji na zrzutach są po angielsku.

Wykrywanie ciszy i ostrzeżenie przed rozłączeniem

Aplikacja sprawdza w CoreAudio, czy domyślne wyjście dźwięku faktycznie coś odtwarza. Gdy zapada cisza, rusza odliczanie. Przed samym rozłączeniem dostajesz powiadomienie z przyciskiem Cancel.

  • Idle timeout: ile minut ciszy wystarczy do rozłączenia (1–60, domyślnie 10).
  • Pre-disconnect grace: ile sekund przed rozłączeniem pojawia się ostrzeżenie (0–120, domyślnie 30).
  • Snooze on cancel: o ile minut odsunąć rozłączenie po kliknięciu Cancel (1–60, domyślnie 5).
  • Confirm playback after: krótkie dźwięki systemowe, np. alerty, nie zerują licznika (0–15 s, domyślnie 6).
  • Reconnect cooldown: jeśli urządzenie połączy się ponownie tuż po rozłączeniu, nie zostanie od razu rozłączone drugi raz (0–300 s, domyślnie 60).

Osobne ustawienia dla każdego urządzenia

Lista pokazuje wszystkie sparowane urządzenia audio Bluetooth i to, czy są teraz połączone. Każde możesz wyłączyć z monitorowania albo dać mu własny czas bezczynności zamiast globalnego.

  • Przełącznik Monitor decyduje, czy aplikacja w ogóle rusza dane urządzenie.
  • Custom timeout ustawia osobny czas dla konkretnego sprzętu, np. 20 minut dla głośnika w kuchni.
  • Gdy połączonych jest kilka urządzeń, odliczanie używa najkrótszego z ich czasów.

Lista wyjątków dla aplikacji

Podczas rozmowy w Zoomie czy Teamsach bywają długie chwile ciszy, a słuchawki mają zostać połączone. Dodaj takie aplikacje do listy: dopóki któraś z nich działa, odliczanie się nie zaczyna.

  • Aplikację wybierasz z listy uruchomionych programów (Add running app…).
  • Jeśli aplikacja z listy uruchomi się w trakcie odliczania, rozłączenie zostanie przerwane.

Uśpienie, autostart i dziennik zdarzeń

Aplikacja reaguje na uśpienie Maca i może uruchamiać się razem z systemem. Wszystko, co robi, zapisuje w pliku dziennika.

  • Pause timer when system sleeps: podczas uśpienia odliczanie stoi, a po wybudzeniu zaczyna się od nowa (domyślnie włączone).
  • Disconnect immediately on system sleep: rozłącza urządzenia od razu przy usypianiu Maca.
  • Launch at login: autostart przez SMAppService.
  • Dziennik w ~/Library/Logs/BTAudioIdleDisconnect.log, rotowany po 1 MB.

Jak to działa

Cztery kroki i możesz o niej zapomnieć

  1. Zainstaluj

    Pobierz plik DMG i przeciągnij aplikację do folderu Aplikacje. Przy pierwszym uruchomieniu kliknij ją prawym przyciskiem i wybierz Otwórz.

  2. Zezwól na powiadomienia

    Bez nich aplikacja nadal rozłącza urządzenia, ale nie zobaczysz ostrzeżenia z przyciskiem Cancel.

  3. Ustaw czasy i urządzenia

    Otwórz Preferences… z ikony w pasku menu i ustaw czas bezczynności, urządzenia oraz wyjątki.

  4. Słuchaj jak zwykle

    Gdy muzyka gra, nic się nie dzieje. Gdy przestaje, obok ikony pojawia się odliczanie, a po nim ostrzeżenie i rozłączenie.

Co robi aplikacja w danej sytuacji
Coś graLicznik jest wyłączony.
Zapada ciszaRusza odliczanie, a w pasku menu widać pozostały czas, np. 9:42.
Czas minąłPojawia się powiadomienie, a obok ikony odliczanie w sekundach.
Kliknięto CancelRozłączenie przesuwa się o czas ustawiony w Snooze on cancel.
Minął czas ostrzeżeniaMonitorowane urządzenia zostają rozłączone.
Mac zasypia / budzi sięOdliczanie staje (albo urządzenia zostają rozłączone, jeśli tak ustawisz), a po wybudzeniu rusza od nowa.

Menu w pasku menu

Powiadomienie przed rozłączeniem (tekst z aplikacji) Tytuł: „Disconnecting Bluetooth audio”
Treść: „Studio Headphones will be disconnected in 30s. Tap Cancel to keep connected.”
Przycisk: Cancel

Galeria

Kliknij zrzut, żeby go powiększyć. Zrzuty pochodzą z działającej aplikacji, a nazwy urządzeń i adresy są przykładowe. Ich wersja (jasna lub ciemna) zależy od motywu Twojego systemu.

Instalacja

Pobierz gotową aplikację albo zbuduj ją sam

Gotowy plik DMG

  1. Pobierz najnowszą wersję z GitHub Releases.
  2. Otwórz plik DMG i przeciągnij BT Audio Idle.app do folderu Aplikacje.
  3. Przy pierwszym uruchomieniu kliknij aplikację prawym przyciskiem i wybierz Otwórz. Jest podpisana ad-hoc, więc Gatekeeper o to poprosi.
  4. Zezwól na powiadomienia i w razie potrzeby włącz Launch at login.

Wymagania: macOS 13 lub nowszy i sparowane urządzenie audio Bluetooth.

Ze źródeł

Potrzebujesz Xcode 15+ albo Swift 5.9+. Skrypt buduje wersję release, składa pakiet .app i podpisuje go ad-hoc.

git clone https://github.com/jash90/bt-audio-idle-disconnect.git
cd bt-audio-idle-disconnect
./scripts/build-app.sh
mv "build/BT Audio Idle.app" /Applications/
open "/Applications/BT Audio Idle.app"
Stack technologiczny i pliki
  • Swift 5.9 · SwiftPM
  • AppKit (NSStatusItem)
  • SwiftUI
  • CoreAudio
  • IOBluetooth
  • UserNotifications
  • ServiceManagement

Ustawienia: ~/Library/Application Support/BTAudioIdleDisconnect/settings.json. Dziennik: ~/Library/Logs/BTAudioIdleDisconnect.log. Obraz DMG tworzy ./scripts/build-dmg.sh.

Dobrze wiedzieć

  • Nie ma jej w App Store. Rozłączanie korzysta ze starszego API IOBluetooth, którego sandbox App Store nie dopuszcza. Aplikacja jest dystrybuowana bezpośrednio.
  • Tylko domyślne wyjście. Program, który gra na inne urządzenie niż domyślne, może zostać przeoczony.
  • Lista wyjątków sprawdza tylko, czy aplikacja działa. Nie wie, czy ta aplikacja faktycznie odtwarza dźwięk.
  • Automatyczne ponowne łączenie. Niektóre urządzenia same łączą się z powrotem. Wtedy zostaną rozłączone po kolejnym okresie ciszy, najwcześniej po czasie Reconnect cooldown.