Ä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