Nedávno som musel vyvinúť aplikáciu (kioskový systém) pre / na Raspberry Pi 4. Zvláštnosťou bolo, že 2 dotykové monitory mali byť pripojené cez HDMI, ktoré museli byť otočené o 90 stupňov doprava. Takže formáty na výšku, 2 monitory na sebe.
Otáčanie obrazovky a jej usporiadanie na seba nespôsobilo žiadne problémy, pretože je to ľahko možné prostredníctvom používateľského rozhrania - bol nainštalovaný "Raspbian Buster s pracovnou plochou a odporúčaným softvérom".
Ak to chcete urobiť, v ponuke "Raspberry -> Preferences -> Screen Configuration" otočte dva monitory HDMI doprava, usporiadajte ich nad seba a potom uložte nastavenia.
Problém je v tom, že dotyková konfigurácia sa automaticky neotáča, nie je usporiadaná na seba a výsledkom je veľká dotyková plocha na 2 monitoroch.
Aby dotykové správanie fungovalo správne, je potrebné upraviť 2 konfiguračné súbory - /usr/share/X11/xorg.conf.d/40-libinput.conf a /home/pi/.profile.
Najprv musíte prečítať ID pripojených monitorov. Ak to chcete urobiť, otvorte terminál a použite príkaz
xinput list
vstup. V dôsledku toho získate pripojené monitory uvedené s príslušnými ID. V mojom prípade mali monitory ID 6 a 7.
Potom v súbore /usr/share/X11/xorg.conf.d/40-libinput.conf upravte sekciu "Section InputClass" pomocou "Identifier libinput touchpad catchall" nasledovne:
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
To spôsobí otáčanie dotykového povrchu.
Nakoniec vložte rozdelenie dotykového rozhrania na 2 rovnaké časti na konci súboru /home/pi/.profile, aby sa načítal pri každom spustení systému.
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