Récemment, j'ai dû développer une application (système de kiosque) pour et sur une Raspberry Pi 4. La particularité de ce système était que deux écrans tactiles devaient être connectés via HDMI et devaient, en plus, être tournés à 90 degrés vers la droite. Soit 2 moniteurs en format portrait, l'un au-dessus de l'autre La rotation de l'écran et la superposition n'ont posé aucun problème, car cela est possible, sans aucun problème, grâce à l'installation de « Raspbian Buster avec bureau et logiciel recommandé » via l'interface utilisateur. Pour ce faire, dans le menu « Raspberry -> Préférences -> Configuration de l'écran », tournez les deux moniteurs HDMI vers la droite, disposez-les l'un au-dessus de l'autre puis enregistrez les réglages. Le problème avec cela est que la configuration tactile n'est pas automatiquement tournée, disposée l'une au-dessus de l'autre, pour donner ensemble une grande zone tactile sur 2 moniteurs. Pour que le comportement tactile fonctionne correctement, il faut ajuster 2 fichiers de configuration - /usr/share/X11/xorg.conf.d/40-libinput.conf et /home/pi/.profile.
Vous devez d'abord lire les identifiants des moniteurs connectés. Pour ce faire, ouvrez un terminal et entrez la commande
xinput list
Ainsi, les moniteurs connectés sont répertoriés avec les identifiants correspondants. Dans mon cas, les moniteurs avaient les identifiants 6 et 7.
Ensuite, dans le fichier /usr/share/X11/xorg.conf.d/40-libinput.conf, ajustez la section « Section InputClass » avec le catchall « Identifier libinput touchpad » comme suit :
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchscreen "on"
Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Cela provoque la rotation de la surface tactile.
Enfin, insérez la subdivision de la surface tactile en 2 parties de taille égale à la fin du fichier /home/pi/.profile, afin qu'elle soit chargée à chaque démarrage du système.
xinput set-prop "6" --type=float "Coordinate Transformation Matrix" 1 0 0 0 0.5 0 0 0 1
xinput set-prop "7" --type=float "Coordinate Transformation Matrix" 1 0 0 0 0.5 0.5 0 0 1