Weiterleiten von Multi-Touch-Ereignissen an Anwendungen

Weiterleiten von Multi-Touch-Ereignissen an Anwendungen

Mein Ziel ist es, Standardbibliotheken zur Gestenerkennung zu verwenden und diese Ereignisse mit Java 8 zu nutzen. Ich weiß, dass es einen Gestenerkennungsstapel für Ubuntu (Grail, Geis) gibt, aber ich habe noch nicht verstanden, wie ich das alles zusammenbringen kann.

Ich verwende eine eGalaxTouch-Touchfolie (PCAP7200-Serie) mit einem EETI eGTouch-Treiber (eGTouchD-Version: 2.5). Mein Linux Mint 17 erkennt dieses Gerät als Maus.

Ich habe die Ereignisse des Geräts ausgelesen /dev/input/eventXund festgestellt, dass es Multi-Touch-Ereignisse ausgibt ( ABS_MT_SLOT, ABS_MT_TRACKING_ID, ABS_MT_POSITION_X, ABS_MT_POSITION_Y).

Gibt es eine Möglichkeit, Gesten mit Standard-Linux-Funktionen zu erkennen und diese Ereignisse an eine Anwendung weiterzuleiten (in meinem Fall eine JavaFX2-Anwendung)? Oder muss ich Gesten innerhalb meiner Anwendung erkennen – was bedeutet, dass ich keine Linux-Bibliotheken verwenden kann?

Gibt es einen speziellen Gerätetyp für Multi-Touch-Geräte – außer der Standardmaus?

Antwort1

In den Standardbibliotheken von Linux ist die Technologie für gesturale Programmierung nicht integriert. Sie können jedoch von XInput-Geräten lesen und ich werde Ihnen zeigen, wie das geht. Zuerst werde ich Ihnen jedoch Links zu einigen Artikeln über die Geschichte der XInput-Programmierung, gesturale Programmierung für X und schließlich die Befehle und die externe Bibliothek bereitstellen, die Ihnen meiner Meinung nach nützlich sein werden.

LWN.Net Xinput Multi-Touch-Verlauf

Dies ist die Geschichte der xorg-multitouch-Erweiterung. Sie berührt die gesturale Programmierung und verweist auf dieuTouch Gestural Programming-Projekt.

Diese beiden informativen Artikel sind gutes Quellenmaterial und sollten Ihnen ein Verständnis für den aktuellen Stand der Technologie vermitteln.

XInput-Handbuch

$> xinput --list

Der oben betitelte Befehl listet Ihre xInput-Geräte auf.

Die von Ihnen benötigte Gestural-Funktionalität kann in Ihrer Anwendung erstellt werden, es gibt jedoch Optionen wie das uTouch Gestural Programming-Projekt, die diese Lücke ebenfalls schließen können.

Zum Lesen der Eingaben vom Gerät kann ich eines von zwei Paketen empfehlen.

XEV-Leseereignisse aus xInput

$> xev --display :0 -id $WINDOW_ID >> to.file
  • [--display] ist Ihre XServer-Anzeigenummer (meine ist :0)
  • [id] ist Ihre Fenster-ID # (diese kann mit einem Befehl wie $> wmctrl -lG ermittelt werden)

Key-Mon Ereignisse aus xInput lesen

Das oben Beschriebene ist ein Python-Skript, das dasselbe tut, aber Eingabeereignisse druckt. Ich glaube, XEV ist die Lösung für Sie, da XEV die Geometrie von Eingabeereignissen aufzeichnet.

Ich hoffe das hilft!

verwandte Informationen