Nedávno jsem musel vyvinout aplikaci (kioskový systém) pro/na Raspberry Pi 4. Zvláštností bylo, že 2 dotykové monitory měly být připojeny přes HDMI, které se musely otočit o 90 stupňů doprava. Takže formáty na výšku, 2 monitory nad sebou.
Otáčení obrazovky a její uspořádání na sebe nezpůsobilo žádné problémy, protože je to snadno možné prostřednictvím uživatelského rozhraní - byl nainstalován "Raspbian Buster s pracovní plochou a doporučeným softwarem".
Chcete-li to provést, v nabídce "Malina > Předvolby -> Konfigurace obrazovky" otočte dva monitory HDMI doprava, uspořádejte je na sebe a poté uložte nastavení.
Problém je v tom, že dotyková konfigurace není automaticky otočena, uspořádána na sebe a výsledkem je velká dotyková plocha na 2 monitorech.
Aby dotykové chování fungovalo správně, je třeba upravit 2 konfigurační soubory - /usr/share/X11/xorg.conf.d/40-libinput.conf a /home/pi/.profile.
Nejprve musíte přečíst ID připojených monitorů. Chcete-li to provést, otevřete terminál a použijte příkaz
xinput list
vstup. V důsledku toho získáte připojené monitory uvedené s odpovídajícími ID. V mém případě měly monitory ID 6 a 7.
Pak v souboru /usr/share/X11/xorg.conf.d/40-libinput.conf upravte sekci "Section InputClass" s "Identifier libinput touchpad catchall" takto:
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 způsobí, že se dotykový povrch otáčí.
Nakonec vložte rozdělení dotykového rozhraní na 2 stejné části na konci souboru /home/pi/.profile, aby se načetlo při každém spuštění 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