{{tag>matériel écran tactile}}
----
====== Écran tactile ======
Cette page présente les points principaux liés à la gestion des écrans tactiles. Voir aussi la page //[[evdev|Configurer un écran tactile]]//.
===== Généralités =====
Les **écrans tactiles** ou //touchscreen// sont apparus depuis quelques années. Leur prise en charge s'améliore petit à petit. Il existe des écrans tactiles séparés (sous forme de moniteur), ou qui intègrent un ordinateur de bureau, ou encore combinés à un PC portable.
Certains modèles sont supportés nativement.
==== Prérequis à bien comprendre ====
Il existe plusieurs conditions pour que la fonction tactile fonctionne ;
* il faut bien sûr que la fonction tactile soit implémentée dans la technologie de l'écran ; on ne peut pas transformer un écran "normal" en écran tactile, à l'heure actuelle ; de même si l'écran est 'single-touch' (un seul doigt ou point de contact reconnu), ou dual-touch (deux doigts), il ne pourra pas en reconnaître plus (certains écrans vont jusqu'à 10 voire 20 ....) ;
* il faut bien distinguer plusieurs types d'interactions avec un écran tactile (source : [[https://lists.freedesktop.org/archives/xorg/2009-March/044484.html]] ) :
* le __'single-point'__ : c'est surtout ça que nous avons maintenant ; c'est l'équivalent du pointeur de notre souris, mais pris en charge de manière tactile ;
* le __'multi-point'__ : plusieurs points séparés, déjà plus difficile, car il sont indépendants, et la grande majorité des applications ne gèrent qu'un seul point à la fois (cfr ci-après), un peu comme plusieurs curseurs de souris différents ;
* le __'multi-touch single-point'__ : plusieurs points reconnus, mais l'ensemble de ces points forment une seule instruction cohérente valable pour un application ; exemple bien connu, le "pinch" (mouvement de deux doigts qui se rapprochent ou bien qui s'éloignent pour faire un zoom sur une image ; ceci semblerait plus facile à implémenter ;
* le __'multi-touch multi-point'__ : le but ultime, le plus difficile à implémenter ; c'est donc une combinaison des précédents ; il permettrait par exemple de réduire la taille une image (avec un "pinch" fait par deux doigts) tout en déplaçant une autre fenêtre d'une manière indépendante ; il semble que ce soit le plus grand challenge...
* Précision importante, qui découle de ceci : **La majorité des applications actuelles (mai 2017) prennent mal en charge le multitouch, même si le multitouch est géré par le PC et pris en charge par Ubuntu !** Les applications ne peuvent gérer qu'un seul point à la fois.
* Cependant on voit apparaître maintenant cette possibilité, grâce à l'ajout de fonctionnalités dans les API. C'est le cas pour GTK+ avec la bibliothèque [[https://launchpad.net/libgrip|libgrip]] qui est en plein développement, mais il y aussi d'autres projets (projet de Carlos Garnacho). Par ailleurs , l'autre grande API Qt ([[KDE]]) est en train d'implémenter également ceci. Enfin il existe des moyens de "forcer" le mutitouch sur des applications que ne le prennent pas en charge nativement, dans une certaine limite. C'est le cas du daemon [[https://launchpad.net/ginn|ginn]]. Par exemple, avec Ginn, on pourra zoomer ou dézoomer sur un document PDF ouvert avec Evince (parce que Evince possède cette fonctionnalité de zoom ; il y a une traduction par Ginn du multi-touch sur l'écran en instructions de type "zoom"). On pourra aussi parcourir un document ou une page web ;
* Dans le **cas des applications GNOME**, les gestes tactiles multi-points supportés nativement (si il y en a) sont précisés dans la fenêtre "Raccourcis claviers" de chaque application (depuis la version Gnome 3.22). Exemple, dans Evince (lecteur de PDF) :
| {{ https://i.imgur.com/Ko9JFQ1.png?300|Capture d'écran du résumé des gestes tactiles (Evince 3.22.1) }} |
* Le bureau Unity (de Ubuntu 11.04 à 17.04) possède une syntaxe de "gestes" ("gestures"), qui peut être trouvée ici [[https://docs.google.com/document/d/1WJF8YdphrorvHiB5FFVxsitL5Pz-tpZ5-kmtzoD3tFc/preview|Ubuntu Gestures UI Guidelines]] ou Directives de gestion graphique des interfaces tactiles sous Ubuntu ; il s'agit ici de multi-touch, puisque on utilise jusqu'à 4 doigts pour donner différentes instructions ; relatives au pointeur, à une application spécifique, au système en général (selon le nombre de doigts utilisés).
==== Trouver de l'information ====
=== Pour identifier un matériel : ===
Les périphériques sont identifiées par deux codes de 4 chiffres ou lettres : 'Vendor' et 'Model', que l'on trouve via la commande //lsusb//
exemple : après avoir tapé **lsusb** dans un terminal, on obtient entre autres ceci :
''lsusb: BUS 005 Device 002: ID 0408:3000 Quanta computer, Inc.''
0408 est le 'Vendor' et 3000 est le 'Model' ; c'est comme ceci qu'on identifie précisément le périphérique. Par exemple le IIYAMA Pro Lite 2250 mts et l'ACER 230, bien que de marque différente sont tous les deux caractérisés par le même numéro que dans l'exemple. Ce qui marche pour l'un marchera donc pour l'autre.
=== Les sources d'information ===
Une bonne source d'information est le **[[https://wiki.ubuntu.com/Multitouch|wiki sur le multitouch d'Ubuntu]]** en Anglais dédié au sujet ; il est en pleine élaboration.
===== Rotation de l'écran =====
==== Applet de rotation ====
Un applet permettant la rotation de l'écran est disponible à l'adresse suivante: https://github.com/frecel/ScreenRotator
{{:applet:screenrotator.png}}
Pour l'installer, il suffit de procéder de la manière suivante:
Si vous connaissez une procédure plus efficiente, merci d'en faire part.
Télécharger l'archive .zip sur GitHub.
wget https://github.com/frecel/ScreenRotator/archive/master.zip -O ~/Téléchargements/ScreenRotator-master.zip
Se déplacer dans le répértoire de téléchargement et décompresser le fichier
cd ~/Téléchargements
unzip ScreenRotator-master.zip
Créer un répertoire de stockage pour les scripts et y déplacer le fichier
mkdir ~/Scripts
mv ScreenRotator-master ~/Scripts
Ou alors, en une seule ligne de commande:
wget https://github.com/frecel/ScreenRotator/archive/master.zip -O ~/Téléchargements/ScreenRotator-master.zip && cd ~/Téléchargements && unzip ScreenRotator-master.zip && mkdir ~/Scripts && mv ScreenRotator-master ~/Scripts
Ensuite, ouvrir le script python:
gedit ~/Scripts/ScreenRotator-master/ScreenRotator.py
Remplacer './icon.svg' par '/home/UTILISATEUR/Scripts/ScreenRotator-master/icon.svg', enregistrer et fermer (remplacer évidemment 'UTILISATEUR' par votre nom d'utilisateur.
Enfin, ouvrir "applications au démarrage" à partir du lanceur d'Unity et ajouter une entrée avec pour commande '/home/UTILISATEUR/Scripts/ScreenRotator-master/ScreenRotator.py' (en remplaçant également 'UTILISATEUR' par votre nom d'utilisateur).
L'indicateur se lancera à la prochaine connexion.
=== Lubuntu en 16.04 ===
Ne fonctionne pas (ou mal)
se reporter à cette page [[asus_eee_pc_t101mt|Asus Eee PC T101MT]]
===== Quelques points pratiques ou remarques : =====
* ne pas oublier **brancher le câble usb** (en plus du vga ou hdmi) si cela est nécessaire, sans quoi la fonction tactile ne serait pas prise en charge ;
* en cas de moniteur tactile que l'on ajoute au PC portable, tester le bon fonctionnement en utilisant seulement l'écran tactile en éteignant l'écran du portable ; ceci est faisable via Système > Préférences > Écran ; si on choisit de faire fonctionner les deux écrans à la fois : en mode "miroir" (même image sur les deux écrans), ça marche mais avec une basse résolution ; en mode multi-écran (deux écrans côte à côte, comme deux espaces de travail, avec le pointeur qui passe de l'un à l'autre), le pointeur peut être décalé par rapport au doigt/stylet sur l'écran ; en envoyant tout sur l'écran tactile et donc en éteignant l'écran du portable, on peut bénéficier de la meilleure résolution possible, avec un bon fonctionnement de la fonction tactile ;
* il existe des drivers installables dans les dépôts : les paquets **utouch** et **xserver-xorg-input-evtouch**.
=====Optimisation=====
Le multitouch n'est pas géré par le système mais par les applications, c'est pour cela que certaines applications ne savent pas l'utiliser. C'est le cas par exemple de LibreOffice qui ne gère pas le zoom ou le défilement directement sur la page. Certains comme Firefox nécessite un petit paramétrage alors que d'autres comme [[:Chromium]] le gère nativement.
====Émulation de la souris====
Il peut être utile d'émuler le clic droit par un appui long par exemple ou avec deux doigts sur l'écran tactile.
[[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt>touchegg]]**, et ajoutez le aux [[tutoriel:application_demarrage|applications aux démarrage]] avec la commande ''touchegg''. Touchegg vous permettra de faire apparaître le menu contextuel avec un double clic à deux doigts sur l'écran. Vous pouvez également agrandir les fenêtres avec 3 doigts.\\
Pour désactiver la souris lorsqu'on utilise l'écran tactile [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt>unclutter]]** et ajouter ''uncletter -idle 0.1 -root'' aux [[tutoriel:application_demarrage|applications lancées au démarrage]].
==== Optimisation pour GIMP ====
Pour avoir la pression avec le stylet [[:Gimp]] allez dans ** Édition -> Préférences -> Périphériques d'entrée** et choisissez **Configurer les périphériques d'entrée**. Personnalisez vos paramètres.
==== Optimisation du défilement sous Firefox et Thunderbird====
Pour activer le défilement et le zoom dans Firefox et Thunderbird il faut [[:tutoriel:comment_modifier_un_fichier|éditer le fichier]] **/usr/share/applications/firefox.desktop** (ou thunderbird.desktop) avec les [[sudo|droits d'administration]] et modifier la ligne qui commence par ''Exec='' comme suit: ''Exec=env MOZ_USE_XINPUT2=1 firefox %u''.
Voir [[https://askubuntu.com/questions/853910/ubuntu-16-and-touchscreen-scrolling-in-firefox|AskUbuntu]].
====Configure l'ouverture du menu contextuel====
Il suffit d'activer les options d'accessibilité, puis d'aller ds Souris > accessibilité et cliquer sur "Déclencher le clic secondaire par maintient du bouton principal".
Ainsi, un clic "long" équivaux a un clic droit.
Une autre solution à vérifier:
[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>ginn,xdotool|ginn et xdotool]]**. Ginn prend en charge l'injection de clics de clavier et de boutons de souris.\\
Pour faire un clic droit pour travailler, vous pouvez utiliser cette astuce :
* Configurez un nouveau raccourci clavier global dans ubuntu bien que souvent **Shift + F10** fonctionne,
* Appliquez un nouveau raccourci en exécutant ''xdotool'' pour injecter le bouton droit:
* Nom: ''NewCommand; COMMANDE: xdotool click 3; RACCOURCIS: mettez votre raccourci ici''
Ajoutez le RACCOURCIS que vous avez sélectionné dans le fichier souhaité, et associez-le par exemple aux tapotage à 2 doigts. Voir cette [[https://wiki.ubuntu.com/Multitouch/Ginn|page]] pour plus d'info.
===== Modèles spécifiques =====
* **eGalax :** [[:egalax|Installer le pilote eGalax]], et faire les réglages désirés avec le logiciel **eGalax** qui s'est installé.
* **elotouch :** est reconnue nativement,il est possible d'utiliser les outils générique pour le calibrage,
* **nwfermi :** [[:nwfermi]]
* **IIYAMA Pro Lite 2250mts :** pris en charge nativement, en moins en single-touch ; les liens ci-dessus peuvent être nécessaires pour le multitouch ; le fabriquant est Quanta.
**Acer 230H :** idem que pour IIYAMA Pro Lite
**Samsung LD220Z :** le driver propriétaire de NextWindow est nw-fermi comme sur certains Smarttouch ; il y a une procédure compliquée ici [[http://www.nextwindow.com/nextwindow_support/app_working_under_linux_2.html]] ; cependant, dans mon expérience, l'installation du pilote propriétaire suffit ; on le trouve à cette page ; pas de panique c'est en polonais, mais les liens pour télécharger les drivers sont clairs :-)
[[https://www.fastpc.pl/printthread.php?tid=3736]]
En résumé, il faut télécharger installer le driver, et ensuite ajouter le module nw-fermi dans le fichier /etc/modules (en faisant ceci on dit de charger le module dès le démarrage du pc) ; dans mon expérience, pas besoin de d'installer le driver evtouch (qui se trouve dans Synaptics - xserver-xorg-input-evtouch), ni de générer un fichier xorg.conf...
**PC Touchsmart de HP** :
=> mai 2014, avec Ubuntu 13.10 sur IQ500 Fr :
* d'abord, identifier l'id de l'écran : $ xinput --list //(attention, deux tirets accolés devant list)//
* puis, le stopper : $ xinput disable xx // (xx est le n° d'id de l'écran)//