Raspberry Pi 4 dotykový monitor Otočit

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