Raspberry Pi 4 Touch Monitor draai

Onlangs moes ek 'n toepassing (kioskstelsel) vir/op 'n Raspberry Pi 4 ontwikkel. Die spesiale ding daaraan was dat 2 aanraakmonitors via HDMI gekoppel moes word, wat 90 grade na regs gedraai moes word. Dus portretformate, 2 monitors bo-op mekaar.
Om die skerm te draai en dit bo-op mekaar te rangskik, het geen probleme veroorsaak nie, aangesien dit maklik moontlik is via die gebruikerskoppelvlak - 'n "Raspbian Buster met desktop en aanbevole sagteware" is geïnstalleer.
Om dit te kan doen, draai die twee HDMI-monitors in die menu "Raspberry -> Preferences -> Screen Configuration" na regs, rangskik dit bo-op mekaar en stoor dan die instellings.
Die probleem hiermee is dat die aanraakkonfigurasie nie outomaties gedraai word nie, bo-op mekaar gerangskik word en 'n groot aanraakarea oor 2 monitors tot gevolg het.
Om die aanraakgedrag behoorlik te laat werk, moet 2 konfigurasielêers - /usr/share/X11/xorg.conf.d/40-libinput.conf en /home/pi/.profile - aangepas word.

Eerstens moet u die ID's van die gekoppelde monitors lees. Om dit te doen, maak 'n terminale oop en gebruik die opdrag

xinput list

Insette. As gevolg hiervan, kry u die gekoppelde monitors wat met die ooreenstemmende ID's gelys word. In my geval het die monitors ID's 6 en 7 gehad.

Pas dan in die lêer /usr/share/X11/xorg.conf.d/40-libinput.conf die afdeling "Section InputClass" aan met die "Identifier libinput touchpad catchall" soos volg:

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

Dit veroorsaak dat die aanraakoppervlak draai.

Plaas laastens die onderverdeling van die aanraakkoppelvlak in 2 gelyke dele aan die einde van die lêer /home/pi/.profile, sodat dit gelaai word elke keer as die stelsel begin word.

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