Raspberry Pi 4 Touch monitor rotira

Nedavno sam morao razviti aplikaciju (kiosk sustav) za / na Raspberry Pi 4. Posebna stvar u tome bila je da su 2 monitora osjetljiva na dodir trebala biti spojena putem HDMI-a, koji su se morali rotirati za 90 stupnjeva udesno. Dakle, portretni formati, 2 monitora jedan na drugom.
Rotiranje zaslona i njegovo raspoređivanje jedan na drugi nije uzrokovalo nikakve probleme, jer je to lako moguće putem korisničkog sučelja - instaliran je "Raspbian Buster s radnom površinom i preporučenim softverom".
Da biste to učinili, u izborniku "Raspberry -> Preferences -> Screen Configuration" okrenite dva HDMI monitora udesno, rasporedite ih jedan na drugi, a zatim spremite postavke.
Problem je u tome što se konfiguracija dodira ne rotira automatski, raspoređena jedna na drugu i rezultira velikim dodirnim područjem preko 2 monitora.
Da bi ponašanje dodira ispravno funkcioniralo, potrebno je prilagoditi 2 konfiguracijske datoteke - /usr/share/X11/xorg.conf.d/40-libinput.conf i /home/pi/.profile.

Prvo morate pročitati ID-ove povezanih monitora. Da biste to učinili, otvorite terminal i koristite naredbu

xinput list

ulaz. Kao rezultat toga, dobivate povezane monitore navedene s odgovarajućim ID-ovima. U mom slučaju, monitori su imali osobne iskaznice 6 i 7.

Zatim u datoteci /usr/share/X11/xorg.conf.d/40-libinput.conf prilagodite odjeljak "Section InputClass" s "Identifier libinput touchpad catchall" na sljedeći način:

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

To uzrokuje okretanje dodirne površine.

Konačno, umetnite podjelu dodirnog sučelja u 2 jednaka dijela na kraju datoteke /home/pi/.profile, tako da se učitava svaki put kada se sustav pokrene.

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