Erweiterung der Funktionalität von Magic Mouse: Benötige ich einen Kext?

Ich habe kürzlich eine Magic Mouse gekauft. Es ist fantastisch und voller Potenzial. Leider wird es durch den Software-Support stark behindert. Ich möchte das beheben. Ich habe ziemlich viel recherchiert und dies sind meine Erkenntnisse bezüglich der Ereigniskette:

Die Magic Mouse sendet vollständige Multitouch-Ereignisse an das System.Multitouch-Ereignisse werden im MultitouchSupport.framework (Carbon) verarbeitet.Die Ereignisse werden im Framework interpretiert und als normale Ereignisse an das System gesendetWenn Sie mit einem Finger scrollen, werden tatsächliche Scrollrad-Ereignisse gesendet.Wenn Sie mit zwei Fingern wischen, wird ein Wischereignis gesendet.Es werden keine NSTouch-Ereignisse an das System gesendet. Sie können die NSTouch-API nicht zur Interaktion mit der Maus verwenden.

Nachdem ich all dies entdeckt hatte, zerlegte ich die MultitouchSupport.framework-Datei und fand mit einigem Nachdenken heraus, wie ich einen eigenen Rückruf in die Kette einfügen kann, damit ich die Rohdaten des Berührungsereignisses erhalte. Wenn Sie die Liste der Geräte auflisten, können Sie sie für jedes Gerät (Trackpad und Maus) anhängen. Diese Erkenntnis würde es uns ermöglichen, ein Framework für die Verwendung von Multitouch auf der Maus zu erstellen, jedoch nur in einer einzigen Anwendung. Seht meinen Beitrag hier:Raw Multitouch Tracking.

Ich möchte der Maus über den gesamten Bereich hinweg neue Funktionen hinzufügenSystem, nicht nur eine einzige App.

In einem Versuch, dies zu tun, fand ich heraus, wie man es benutztEreignis-Taps um zu sehen, ob ich mit dem Ereignisabgriff auf der untersten Ebene die Rohdaten abrufen, interpretieren und an deren Stelle meine eigenen Ereignisse senden kann. Dies ist leider nicht der Fall. Der Ereignistipp ist auch auf der HID-Ebene noch ein Schritt weiter oben, wo die Eingabe in MultitouchSupport.framework interpretiert wird.

Sehen Sie hier meinen Event-Tap-Versuch:Event Tap - Versucht Raw Multitouch.
Eine interessante Randnotiz: Wenn ein Multitouch-Ereignis empfangen wird, z. B. ein Wischen, wird die Standard-Groß- / Kleinschreibung getroffen und eine Ereignisnummer von 29 ausgegeben. In der Kopfzeile wird 28 als max.

Nun zu meiner Frage, nachdem Sie alle Informationen haben und gesehen haben, was ich versucht habe: Was wäre der beste Ansatz, um die Funktionalität der Magic Mouse zu erweitern? Ich weiß, dass ich etwas mit einem niedrigen Pegel einfügen muss, um die Eingabe zu erhalten, bevor sie verarbeitet und vordefinierte Ereignisse ausgelöst werden. Also, um es auf einzelne Satzfragen zu reduzieren:

Gibt es eine Möglichkeit, die in MultitouchSupport.framework verwendeten Standardrückrufe zu überschreiben?Muss ich einen Text schreiben und alle eingehenden Daten selbst verarbeiten?Ist es möglich, einen Text zu schreiben, auf dem man sitzt?oben von dem Text, der die Eingabe jetzt verarbeitet, und filtert ihn, nachdem dieser Text die ganze harte Arbeit erledigt hat?

Mein erstes Ziel ist es, ein Klickereignis mit mittlerer Taste auszulösen, wenn sich beim Klicken zwei Finger auf dem Gerät befinden. Offensichtlich gibt es viel, viel mehr, was getan werden könnte, aber dies scheint für den Moment eine gute Sache zu sein, für die man fotografieren kann.

Danke im Voraus!

-Sastira

Antworten auf die Frage(4)

Ihre Antwort auf die Frage