PDA

View Full Version : OpenSuse13.1/Gnome3 - Multitouch, Touchscreen



ThomasKR
16-Sep-2014, 10:41
Hallo zusammen,

Ich habe mir ein Sony Vaio SVF-15N2L2ES Convertible Notebook zugelegt und OpenSuse13.1/Gnome3 neben Windows8.1 installiert.
Das Convertible besitzt einen Touchscreen und lässt sich auch in reinen Tablet-Modus umklappen.

Ich habe mich für Gnome3 entschieden, weil ich diese Desktop-Oberfläche für die beste punkto Touchscreen/Tablet-Bedienung halte.
Single-Finger-Touch läuft per default. Ich kann durch die Anwendungsmenus scrollen und Anwendungen starten. Langes Gedrückt-Halten der icons bewirkt einen Rechte-Maustaste-Effekt mit Kontextmenu.
Als Bildschirmtastatur habe ich die unter "Barrierefreiheit" verfügbare Tastatur aktiviert, die sich bei den meisten vorinstallierten Anwendungen sowie im reinen Gnome-Betrieb automatisch öffnet und schließt wenn ich Eingabefelder aktiviere. Für andere Anwendungen habe ich die "xvkbd" Bildschirmtastatur installiert, da die ebenfalls vorinstallierte "Eekboard"-Tastatur bei mir leider unter bugs leidet.

Auch Stifteingabe wird vom Sony Convertible unterstützt und funktioniert unter OpenSuse13.1.

Soweit bin ich also in der Lage meinen Touchscreen unter OpenSuse13.1 zu nutzen.

So richtig ordentlich wird das Ganze in meinen Augen aber erst mit Multitouch, also z.B. Zoomen und Rotieren mit zwei oder mehr Fingern.
Multitouch funktioniert leider überhaupt nicht und ich habe auch keinen Plan wie ich das realisieren könnte.

Zwar habe ich bereits seit einiger Zeit im Internet recherchiert und bin dort auf diverse Pakete gestoßen, die einen Zwei- oder Mehrfingerbetrieb ermöglichen sollen, aber diese Pakete sind meist für Ubuntu maßgeschneidert und teilweise auch schon etwas in die Jahre gekommen.
(Siehe twofing (http://plippo.de/p/twofing.htm), ginn (https://wiki.ubuntu.com/Multitouch/Ginn), ENAC (http://www.lii-enac.fr/en/architecture/linux-input/index.html#drivers))

Wenn ich mich richtig informiert habe wird bereits seit 2007 an Touchscreen-Support für Linux gearbeitet und der Kernel, X-Server. API und GTK+-Framework unterstützen mittlerweile den Multitouch-Betrieb.

In einem anderen Forum habe ich aufgeschnappt das es möglich sei unter Yast > Maus zwei Mauszeiger zu aktivieren. Jedoch fehlt auf meinem Notebook die Maus-Rubrik in Yast. Das diese Option Multitouch realisiere wurde nicht explizit behauptet, aber es scheint mir zumindest eine Option zu sein.

Wenn ich in Yast2 "touch" als Suchbegriff eingebe sehe ich das "libmtdev1" (Multitouch Protocol Translation Library) installiert ist. "mtdev" (Multitouch Protocol Translation Library) und "tslib" (Abstraction layer for touchscreen) sind nicht installiert, stehen aber in den offiziellen Suse-Repositories zur Verfügung. Was es mit diesen Paketen auf sich hat? Keine Ahnung :\


Hat jemand Ahnung wie sich Multitouch unter openSuse13.1/Gnome3 realisieren lässt??
Bin über jeglichen Ratschlag, Hinweis, Tipp, Erfahrungsbericht, Link.. etc dankbar!

zur Info:
Ich habe bereits hier (http://www.opensuse-forum.de/allgemeines/desktop-arbeitsumgebungen/10801-opensuse13-1-multitouch/#post72238) einen thread zur Thematik gestellt, bislang aber leider keine Antworten erhalten :(
Ich weiß das "Multi-Threads" (oder wie man das nennt) nicht immer gerne gesehen werden, es scheint hinsichtlich meines Anliegens jedoch nur wenige User zu geben die sich auskennen.. von daher bitte um Verständnis!

ThomasKR
17-Sep-2014, 13:33
Habe das Ganze jetzt hier (http://forum.linux-club.de/viewtopic.php?f=93&t=119527) auch nochmal geposted in der Hoffnung das sich noch irgendjemand findet der ebenfalls einen Touchscreen mit Suse nutzt und ähnliche Probleme hat/hatte :\

ThomasKR
20-Sep-2014, 06:48
Noch ein Versuch hier (http://www.linuxforen.de/forums/showthread.php?277385-Sony-Vaio-SVF-15N2L2ES-OpenSuse13-1-Multitouch)

Hat denn wirklich niemand auch nur die geringste Ahnung von Multitouch unter OpenSuse? :'(
Ich wäre auch dankbar für Erfahrungen oder Infos in Zusammenhang mit anderen Suse-Versionen oder auch anderen Distributionen! Es muss auch nicht unbedingt mein Sony-Notebook sein worum es sich dreht.. hauptsache ich komme irgendwie weiter

ThomasKR
21-Sep-2014, 11:06
Gelöst!

Es ist vollbracht! Dank des bereits am Anfang dieses threads gelinkten Programmes "Twofing (http://plippo.de/p/twofing)" von Plippo ist es mir heute gelungen Zweifinger-Gesten systemweit zu ermöglichen!
Das ist zwar streng genommen "nur" ein Zweifinger-Touch, aber ich halte das für völligst ausreichend um eine gute Touchscreen-Funktionalität zu ermöglichen.

Folgendermaßen bin ich vorgegangen:

Zunächst einmal ist es Voraussetzung das der Treiber des Touchscreens Multitouch unterstützt. Um dies zu testen habe ich das bereits vorinstallierte Programm "evtest" verwendet. Falls dort MT-Events ankommen ist es ein gutes Zeichen. In diesem Fall sollte theoretisch eine Anpassung der udev-Regeln von twofing ausreichen um es zum Laufen zu bringen.

Durch Eingabe von "cat /proc/bus/input/devices" als root erhält man die Nummer des events, welches dem Touchscreen zugeordnet ist sowie weitere nützliche Informationen zur verwendeten Touchscreen-Technologie.

Ich erhielt nach Eingabe des Befehles u.a folgende relevanten Angaben:


I: Bus=0003 Vendor=1b96 Product=0f06 Version=0110
N: Name="N-trig DuoSense Pen"
P: Phys=usb-0000:00:14.0-5/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input15
U: Uniq=
H: Handlers=mouse2 event15
B: PROP=0
B: EV=1b
B: KEY=c03 1 0 0 0 0
B: ABS=1000003
B: MSC=10
I: Bus=0003 Vendor=1b96 Product=0f06 Version=0110
N: Name="N-trig DuoSense"
P: Phys=usb-0000:00:14.0-5/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input16
U: Uniq=
H: Handlers=mouse3 event16
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=3273800000000003

--> Mein Sony Vaio arbeitet mit der N-trig® DuoSense® Technology für Stift- und Multitouch-Eingaben in der Version 1b96:0f06

Anschließend kann man die nun bekannte Event-Nummer (bei mir event16) nutzen um Multitouch-Funktionalität mit evtest zu testen:

"evtest /dev/input/event16"

Hier wird man aufgefordert den Bildschirm zu "touchen" und erhält daraufhin verschiedene Ausgaben von evtest, die zeigen ob die ausgeführten Gesten erkannt werden.

Die Ausgaben von mir waren positiv, so dass ich die Binary-Datei von twofing in einen Ordner meines Home-Verzeichnisses kopiert und unter Eigenschaften/Zugriffsrechte ein Häkchen bei "Datei als Programm ausführen" gesetzt, sowie sämtlichen Nutzern Lese+Schreibrechte gegeben habe.
Verwendet habe ich die aktuellste Version 0.1.2.20120708 aus den Git-Repositorys im Binary-Format.
Siehe hier: https://github.com/Plippo/twofing

Danach habe ich mit dem Befehl "./twofing --debug /dev/input/event16" getestet ob twofing auf meinem System funktioniert --- und das hat es! lol!

Zuguterletzt gilt es für twofing eine eigene virtuelle Gerätedatei zu erzeugen, damit es auch ohne Root-Rechte sowie bei Änderung der Gerätenummer funktioniert und dafür zu sorgen, dass sich twofing automatisch startet.

Hierzu habe ich zunächst eine Datei namens "70-touchscreen-ntrig.rules" mit folgendem Inhalt:
KERNEL=="event*",ATTRS{name}=="N-trig DuoSense",SYMLINK+="twofingtouch",RUN+="/bin/chmod a+r /dev/twofingtouch"
mit Root-Rechten in den Ordner /etc/udev/rules.d kopiert.
Zum Schluss habe ich den Befehl <Pfad-zum-Paket>/twofing --wait zu den Startprogrammen hinzugefügt und das wars.

Twofing startet jetzt automatisch bei Systemstart und läuft als Daemon im Hintergrund, fängt sämtliche Touch-Events ab und wandelt sie in ganz normale Maus- und Tastatur-Events um.

Es ist mir dank twofing nun möglich in allen(!) Anwendungen mit zwei Fingern zu scrollen und zu zoomen und auch z.B. Bildmaterialien zu rotieren! Endlich kann ich nun auch die Vorzüge eines Touchscreens unter Kartenprogrammen wie "maps" und "marble" voll ausnutzen.
Das Ganze läuft bugfrei, ruckelfrei und flüssig ohne jegliche Aussetzer! Ich kann es nur jedem empfehlen der Linux mit einem Touchscreen verwenden möchte! Ich musste das Paket, welches eigentlich von Plippo unter Ubuntu getestet und entwickelt wurde noch nicht einmal kompilieren.

Wie bereits erwähnt verwendet mein Sony Vaio Convertible die N-trig Duo-Sense Technologie. Die N-trig-Technologie scheint mit die am Besten unterstütze für Linux zu sein (habe das irgendwo beim recherchieren gelesen). Von daher kann man nichts falsch machen wenn man auf N-trig setzt wenn man vor hat Linux auf dem Computer zu nutzen.

Welche Technologien aktuell vom Linux-Kernel unterstützt werden kann man hier herausfinden:
http://lii-enac.fr/en/architecture/linux…ch-devices.html (http://lii-enac.fr/en/architecture/linux-input/multitouch-devices.html)

Übrigens scheint Ubuntu mit dem Unity-Desktop aktuell die Linux-Distribution mit der am weitesten fortgeschrittenen Unterstützung von Multitouch zu sein. Allerdings scheint das schlechter und unzuverlässiger zu laufen als mit twofing!
Von daher ist man mit OpenSuse/Gnome + Twofing bestens bedient! ;)

Bin jetzt erstmal total happy das es funktioniert! Muss ehrlich gestehen das ich kurzzeitig wieder angefangen habe öfters in Windows8.1 zu booten wegen der guten Multitouch-Funktionalität, aber damit ist jetzt wieder Schluss!

Fazit:
OpenSuse-Multitouch? --- Kein Problem!

http://www.opensuse-forum.de/wcf/images/smilies/smilie_hops_011.gif


Weitere Info:
Möchte gar nicht so tun als ob der beschriebene Lösungsweg auf meinem Mist gewachsen ist, bin Newbie!
Plippo war so freundlich mir zu helfen das ich twofing auf meinem Sony installieren konnte!
Er war es der mir die ganze Vorgehensweise erklärt und die udev-Regeln angepasst hat!
Dafür auch an dieser Stelle nochmals vielen Dank, Plippo! :good:

Plippo selbst bezeichnet twofing als "einen "Hack" für die Tatsache, dass der Linux-Kernel zwar mit den richtigen Treibern einen recht guten Multitouch-Support geboten hat, aber die Desktop Environments und Anwendungen so gut wie keine Unterstützung boten."
Für mich ist twofing ein einwandfrei funktionierendes Programm, welches man in die offiziellen Repositorys aufnehmen sollte!

ThomasKR
25-Sep-2014, 11:29
Twofing unter Gnome 3.14 überflüssig?

Ist das Paket Twofing ab Gnome 3.14 überflüssig geworden?
Siehe: http://www.pro-linux.de/news/1/21551/gnome-314-freigegeben.html

Wird sich im fertigen openSUSE13.2 zeigen, welches mit Gnome3.14 kommen soll!

Twofing läuft systemübergreifend stabil und ohne Aussetzer in sämtlichen Anwendungen und bietet neben Zweifinger-Zoomen (Pinch or Stretch) auch Zweifinger-Scrollen, Rotieren und Rechtsklick.
Falls dies unter Gnome3.14 auch funktionieren sollte (vor allem auch so zuverlässig und stabil) wäre Twofing somit zumindest für den Gnome-Desktop ab 3.14 überflüssig.. Mal gespannt!

ThomasKR
04-Oct-2014, 08:45
Also die Multitouch-Funktionen in Gnome3.14, die man in diesem Video hier (http://www.youtube.com/watch?v=7p8Prlu3owc) veranschaulicht bekommt sehen vielversprechend aus! (von 0:26 bis 0:45)
Stellt sich mir nur die Frage ob das auch in allen Anwendungen läuft! Zumindest der Single-Finger-Touch in Gnome3.10 lief nicht in allen Anwendungen korrekt (z.B. in Chromium)

hsitt
29-Jan-2015, 08:56
Gelöst!

Es ist vollbracht! Dank des bereits am Anfang dieses threads gelinkten Programmes "Twofing (http://plippo.de/p/twofing)" von Plippo ist es mir heute gelungen Zweifinger-Gesten systemweit zu ermöglichen!
Das ist zwar streng genommen "nur" ein Zweifinger-Touch, aber ich halte das für völligst ausreichend um eine gute Touchscreen-Funktionalität zu ermöglichen.

Folgendermaßen bin ich vorgegangen:

Zunächst einmal ist es Voraussetzung das der Treiber des Touchscreens Multitouch unterstützt. Um dies zu testen habe ich das bereits vorinstallierte Programm "evtest" verwendet. Falls dort MT-Events ankommen ist es ein gutes Zeichen. In diesem Fall sollte theoretisch eine Anpassung der udev-Regeln von twofing ausreichen um es zum Laufen zu bringen.

Durch Eingabe von "cat /proc/bus/input/devices" als root erhält man die Nummer des events, welches dem Touchscreen zugeordnet ist sowie weitere nützliche Informationen zur verwendeten Touchscreen-Technologie.

Ich erhielt nach Eingabe des Befehles u.a folgende relevanten Angaben:


I: Bus=0003 Vendor=1b96 Product=0f06 Version=0110
N: Name="N-trig DuoSense Pen"
P: Phys=usb-0000:00:14.0-5/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input15
U: Uniq=
H: Handlers=mouse2 event15
B: PROP=0
B: EV=1b
B: KEY=c03 1 0 0 0 0
B: ABS=1000003
B: MSC=10
I: Bus=0003 Vendor=1b96 Product=0f06 Version=0110
N: Name="N-trig DuoSense"
P: Phys=usb-0000:00:14.0-5/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input16
U: Uniq=
H: Handlers=mouse3 event16
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=3273800000000003

--> Mein Sony Vaio arbeitet mit der N-trig® DuoSense® Technology für Stift- und Multitouch-Eingaben in der Version 1b96:0f06

Anschließend kann man die nun bekannte Event-Nummer (bei mir event16) nutzen um Multitouch-Funktionalität mit evtest zu testen:

"evtest /dev/input/event16"

Hier wird man aufgefordert den Bildschirm zu "touchen" und erhält daraufhin verschiedene Ausgaben von evtest, die zeigen ob die ausgeführten Gesten erkannt werden.

Die Ausgaben von mir waren positiv, so dass ich die Binary-Datei von twofing in einen Ordner meines Home-Verzeichnisses kopiert und unter Eigenschaften/Zugriffsrechte ein Häkchen bei "Datei als Programm ausführen" gesetzt, sowie sämtlichen Nutzern Lese+Schreibrechte gegeben habe.
Verwendet habe ich die aktuellste Version 0.1.2.20120708 aus den Git-Repositorys im Binary-Format.
Siehe hier: https://github.com/Plippo/twofing

Danach habe ich mit dem Befehl "./twofing --debug /dev/input/event16" getestet ob twofing auf meinem System funktioniert --- und das hat es! lol!

Zuguterletzt gilt es für twofing eine eigene virtuelle Gerätedatei zu erzeugen, damit es auch ohne Root-Rechte sowie bei Änderung der Gerätenummer funktioniert und dafür zu sorgen, dass sich twofing automatisch startet.

Hierzu habe ich zunächst eine Datei namens "70-touchscreen-ntrig.rules" mit folgendem Inhalt:
KERNEL=="event*",ATTRS{name}=="N-trig DuoSense",SYMLINK+="twofingtouch",RUN+="/bin/chmod a+r /dev/twofingtouch"
mit Root-Rechten in den Ordner /etc/udev/rules.d kopiert.
Zum Schluss habe ich den Befehl <Pfad-zum-Paket>/twofing --wait zu den Startprogrammen hinzugefügt und das wars.

Twofing startet jetzt automatisch bei Systemstart und läuft als Daemon im Hintergrund, fängt sämtliche Touch-Events ab und wandelt sie in ganz normale Maus- und Tastatur-Events um.

Es ist mir dank twofing nun möglich in allen(!) Anwendungen mit zwei Fingern zu scrollen und zu zoomen und auch z.B. Bildmaterialien zu rotieren! Endlich kann ich nun auch die Vorzüge eines Touchscreens unter Kartenprogrammen wie "maps" und "marble" voll ausnutzen.
Das Ganze läuft bugfrei, ruckelfrei und flüssig ohne jegliche Aussetzer! Ich kann es nur jedem empfehlen der Linux mit einem Touchscreen verwenden möchte! Ich musste das Paket, welches eigentlich von Plippo unter Ubuntu getestet und entwickelt wurde noch nicht einmal kompilieren.

Wie bereits erwähnt verwendet mein Sony Vaio Convertible die N-trig Duo-Sense Technologie. Die N-trig-Technologie scheint mit die am Besten unterstütze für Linux zu sein (habe das irgendwo beim recherchieren gelesen). Von daher kann man nichts falsch machen wenn man auf N-trig setzt wenn man vor hat Linux auf dem Computer zu nutzen.

Welche Technologien aktuell vom Linux-Kernel unterstützt werden kann man hier herausfinden:
http://lii-enac.fr/en/architecture/linux…ch-devices.html (http://lii-enac.fr/en/architecture/linux-input/multitouch-devices.html)

Übrigens scheint Ubuntu mit dem Unity-Desktop aktuell die Linux-Distribution mit der am weitesten fortgeschrittenen Unterstützung von Multitouch zu sein. Allerdings scheint das schlechter und unzuverlässiger zu laufen als mit twofing!
Von daher ist man mit OpenSuse/Gnome + Twofing bestens bedient! ;)

Bin jetzt erstmal total happy das es funktioniert! Muss ehrlich gestehen das ich kurzzeitig wieder angefangen habe öfters in Windows8.1 zu booten wegen der guten Multitouch-Funktionalität, aber damit ist jetzt wieder Schluss!

Fazit:
OpenSuse-Multitouch? --- Kein Problem!

http://www.opensuse-forum.de/wcf/images/smilies/smilie_hops_011.gif


Weitere Info:
Möchte gar nicht so tun als ob der beschriebene Lösungsweg auf meinem Mist gewachsen ist, bin Newbie!
Plippo war so freundlich mir zu helfen das ich twofing auf meinem Sony installieren konnte!
Er war es der mir die ganze Vorgehensweise erklärt und die udev-Regeln angepasst hat!
Dafür auch an dieser Stelle nochmals vielen Dank, Plippo! :good:

Plippo selbst bezeichnet twofing als "einen "Hack" für die Tatsache, dass der Linux-Kernel zwar mit den richtigen Treibern einen recht guten Multitouch-Support geboten hat, aber die Desktop Environments und Anwendungen so gut wie keine Unterstützung boten."
Für mich ist twofing ein einwandfrei funktionierendes Programm, welches man in die offiziellen Repositorys aufnehmen sollte!





Mal eine Frage wie ist das mit, 3-12 Multitouchscreen klapt das da auch.

ThomasKR
29-Jan-2015, 10:42
Mal eine Frage wie ist das mit, 3-12 Multitouchscreen klapt das da auch.
Die Anleitung funktioniert mit allen Desktop-Umgebungen, auch KDE, Xfce, Mate, ....
Es wird die Touch-Unterstützung des Kernels genutzt und direkt in Touch-Events des Users umgeleitet. Dabei werden sämtliche dazwischen liegenden Ebenen (xorg, gnome 3.x..) ignoriert.
Übrigens: Gnome 3.14 bietet jetzt auch Multitouch-Funktionen per default! Funktioniert allerdings nicht in allen Anwendungen. Twofing funktioniert in allen Anwendungen.