Raspberry Pi 4 kosketusnäytön kierto

Äskettäin minun piti kehittää sovellus (kioskijärjestelmä) Raspberry Pi 4: lle. Erityistä siinä oli, että 2 kosketusnäyttöä oli tarkoitus liittää HDMI: n kautta, jota oli käännettävä 90 astetta oikealle. Joten muotokuvamuodot, 2 näyttöä päällekkäin.
Näytön kääntäminen ja järjestäminen päällekkäin ei aiheuttanut ongelmia, koska tämä on helposti mahdollista käyttöliittymän kautta - asennettiin "Raspbian Buster työpöydällä ja suositellulla ohjelmistolla".
Voit tehdä tämän kääntämällä "Vadelma -> Asetukset -> Näytön kokoonpano" -valikossa kaksi HDMI-näyttöä oikealle, järjestämällä ne päällekkäin ja tallentamalla sitten asetukset.
Tämän ongelmana on, että kosketuskokoonpanoa ei käännetä automaattisesti, järjestetä päällekkäin ja tuloksena on suuri kosketusalue 2 näytön yli.
Jotta kosketuskäyttäytyminen toimisi oikein, on säädettävä 2 määritystiedostoa - /usr/share/X11/xorg.conf.d/40-libinput.conf ja /home/pi/.profile.

Ensin sinun on luettava liitettyjen näyttöjen tunnukset. Voit tehdä tämän avaamalla päätelaitteen ja käyttämällä komentoa

xinput list

tulo. Tämän seurauksena kytketyt näytöt luetellaan vastaavilla tunnuksilla. Minun tapauksessani monitoreilla oli tunnukset 6 ja 7.

Säädä sitten tiedostossa /usr/share/X11/xorg.conf.d/40-libinput.conf osiota "Section InputClass" ja "Identifier libinput touchpad catchall" seuraavasti:

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

Tämä aiheuttaa kosketuspinnan pyörimisen.

Aseta lopuksi kosketusrajapinnan alajako 2 yhtä suureen osaan tiedoston /home/pi/.profile loppuun niin, että se ladataan aina, kun järjestelmä käynnistetään.

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