Écran tactile

Cette page présente les points principaux aux sujest Pour gérer l'écran tactile voir la page Configurer un écran tactile.

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 : http://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 libgrip https://launchpad.net/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 ginn https://launchpad.net/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) :
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 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) ;

Où trouver l'information sur le matériel

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 wiki sur le multitouch d'Ubuntu en Anglais dédié au sujet ; il est en pleine élaboration :

https://wiki.ubuntu.com/Multitouch

Une autre excellente source (en Anglais), le site de l'ENAC, qui propose une revue des périphériques existants et de leur prise en charge :

http://lii-enac.fr/en/architecture/linux-input/#tuiototouch qui propose un tas de ressources très intéressantes ; le premier lien 'multitouch primer est une introduction et un contexte général ; ensuite il y une liste (non exhaustive) de matériels déjà supporté :

http://lii-enac.fr/en/projects/shareit/multitouch-devices.html :

Applet de rotation

Un applet permettant la rotation de l'écran est disponible à l'adresse suivante: https://github.com/frecel/ScreenRotator

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

  • 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.

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.

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

POur activer le défilement et le zoom dans Firefox il faut installer éditer le fichier /usr/share/applications/firefox.desktop avec les droits d'administration et modifier la ligne qui commence par Exec= comme suit: Exec=env MOZ_USE_XINPUT2=1 firefox %u. Voir AskUbuntu.

  • 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 :-)

http://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)
  • ecran_tactile.txt
  • Dernière modification: Le 03/01/2020, 21:18
  • (modification externe)