Aus Linux-Magazin 11/2010

Wie sich Multitouch in Linux integriert

© dommy.de, Photocase.com

Wer Multitouch zu Linux bringen möchte, muss fest zupacken: Geräte, Kernel, X-Server, Desktop-Framework und Anwendungen sind alle gleichermaßen gefordert, wenn es ums Berühren geht. Die aufeinandergestapelten Ebenen zeigen, wo die Eingabetechnik noch wackelt und wo noch Entwicklungsbedarf besteht.

Eines vorweg: Multitouch funktioniert unter Linux. Dennoch benutzt eine überwältigende Mehrzahl aller Anwender nach wie vor Maus und Tastatur zur Eingabe. Die Schwierigkeit liegt in der Vielzahl an Subsystemen, Schichten und Protokollen, die an diesem neuartigen Eingabeparadigma beteiligt sind.

Entwickelt ein Hersteller eine neue Festplattentechnologie wie etwa Solid State Disks, sorgt er im Allgemeinen dafür, dass sich für eine funktionierende Installation so wenig wie möglich ändert: Datenbanken, Datei- oder Bussysteme muss niemand dazu verändern, sondern nur die Art, wie das Betriebssystem die Speicherung umsetzt.

Solch ein Austausch ist auch in beliebigen anderen Ebenen denkbar: So lässt sich vielleicht ein relationales Datenbanksystem (RDBMS) durch eine objektrelationale Datenbank ersetzen, wenn das Gegenstück in der Anwendung ohnehin einen Objektmapper besitzt, der mit beidem umgehen kann.

Tangenten

Das Konzept der Multitouch-Bedienung, dem einige Auguren große Bedeutung bei der Mensch-Maschine-Schnittstelle beimessen, verhält sich hier anders. Das Problem fängt damit an, dass nicht klar definiert ist, was damit eigentlich gemeint ist: Zwar deutet der Name trivialerweise an, dass es um eine Eingabesteuerung geht, die sich mit einem oder mehreren Fingern bedienen lässt. Wie diese Bedienung jedoch vonstattengehen soll, lässt der Begriff offen.

Nahe liegt, den bisherigen Erfolgsfall für Multitouch, nämlich das Bedienkonzept des I-Universums von Apple, als Grundlage zu definieren. In diesem Fall bedeutet Multitouch nämlich das Vergrößern und Verkleinern von rechteckigen Flächen, das so genannte Pinch and Zoom, sowie das Drehen von Objekten, wenn ein Finger konstant den Bildschirm berührt und der andere eine kreisförmige Bewegung ausführt (siehe Abbildung 1). Das und eine kleine Menge weiterer Gesten haben I-Phone und I-Pad an Neuem in diesem Feld beigetragen.

Abbildung 1: Manche Multitouch-Gesten erschließen sich den meisten Anwendern intuitiv, etwa links das Pinch and Zoom zum Vergrößern und rechts die Drehbewegung zum Rotieren von Ob-jekten [10]. Linux-Entwickler diskutieren aber noch, welche Ebene die Gesten auswerten soll.

Abbildung 1: Manche Multitouch-Gesten erschließen sich den meisten Anwendern intuitiv, etwa links das Pinch and Zoom zum Vergrößern und rechts die Drehbewegung zum Rotieren von Ob-jekten [10]. Linux-Entwickler diskutieren aber noch, welche Ebene die Gesten auswerten soll.

Patentfragen

Den Begriff “Multi-Touch” hatte sich Apple 2007 markenrechtlich schützen lassen, Anfang 2009 hat das Unternehmen mit US-Patent 7 479 949 in den USA auch eine Methode patentieren lassen, um “mit einem Touchscreen und einer Heuristik einen oder mehrere Fingerberührungen zu erkennen und zu verarbeiten”. In Europa ist nach gegenwärtiger Rechtsprechung solch ein Verfahren nicht patentierbar. In den USA hat Apple jedoch den Konkurrenten HTC auf Patentverletzungen verklagt, der nun seinerseits zurückklagt [11].

Branchenkenner sehen in dem Zwist einen generellen Kampf um das Prinzip Multitouch, der zunächst vorrangig auf die populären Smartphones abzielt, aber auch auf andere Geräteklassen übergreifen könnte. Der Patentkritiker Florian Müller schätzt die Lage für Entwickler als kritisch ein: “Nach allem, was ich in Erfahrung bringen konnte, ist Apple zu keiner Lizenzvereinbarung bereit, sondern will knallhart HTC im Sinne einer Verdrängungsstrategie daran hindern, Multitouch anzubieten.” Er weist darauf hin, dass das Patentrecht niemanden zur Lizenzvergabe verpflichtet.

Zurzeit versucht HTC die betroffenen Multitouch-Patente für ungültig erklären zu lassen, da die Technologie schon seit einem früheren Zeitpunkt bekannt sei (so genannte Prior Art). Zudem hat der Smartphone-Hersteller eine Beschwerde vor die US-Handelskomission gebracht. Insgesamt ist die juristische Situation für Anwender und Entwickler kaum zu durchblicken.

Für Anwender betroffener Geräte und Programme haben die Patentstreitigkeiten zwar keine unmittelbaren Auswirkungen, da sie diese weiter benutzen dürfen. Im äußersten Fall könnten durchgesetzte Patente aber künftige Updates oder Ersatzteile einschränken.

Unternehmen verzögern vorhandene Treiber

Eine weitere Gefahr besteht darin, dass Unternehmen wegen der großen finanziellen und rechtlichen Unwägbarkeiten die Weiterentwicklung von Produkten verzögern oder deren Veröffentlichung verhindern. Aus gut unterrichteter Quelle verlautete, dass einer der drei großen Linux-Distributoren einem Entwickler die Aufnahme eines bereits geschriebenen Multitouch-Treibers versagte, da seine Rechtsabteilung die weitere Entwicklung bei einigen Patenten noch abwarten wolle. Insofern sorgen Softwarepatente indirekt auch für eine Verlangsamung der Entwicklung von Open-Source-Projekten.

Entwickler zwischen den Fronten

Florian Müller beschreibt die über Bande gespielte Situation so: “Patentdurchsetzungen gegen Open Source richten sich normalerweise nicht gegen die Entwickler selbst, sondern eher gegen Anbieter, die Open-Source-Software in ihren Produkten oder bei der Erbringung ihrer Dienstleistungen einsetzen.” Im Falle von HTC richtet sich der Zorn Apples also indirekt gegen Android, das der maßgebliche Entwickler als Open-Source-Projekt führt.

Android spielt in Googles Strategie aber eine zentrale Rolle. Geraten dessen Anbieter patentrechtlich unter Druck, sieht Müller darin für Google ein Glaubwürdigkeitsproblem: “HTC hat vermutlich wie viele andere Anbieter darauf gehofft, dass sich Google im Falle von Patentstreitigkeiten nicht auf Haftungsausschlüsse zurückzieht, sondern aktiv hilft”, kommentiert Müller und verweist darauf, dass der Suchmaschinenriese bislang nicht interveniert.

Müller sieht auch App-Entwickler in der Gefahr, mit Patentverletzungsklagen überzogen zu werden, für die notfalls der Betriebssystemanbieter mit einer Freistellungsklausel Verfahrenskosten und etwaige Schadensersatzzahlungen übernimmt. Davor hatte sich Google allerdings immer gedrückt.

Der Berater vertritt die Ansicht, dass Patente die weitere Marktdurchdringung einer Open-Source-Software verlangsamen, erschweren, limitieren oder gar abreißen lassen, und meint vorsichtig: “Ich kann niemandem Entwarnung geben, auch wenn sich Apple wahrscheinlich unter App-Entwicklern nicht unnötig unbeliebt machen will. Seine restriktive App-Store-Politik macht es Apple in diesen Kreisen ohnehin schwer genug.” Weiterhin verweist er auf Statistiken, die zeigen, dass Android mittlerweile die mobile Plattform mit den aktivsten Entwicklern ist. Apple wolle Entwickler eher bekehren als verklagen. “Jedoch muss jeder für sich entscheiden, ob er sich darauf verlässt”, meint der Blogger dazu [12].

Solche Gesten auszuführen und in Applikationen zu integrieren betrifft in einem Linux-System eine Reihe von Ebenen – von der Hardware über Treiber und Protokolle bis hin zu Fenstersystemen, Frameworks und schließlich den Applikationen (siehe Abbildung 2).

Abbildung 2: Viele Ebenen auf einmal sind betroffen, wenn Linux-Entwickler ihren Desktop fit für Multitouch machen wollen. Gegenwärtig bedeutet das noch eine Menge Handarbeit.

Abbildung 2: Viele Ebenen auf einmal sind betroffen, wenn Linux-Entwickler ihren Desktop fit für Multitouch machen wollen. Gegenwärtig bedeutet das noch eine Menge Handarbeit.

Touchscreens im Allgemeinen und Multitouch im Besonderen sind eine bemerkenswert alte Technik. Bereits Anfang der 1970er Jahre gab es experimentelle Prototypen, in den folgenden Jahren folgten immer wieder interessante Ansätze, von denen es jedoch keiner zur Marktreife brachte. Eine gute Übersicht der Geschichte zeichnete der Multitouch-Experte Bill Buxton auf [1].

Punktmengen

Solange es nur um einen einzigen Berührungspunkt geht, gibt es marktreife Touchscreens schon mehrere Jahre. Sie haben einen Vorteil, denn der Berührungspunkt nimmt schlicht die Rolle der Maus ein. Weitere Änderungen am Anwendungsstack sind nicht nötig. Die Bildschirme ließen sich leicht als Eingabegerät bei Fahrkartenautomaten, als Kiosksystem im öffentlichen Raum oder für mobile Geräte integrieren.

Dafür kommen meist resistive Touchscreens zum Einsatz: Sie bestehen aus zwei leicht leitenden Folien mit etwas Abstand, die sich auf Fingerdruck hin berühren. Eine sowohl quer als auch längst angelegte Spannung ändert sich dadurch, was ein Kontroller misst und in Koordinaten umrechnet. Durch den mechanischen Aspekt gilt das als zwar kostengünstig, aber langfristig wenig belastbar.

Die modernsten Touchscreens basieren auf dem kapazitiven Verfahren: Die Hersteller tragen auf eine Glasscheibe einen durchsichtigen Halbleiter – meist Indiumzinnoxid – dünn auf und legen an diagonal gegenüberliegenden Ecken eine Spannung an. So entsteht ein Kondensator, der ein elektrisches Feld aufbaut. Berührt ein Finger die Glasscheibe, stört dies das Feld und ändert die Kapazität des Kondensators. Diese Änderung misst ein Kontroller. In der Realität teilen Hersteller die Glasfläche in viele kleinere Felder auf und verlegen dazu sehr feine Drähte. Die Projected Capacitive Touch Screens (PCTs) kommen in den meisten modernen Geräten wie dem I-Pad vor.

Flache Winkel

Noch in den Labors untersuchen Hersteller daneben weitere Ideen: Ein aussichtsreicher Ansatz baut auf die Totalreflexion von Licht (FTIR), das in sehr flachem Winkel auf eine glatte Oberfläche fällt. Dabei leitet eine Infrarot-LED seitlich Licht in die Glasplatte. Berührt ein Finger die Fläche, ändert sich die Reflexion leicht, was eine Kamera als Helligkeitsänderung erkennt. Solche FTIR-Touchscreens lassen sich recht groß aufbauen, haben aber den Nachteil, dass sie eine große Bautiefe aufweisen, da die Kamera einen Blick auf die komplette Berührfläche haben muss.

Nicht jedes Touchpad eignet sich dazu, mehrere Finger gleichzeitig zu erkennen, aber viele Hersteller bewerkstelligen dies auf die eine oder andere Art. Allen ist gemeinsam, dass ihre Kontroller eine Folge von Koordinaten liefern, die angeben, wo der Anwender die Fläche berührt. Die Kontroller liefern sie über eine serielle Leitung aus, die meist als USB-Gerät ausgeführt ist. Je nach Bauart kommen zwischen 40 und 100 Berühr- und Loslass-Ereignisse in einer Auflösung von meist 10 oder 12 Bit beim Betriebssystem an.

Dank USB ist das Empfangen dieses seriellen Stroms einfach. Der Standard spezifiziert den Aufbau von Datenströmen, die von Geräten stammen, an deren anderem Ende ein Mensch hängt, durch so genannte HID-Profile, was für Human Interface Device steht [2]. Die gibt es im Standard von 2004 ursprünglich nur als Usage Tables für Touchscreens. Mittlerweile haben Hersteller eine Reihe von Erweiterungen angeregt und beschlossen, darunter die Touch Digitizer und Multitouch Digitizer [3]. Die Mehrheit der Hersteller hält sich mehr oder weniger genau an diese Standards (siehe auch den Kasten “Clickpads”).

Clickpads

Meist sind Benutzer beim Thema Multitouch versucht, vor ihrem geistigen Auge einen Bildschirm zu berühren. Dabei gibt es schon anderswo seit Längerem eine Touch-Technologie: das Mauspad auf vielen Notebooks. Oft beherrschen diese Geräte bereits Multitouch, etwa um zu scrollen, oder neuerdings auch, um auf so genannten Clickpads die beiden Maustasten zu emulieren. Diese Pads kommen ohne Tasten aus und müssen daher bei gehaltener Maustaste Bewegungen verarbeiten – gegenwärtig noch eine Herausforderung.

Der Marktführer bei solchen Geräten ist Synaptics, Treiber für Singletouch gibt es sowohl im Linux-Kernel wie für X-Server schon lange. Wenn es allerdings um echtes Multitouch geht, hadert der Hersteller gegenwärtig noch, wie er am besten seine Treiber für die “Synaptics Gesture Suite for Linux” veröffentlichen soll, da er um seine Patente fürchtet. Auf Anfrage des Linux-Magazins erklärte das Unternehmen, gegenwärtig das nötige Wissen nur an OEMs unter Non-Disclosure-Agreement weiterzugeben, die dann Binary-only-Treiber veröffentlichen [9].

Für eine ganze Reihe solcher Geräte gibt es Treiber im Generic Input Event Layer des Linux-Kernels, weitere anzupassen ist für Kernelentwickler mit vorhandener Dokumentation typischerweise nicht besonders aufwändig. Der Linux-Entwickler Henrik Rydberg hat dazu eine Anleitung in der Kerneldokumentation des Input Abstraction Layer abgelegt [4].

Normalform

Diese Schnittstelle liefert – grob gesagt – Ereignisse, sobald ein Finger einen Touchscreen berührt, verlässt oder seine Position verändert. Als Anwender tauchen solche Geräte unter »/dev/input/eventNummer« auf, das Udev-Subsystem legt darauf bei unterstützten Geräten einen Symlink unter beispielsweise »/dev/input/touchscreen0« an. In den meisten Fällen konsumiert ein X-Server diese Events des Kernels. Eine Ausnahme bildet das von Google vorangetriebene Android. Hier verarbeitet die Ablaufumgebung die Ereignisse selbst und benachrichtigt die betroffenen Anwendungen direkt, da Android selbst keinen X-Server verwendet und direkt in einen Framebuffer rendert (siehe den Artikel in diesem Schwerpunkt).

Einige Proof-of-Concept-Implementationen des französischen Forschungsinstitutes ENAC lasen ebenfalls das Input-Device direkt aus und generierten daraus D-Bus-Aufrufe. Wer beispielsweise KDE 4 verwendet, kennt die Schaltflächen zum Vergrößern oder Drehen der Plasmoiden auf dem Desktop. Diese Aktivitäten triggerte ein spezieller Daemon der Franzosen per D-Bus. Das Umgehen des X-Servers zeugt zwar von Pragmatik, gilt aber unter den meisten Entwicklern als Hack. Der Multitouch-Support, den Ubuntu für die Ausgabe 10.10 angekündigt hat, geht einen ähnlichen Weg (siehe Kasten “Wie Ubuntu Multitouch macht”).

Wie Ubuntu Multitouch
macht

Für ihre Version 10.10 (Maverick Meerkat) preschen die Ubuntu-Entwickler vor und wollen als erste Distribution durchgehenden Multitouch-Support vorlegen – zumindest für einige Anwendungen [13]. Dazu umschiffen sie die derzeit schwierigsten Klippen des X-Servers und der Desktop-Frameworks durch einen eigenen Daemon mit Namen »utouch«. Den füttert ein besonderer Treiber im X-Server mit Daten.

Dessen Name »gevdev« deutet bereits an, dass es sich wohl um eine erweiterte Version des bestehenden Evdev-Treibers handelt. Utouch prüft, ob ein Ereignis einer bekannten Geste entspricht. Ist das nicht der Fall, erhält der X-Server das Eingabe-Ereignis wieder zurück und behandelt es wie eine Mausbewegung. Die Gesten durchlaufen eine Reihe von Bibliotheken, die sie erkennen und parametrisieren, und erreichen schließlich die Anwendungen, die sie dann ausführen (siehe Abbildung 6), in der neuen Unity-Oberfläche von Ubuntu.

Das hat den Vorteil, dass die Distribution schnelle Ergebnisse vorweisen kann und nebenbei gleich ihren Unity-Desktop bewirbt. Es bleibt jedoch abzuwarten, wie einfach es sein wird, auch andere Anwendungen in den Genuss dieser Infrastruktur kommen zu lassen.

Abbildung 6: Ubuntu geht einen Sonderweg, wenn es darum geht, Multitouch-Events zu verarbeiten: Der gepatchte X-Treiber »gevdev« sendet Ereignisse vom Kernel an das Utouch-Subsystem. Handelt es sich um keine Geste, gibt es das Event wieder zurück. Die Subsysteme »grail«, »gru« und werten die Gesten aus und »geis« sendet sie an vorbereitete Unity-Anwendungen.

Abbildung 6: Ubuntu geht einen Sonderweg, wenn es darum geht, Multitouch-Events zu verarbeiten: Der gepatchte X-Treiber »gevdev« sendet Ereignisse vom Kernel an das Utouch-Subsystem. Handelt es sich um keine Geste, gibt es das Event wieder zurück. Die Subsysteme »grail«, »gru« und werten die Gesten aus und »geis« sendet sie an vorbereitete Unity-Anwendungen.

Aus diesem Grund programmierten die Entwickler des X.org-Servers ihrerseits ein Gegenstück zum Input Abstraction Layer, das sich mit dem Namen »evdev« in die »xorg.conf« einbinden lässt. Dieser Treiber kann seit Version 1.7 des X-Servers auch mit Multitouch-Ereignissen umgehen und an die Anwendungen weiterreichen.

Ursprünglich nannte der X-Entwickler Peter Hutterer dieses Verfahren Multi-Point-X (MPX), da es jeden Berührpunkt als eine eigene, unabhängige Maus ausführte (Abbildung 3). Inzwischen ging MPX im X Input Layer 2 auf, den die Entwickler auch Xi2 abgekürzen. Er adressiert eine Reihe von komplexen Fragen, etwa welches Fenster Tastatureingaben erhalten soll, wenn es mehrere Mauszeiger gibt, oder wie eine Anwendung unterscheidet, welcher Finger genau sich an welcher Koordinate befindet.

Abbildung 3: MPX ist der Vorläufer des Eingabe-Subsystems Xi2 im X-Server von X.org. Es liefert den X-Clients mehrere voneinander unabhängige Mauszeiger.

Abbildung 3: MPX ist der Vorläufer des Eingabe-Subsystems Xi2 im X-Server von X.org. Es liefert den X-Clients mehrere voneinander unabhängige Mauszeiger.

Die wenigsten Anwendungen schreiben jedoch direkt auf ein X-Display, sondern verwenden stattdessen ein Desktop-Framework wie GTK+ oder Qt. Von diesen Andockversuchen gibt es zwar mittlerweile erste Implementationen, allerdings besteht die begründete Möglichkeit, dass sich hier das API noch in einigen Details ändert.

Oberflächen

So finden Experimentierfreudige für GTK+ 2.9 ein Patch, im angekündigten GTK+ der Version 3.0 soll der Code fest enthalten sein – allerdings nur für den Multipointer-Betrieb, der vereinfacht gesagt die einzelnen Mauszeiger von X11 lediglich durchreicht. Komplexere Anwendungsfälle wie Multitouch oder gar Gesten müssen daher Gnome-Anwendungen noch selbst implementieren. Ein weiterer Schwerpunkt-Artikel erklärt, wie Entwickler dazu vorgehen.

Qt gibt sich bedeckter: Das Framework kennt zwar seit Version 4.6 einige Multitouch-Gesten [5]. Die gibt es in Objekten wie einem »QGestureEvent« abstrakt an den Anwendungsentwickler weiter, damit dieser sich nicht um Berührpositionen und ihre Beziehungen untereinander kümmern muss [6]. Möchte eine Anwendung jedoch die rohen Einzelevents verarbeiten, etwa um mit mehreren Fingern gleichzeitig zu malen oder ein DJ-Pult zu bedienen, greifen Entwickler auf ein »QTouchEvent« zurück.

Allein mangelt es Qt gegenwärtig an einer Anbindung dieser Infrastruktur an den darunterliegenden Layer, im Falle von Linux an den X-Server. Aus diesem Grund funktionieren Qt-Gesten nur, wenn sich ein Windows, Mac OS oder Symbian darunter um Ein- und Ausgabe kümmern (siehe Abbildung 4). Der Kasten “X.org und Qt: Zweite Wahl” beschreibt Qts Vorgehen in Sachen X und Multitouch.

Abbildung 4: Seit Qt 4.6 kennt das Desktop-Framework auch Multitouch-Gesten. Um sie unter Linux jedoch anzusteuern, braucht es zurzeit noch einige Tricks.

Abbildung 4: Seit Qt 4.6 kennt das Desktop-Framework auch Multitouch-Gesten. Um sie unter Linux jedoch anzusteuern, braucht es zurzeit noch einige Tricks.

X.org und Qt: Zweite
Wahl

In Qt gibt es keine Multipointer-Unterstützung. Das erklärt auf Nachfrage des Linux-Magazins Denis Dzyubenko, Software Engineer bei Nokias Qt-Entwicklungsabteilung. Der Einsatz von mehreren Tastatur-Maus-Paaren wie in der jüngsten Version von GTK+ (siehe Artikel in dieser Ausgabe) ist in Nokias GUI-Toolkit also nicht vorgesehen. Dafür funktioniert Multitouch, aber nur auf Windows 7, Mac OS X 10.6 und Symbian. Hier kümmern sich nämlich die Betriebssysteme um die Erkennung der Multitouch-Ereignisse

Unter Qt für X11 funktioniert derzeit weder das eine noch das andere. Unter [http://qt.gitorious.org/qt/multitouch-and-gestures] gibt es zwar ein Git-Repository aus dem Jahr 2009, in dem sich die Qt-Entwickler an Multitouch unter X11 versucht haben. Dort hat sich aber lange nichts mehr getan. Die Toolkit-Macher warten darauf, was die X.org-Entwickler in Sachen Multipointer und Multitouch auf die Beine stellen, erläutert der Australier Peter Hutterer. Von ihm stammt Xinput 2, der Nachfolger Xinput 2.1 befindet gerade in der Entwurfsphase und soll X11 zu Multitouch verhelfen. Ob Qt aber überhaupt an die Multipointer-Schnittstelle andocken wird, ist fraglich. Laut Dzyubenko sei die Integration von Xinput 2 ein zu großer Aufwand. Multitouch mit Xinput 2.1 jedoch sei attraktiv und ein gangbarer Weg.

Qts Produktpolitik definiert derzeit keine eindeutige Vorgehensweise in Sachen X.org. Ein Unternehmenssprecher gab der Redaktion Folgendes zu Protokoll: “Die Unterstützung für X11 unter Linux rangiert für Qt auf Stufe 2. Das heißt, sie muss unseren Unit-Tests und weiteren internen Test-Tools genügen, bevor wir eine neue Release des Produkts veröffentlichen. Auch im kommenden Qt 4.7 wird Linux/X11 eine Tier-2-Plattform bleiben.” In Tier 1 werden Windows 7, Mac OS X 10.6 und Symbian rangieren, die bereits jetzt in den Genuss von Multitouch-Unterstützung kommen (Abbildung 5).

Im September 2010 trafen sich Beteiligte aller Seiten auf dem X Developers’ Summit in Toulouse und diskutierten dort unter anderem die Schnittstellen zwischen X.org und Qt. In die kommende Version 1.10 des X-Servers werde Multitouch noch nicht einziehen, lässt Peter Hutterer wissen. Dessen Merge-Fenster schließe bereits im Dezember. Parallel dazu werde es aber Pre-Release-Versionen mit den neuen Schnittstellen geben, die die Toolkit- und Anwendungsentwickler testen können. Version 1.11, für August 2011 geplant, werde dann hoffentlich getestete Unterstützung bringen.

Abbildung 5: Die Plattform-Übersicht von Qt macht es klar: X11 auf Linux ist für den Toolkit-Hersteller von sekundärer Wichtigkeit. Windows 7 dagegen steigt in der nächsten Qt-Version in die erste Kategorie auf.

Abbildung 5: Die Plattform-Übersicht von Qt macht es klar: X11 auf Linux ist für den Toolkit-Hersteller von sekundärer Wichtigkeit. Windows 7 dagegen steigt in der nächsten Qt-Version in die erste Kategorie auf.

Pyramidenspitzen

So bleiben beim Sturm durch die Multitouch-Ebenen nur die Anwendungen selbst: Aus der unklaren Situation bei den Frameworks und den darunterliegenden Schichten folgt, dass erst wenige Anwendungen in der Lage sind, die neuen Möglichkeiten zu nutzen. Immerhin sehen einige bereits Hooks vor, mit denen sie die gängigsten Gesten wie das Vergrößern oder Drehen von Objekten umsetzen können. Bei vielen lässt sich solch eine Funktion leicht nachrüsten, sobald erst einmal die nötige Infrastruktur vorhanden und stabil ist. Auf komplexere Steuerungen müssen Anwender aber vermutlich noch etwas warten.

Für Anwender bedeutet Multitouch gegenwärtig eine Menge Handarbeit. Sie benötigen einigen Forscherdrang, um USB-IDs zu erkunden, Treiber anzupassen und zu kompilieren sowie eine Konfiguration des X-Servers anzulegen. Schließlich sind Anwendungen zu patchen, damit sie mit den Multitouch-Events umgehen können. Dass es möglich ist, zeigen mehrere kursierende Videos, die beispielsweise den Bildbetrachter Eye of Gnome oder den KDE-4-Desktop zeigen.

Parallelen

Geräte, die Multitouch-fähig sind, gibt es bereits auf dem Markt [7]. Wer sich beispielsweise bei Notebooks oder Netbooks umschaut, wird durchaus fündig, wie ein eigener Artikel in diesem Schwerpunkt zeigt. Auch der Linux-Kernel hat seine Hausaufgaben weitgehend gemacht, er bietet die Infrastruktur, um neue Geräte schnell mit Treibern auszustatten.

Auf Ebene des X-Servers stabilisiert sich die Situation mit Xi2 deutlich, wenn auch noch Anpassungen zu erwarten sind. Die beiden großen Frameworks müssen trotz erster Schritte noch einiges tun: Qt und KDE im Hinblick auf die Anbindung an X, GTK+ und Gnome eher mit Blick auf leistungsfähige Abstraktionsobjekte.

Bleiben die Anwendungen selbst, die bis jetzt diese Voraussetzungen noch abwarten. “Multitouch-Technologie wird scheitern”, heißt es in einem lesenswerten und durchaus übertragbaren Text, den Microsoft im Rahmen der Windows-7-Zertifizierung verfasst hat, “wenn das Benutzererlebnis nicht überragend ist” [8]. Berührend.

Infos

[1] Bill Buxton, “Multi-Touch Systems”: [http://www.billbuxton.com/multitouchOverview.html]

[2] HID Usage Tables: [http://www.usb.org/developers/devclass_docs/Hut1_12.pdf]

[3] Beschlossene HID-Erweiterungen:[http://www.usb.org/developers/hidpage]

[4] Multitouch im Linux-Kernel:[http://lxr.linux.no/source/Documentation/input/multi-touch-protocol.txt]

[5] Multitouch in Qt: [http://labs.qt.nokia.com/2009/04/20/multi-touch-support-in-qt/]

[6] Johan Thelin, “Qt 4.6: Berühren und bewegen”: Linux-Magazin 03/10, S. 46

[7] Mehr Geräte: [http://lii-enac.fr/en/projects/shareit/multitouch-devices.html]

[8] Mircrosoft, “How to Design and Test Multitouch Hardware Solutions for Windows 7”: [http://is.gd/fcik1]

[9] Synaptics Gestures: [http://synaptics.com/ solutions/technology/gestures/]

[10] Gestenbibliothek: [http://gestureworks.com/about/supported-gestures/]

[11] Apple verklagt HTC: [http://www.apple.com/pr/library/2010/03/02patents.html]

[12] FOSS Patents: [http://fosspatents.blogspot.com/2010/08/international-equivalents-of-apples.html]

[13] Gedanken zu Multitouch im Ubuntu-Wiki: [https://wiki.ubuntu.com/Multitouch/]

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben