Raspberry Pi 4 Touch Monitor Girar

Recentemente tive que desenvolver um aplicativo (sistema de quiosque) para/em um Raspberry Pi 4. O especial era que 2 monitores de toque deveriam ser conectados via HDMI, que tinha que ser girado 90 graus para a direita. Então, formatos retrato, 2 monitores um em cima do outro.
Girar a tela e organizá-la em cima uma da outra não causou problemas, pois isso é facilmente possível através da interface do usuário - um "Raspbian Buster com desktop e software recomendado" foi instalado.
Para fazer isso, no menu "Raspberry -> Preferences -> Screen Configuration", vire os dois monitores HDMI para a direita, organize-os um sobre o outro e salve as configurações.
O problema com isso é que a configuração de toque não é girada automaticamente, organizada uma sobre a outra e resulta em uma grande área de toque sobre 2 monitores.
Para que o comportamento de toque funcione corretamente, 2 arquivos de configuração - /usr/share/X11/xorg.conf.d/40-libinput.conf e /home/pi/.profile - precisam ser ajustados.

Primeiro você tem que ler os IDs dos monitores conectados. Para fazer isso, abra um terminal e use o comando

xinput list

entrada. Como resultado, você obtém os monitores conectados listados com os IDs correspondentes. No meu caso, os monitores tinham IDs 6 e 7.

Em seguida, no arquivo /usr/share/X11/xorg.conf.d/40-libinput.conf ajuste a seção "Section InputClass" com o "Identificador libinput touchpad catchall" da seguinte maneira:

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

Isso faz com que a superfície de toque gire.

Finalmente, insira a subdivisão da interface de toque em 2 partes iguais no final do arquivo /home/pi/.profile, para que ele seja carregado toda vez que o sistema for iniciado.

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