Bluetooth unter Windows zu koppeln ist das eine. Ein bereits gekoppeltes Gerät später zu verbinden, ist das andere - und genau dort wird es umständlich: Einstellungen öffnen, durch die Geräteliste scrollen, den richtigen Eintrag finden, anklicken. Für etwas, das ich mehrmals am Tag brauche, ist das zu viel Weg.
StarTooth ist ein kleines Infobereichs-Werkzeug, das diesen Weg abschafft. Ein Klick auf das Symbol im Infobereich öffnet die Liste aller gekoppelten Geräte; ein Klick auf ein Gerät verbindet oder trennt es.
Favoriten zuerst
Geräte lassen sich mit einem Sternchen markieren. Sobald mindestens eines markiert ist, rutschen die Favoriten nach oben, und der Rest landet gruppiert darunter unter “Andere Geräte”. Ohne Sternchen bleibt die Liste flach, so wie Windows sie kennt.
Jeder Eintrag trägt einen Zustand:
●verbunden, zusätzlich fett○nicht verbunden◌ein Verbindungsversuch läuft★Favorit
Ein Verbindungsversuch, sein Ergebnis und jeder Fehler kommen zusätzlich als Windows-Benachrichtigung. Das ist nötig, weil sich das Menü beim Aktivieren eines Eintrags schließt und den Fortschritt deshalb nicht selbst anzeigen kann.
Barrierefreiheit von Anfang an
Das Menü kommt ohne Mausgesten und ohne Zusatztasten aus. Die Sternchen werden
nicht im Menü selbst vergeben, sondern in einem eigenen Dialog auf Basis einer
Standard-CheckedListBox - dort schaltet die Leertaste um, und der Screenreader
sagt den Zustand von allein an.
Die Symbole ● ○ ◌ ★ und der fette Text sind reine Optik. Screenreader sprechen
solche Zeichen unterschiedlich aus, je nach eingestellter Symbol-Ausführlichkeit,
also trägt keines von ihnen den Zustand allein: Jeder Eintrag buchstabiert ihn
zusätzlich im AccessibleName aus (“Shokz OpenFit, Favorit, verbunden”) und
beschreibt im AccessibleDescription, was das Aktivieren bewirkt.
Ein laufender Verbindungsversuch bleibt bewusst aktivierbar, statt auf
Enabled = false gesetzt zu werden: ToolStrip überspringt deaktivierte
Einträge bei der Tastaturnavigation, und der laufende Versuch wäre dann genau
der Zustand, den ein Tastatur- oder Screenreader-Nutzer nie erreichen könnte.
Ein zweiter Start wird stattdessen vom Aufrufer abgelehnt. Die Überschrift
“Andere Geräte” ist ein deaktivierter Eintrag und damit ebenfalls nicht
erreichbar - unschädlich, weil sie nichts trägt, was nicht schon im
AccessibleName jedes Eintrags steht.
Alle Menüeinträge und Dialogelemente haben Zugriffstasten.
Einstellungen
Sprache, Farbmodus und Autostart liegen unter “Einstellungen…”. Sprache und
Farbmodus stehen in %APPDATA%\StarTooth\settings.json und wirken sofort; das
Menü wird bei jedem Öffnen neu aufgebaut.
Der Autostart liegt bewusst nicht in dieser Datei, sondern allein im Registry-Run-Schlüssel. So gibt es genau eine Quelle der Wahrheit: Ein von Hand oder von einem anderen Werkzeug entfernter Eintrag erscheint als entfernt und wird nicht aus einer veralteten Kopie wiederhergestellt. Verweigert Windows die Änderung, bleibt der Dialog offen und sagt es, statt eine Änderung zu behaupten, die nicht passiert ist.
Sprachen
StarTooth folgt der Windows-Anzeigesprache. Englisch und Deutsch liegen als
Satelliten-Assembly bei; eine weitere Sprache ist genau eine zusätzliche
Resources/Strings.<culture>.resx. Die Übersetzungen verwenden die Begriffe der
jeweiligen Windows-Oberfläche, keine wörtliche Übertragung: Im Deutschen heißt
es deshalb “gekoppelte Geräte” statt “gepairte” und “Nicht verbunden” statt
“getrennt” - passend zu den Windows-Bluetooth-Einstellungen.
Zum Prüfen lässt sich die Sprache unabhängig von Windows und von den gespeicherten Einstellungen erzwingen:
StarTooth.exe --lang de
StarTooth.exe --lang en-US
Download
Zwei Formen, beide in sich geschlossen - keine .NET-Laufzeit nötig:
- Installer (
StarTooth-Setup-<version>.exe) - Startmenü-Eintrag, optionales Desktop-Symbol, saubere Deinstallation über Programme und Features. - Portable (
StarTooth.exe) - eine einzelne Datei, einfach starten. Geschrieben wird nichts außerhalb von%APPDATA%\StarTooth(Einstellungen und Favoriten) und, falls der Autostart aktiv ist, im Registry-Run-Schlüssel.
Vorausgesetzt wird 64-Bit-Windows 10 ab Build 19041. Beide Dateien sind Authenticode-signiert; das Zertifikat ist ein persönliches Entwicklungszertifikat, deshalb kann SmartScreen auf Rechnern, die es nicht kennen, weiter warnen - dann “Weitere Informationen → Trotzdem ausführen”.
Seit kurzem liegt StarTooth auch im Windows-Paketmanager. Die Installation ist damit ein Befehl:
winget install Slohmaier.StarTooth
Open Source
StarTooth steht unter der MIT-Lizenz, ist in C# geschrieben und liegt auf GitHub: slohmaier/StarTooth. Fehler und Wünsche gehören in die Issues des Repos.