Rotire monitor tactil Raspberry Pi 4

Recent a trebuit să dezvolt o aplicație (sistem kiosk) pentru/pe un Raspberry Pi 4. Lucrul special era că 2 monitoare tactile urmau să fie conectate prin HDMI, care trebuia rotit la 90 de grade spre dreapta. Deci, formate portret, 2 monitoare unul peste celălalt.
Rotirea ecranului și aranjarea acestuia unul peste celălalt nu a cauzat probleme, deoarece acest lucru este ușor posibil prin interfața cu utilizatorul - a fost instalat un "Raspbian Buster cu desktop și software recomandat".
Pentru a face acest lucru, în meniul "Raspberry -> Preferences -> Screen Configuration", rotiți cele două monitoare HDMI spre dreapta, aranjați-le unul peste celălalt și apoi salvați setările.
Problema cu aceasta este că configurația tactilă nu este rotită automat, aranjată una peste alta și are ca rezultat o zonă tactilă mare peste 2 monitoare.
Pentru ca comportamentul tactil să funcționeze corect, trebuie ajustate 2 fișiere de configurare - /usr/share/X11/xorg.conf.d/40-libinput.conf și /home/pi/.profile.

Mai întâi trebuie să citiți ID-urile monitoarelor conectate. Pentru a face acest lucru, deschideți un terminal și utilizați comanda

xinput list

intrare. Drept urmare, veți obține monitoarele conectate listate cu ID-urile corespunzătoare. În cazul meu, monitoarele aveau ID-urile 6 și 7.

Apoi, în fișierul /usr/share/X11/xorg.conf.d/40-libinput.conf ajustați secțiunea "Section InputClass" cu "Identifier libinput touchpad catchall" după cum urmează:

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

Acest lucru face ca suprafața tactilă să se rotească.

În cele din urmă, introduceți subdiviziunea interfeței tactile în 2 părți egale la sfârșitul fișierului /home/pi/.profile, astfel încât să fie încărcat de fiecare dată când sistemul este pornit.

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