Scape Battery
Das Fractal Design Scape ist ein tolles Wireless-Headset mit einem kuriosen Problem: Es gibt keine Desktop-Anzeige für den Akkustand. Der einzige offizielle Weg ist Fractals „Adjust"-Web-App im Browser – für einen schnellen Blick auf die Batterie etwas viel Aufwand.
Also habe ich das Protokoll des 2,4-GHz-USB-Dongles genommen und ein Stream-Deck-Plugin gebaut, das den Akkustand dauerhaft auf einer Taste anzeigt – ganz ohne Hersteller-Software.
Direkt am USB-Dongle
Das Plugin spricht per Raw-USB-HID dasselbe reverse-engineerte Protokoll wie Fractals eigene Web-App: alle 1,5 Sekunden ein Status-Poll plus der Keepalive-Heartbeat, den auch „Adjust" sendet, und aus dem 64-Byte-Report werden Akkustand, Verbindung und Mic-Mute geparst.
Dabei steckt die meiste Arbeit in den Randfällen:
- Schlaf-Erkennung – ein Response-Timeout unterscheidet „Headset aus / außer Reichweite" von „verbunden" und zeigt dann ein eigenes Sleep-Icon.
- Unplug-sicher – wird der Dongle gezogen, erkennt das Plugin das am HID-Fehler und re-enumeriert das Gerät automatisch, ohne dass das Stream Deck neu gestartet werden muss.
- Daemon-Fallback – weil HID-Verbindungen auf macOS exklusiv sind, bevorzugt das Plugin meinen lokalen
scaped-Daemon als Quelle (WebSocket auf localhost) und fällt transparent auf direktes HID-Polling zurück, wenn er nicht läuft. - Icons zur Laufzeit – 13 Batterie-Stufen werden mit Jimp live komponiert, mit frei wählbarer Hintergrundfarbe und eigenem Label pro Taste.
Das Plugin ist Teil eines kleinen „Scape-Ökosystems", das ich mir gebaut habe: ein launchd-Daemon, der die eine HID-Verbindung besitzt und beim Andocken automatisch den Audio-Output umschaltet, plus eine Swift-Menubar-App für den Mac.

Sprachen
- TypeScript95.0%
- HTML5.0%