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