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