MousePods nutzt die Bewegungsdaten kompatibler AirPods als Mauseingabe unter Linux. Die Python-Anwendung von Matteo Gaudioso benötigt laut Projekt weder einen Apple-Computer noch Root-Rechte. Als Voraussetzungen nennt das Projekt Linux mit BlueZ, gekoppelte AirPods und Schreibzugriff auf /dev/uinput; außerdem wird Python 3.10 oder neuer verlangt (Projektseite, Repository).
So macht MousePods aus Bewegung eine Maussteuerung
MousePods kann den Cursor über Kopfbewegungen steuern oder Bewegungen eines in der Hand gehaltenen Ohrhörers als Eingabe verwenden. Head-Tracking meint hier also, dass die Bewegung des Kopfes beziehungsweise der Ohrhörer in Cursor- oder andere Tracking-Eingaben übersetzt wird. Die Projektseite führt den Mausmodus als hardwaregetestet. Zum Klicken nennt sie unter anderem einen Druck auf den Ohrhörerstiel, eine optionale schnelle Kopfbewegung oder Verweilen.
Für die praktische Einordnung zählt nicht nur, ob ein Modell Bewegungssensoren hat: MousePods’ Status unterscheidet sich je nach AirPods-Modell und Eingabemodus.
Was die AirPods-3-MTU mit den Sensordaten zu tun hat
Bei AirPods 3 beschreibt das Projekt einen spezifischen Bluetooth-Befund. Die Sensorbeschreibungen seien bei einer Linux-Standard-MTU von 672 Byte nicht erschienen; bei einer Empfangs-MTU von 2582 Byte seien sie sichtbar geworden. MTU bezeichnet hier die maximale Größe der über L2CAP empfangenen Dateneinheit. Das Projekt identifiziert 2582 Byte als den von iOS verwendeten Wert und ordnet den Sensorweg Apple RemoteHID über AACP auf dem RTBuddy-Kanal 0x800 zu. AirPods 3 verwenden laut Projekt nicht den SensorDataWX-Startbefehl neuerer Modelle (technische Projektdokumentation).
Die dokumentierte AirPods-3-Konfiguration bestand aus den Modellen A2564/A2565 mit Firmware-Marketingversion 6296592, Ubuntu 24.04, BlueZ 5.72 und Python 3.12. Für diesen Test nennt das Projekt eine maximale Datenrate von etwa 210 Hz. Bei einem Berichtsintervall von 10 Millisekunden maß es etwa 110 Hz und empfiehlt rund 100 Hz als praktische Einstellung. Bei ungefähr 180 Hz beobachtete es während eines 23-Sekunden-Tests mit gleichzeitig genutztem A2DP und einer BLE-Maus Datenlücken. Das sind projektspezifische Messwerte, keine allgemeine Zusage für andere Bluetooth-Konfigurationen.
Welche AirPods und Modi das Projekt aufführt
MousePods führt AirPods 3 und AirPods Pro 2 als auf Hardware verifiziert. AirPods 2, AirPods Pro 1 und AirPods Max sind laut Projektseite ungetestet. Für AirPods 4 nennt das Projekt denselben SensorDataWX-Protokollweg wie bei den Pro-Modellen, führt sie aber nicht als von MousePods hardwareverifiziert auf. AirPods Pro 2 erreichen laut Projekt mit dem standardmäßigen Intervall von 10 Millisekunden etwa 100 Hz (Projektseite).
Auch die Betriebsarten haben unterschiedliche Status: Der Mausmodus ist hardwaregetestet, der Pointer-Modus mit Kalibrierung an den Bildschirmecken wurde nur simuliert, und der Gleitmodus ist experimentell. Beim Pointer-Modus wird auf den Bildschirm gezielt; der Gleitmodus sieht vor, einen Ohrhörer über einen Tisch zu bewegen.
Für die Ausgabe an opentrack beschreibt die Projektseite einen Offline-Test, aber keinen Test in einem Spiel. Davon getrennt nennt das Repository den Test eines Contributors: Er integrierte AirPods Pro 2 direkt über Steam/Proton auf Bazzite und testete die Verbindung mit Assetto Corsa und Euro Truck Simulator 2 (Repository).
Was für den Betrieb nötig ist
Neben Linux mit BlueZ und gekoppelten AirPods braucht MousePods Schreibzugriff auf /dev/uinput, damit die Anwendung ein virtuelles Eingabegerät anlegen kann. Das Projekt sagt, dass dafür keine Root-Rechte erforderlich sind. Ein Browser genügt nicht: AirPods nutzen Bluetooth Classic, während Web Bluetooth BLE unterstützt, wie die Projektseite erläutert. Die Ladehülle kann bei AirPods 3 nicht als Eingabegerät dienen, weil die Sensoren laut Projekt ausgeschaltet sind, solange sich die Ohrhörer darin befinden.