Raspberry Pi 4 érintőképernyős monitor forgatása

Nemrég egy alkalmazást (kioszk rendszert) kellett fejlesztenem egy Raspberry Pi 4-hez/-re. A különlegesség az volt, hogy 2 érintőképernyős monitort kellett csatlakoztatni HDMI-n keresztül, amelyeket 90 fokkal jobbra kellett forgatni. Tehát portré formátumok, 2 monitor egymás tetején.
A képernyő elforgatása és egymásra rendezése nem okozott problémát, mivel ez könnyen lehetséges a felhasználói felületen keresztül - egy "Raspbian Buster asztali és ajánlott szoftverrel" került telepítésre.
Ehhez a "Raspberry -> beállítások -> képernyőkonfiguráció" menüben fordítsa jobbra a két HDMI-monitort, rendezze őket egymásra, majd mentse el a beállításokat.
A probléma ezzel az, hogy az érintéses konfiguráció nem forog el automatikusan, egymásra rendezve, és nagy érintési területet eredményez 2 monitoron.
Ahhoz, hogy az érintés viselkedése megfelelően működjön, 2 konfigurációs fájlt - /usr/share/X11/xorg.conf.d/40-libinput.conf és /home/pi/.profile - kell beállítani.

Először ki kell olvasnia a csatlakoztatott monitorok azonosítóit. Ehhez nyisson meg egy terminált, és használja a parancsot

xinput list

Bemenet. Ennek eredményeképpen a csatlakoztatott monitorok a megfelelő azonosítókkal jelennek meg. Az én esetemben a monitorok 6-os és 7-es azonosítóval rendelkeztek.

Ezután a /usr/share/X11/xorg.conf.d/40-libinput.conf állományban állítsuk be a "Section InputClass" szakaszt az "Identifier libinput touchpad catchall" paranccsal az alábbiak szerint:

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

Ez az érintőfelület elfordulását okozza.

Végül helyezze be az érintőfelület felosztását 2 egyenlő részre a /home/pi/.profile fájl végén, hogy a rendszer minden indításakor betöltődik.

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