Recientemente tuve que desarrollar una aplicación (sistema de quiosco) para/sobre una Raspberry Pi 4. Lo especial de esto era que 2 monitores táctiles debían conectarse a través de HDMI, que tenía que girarse 90 grados hacia la derecha. Así que formatos verticales, 2 monitores uno encima del otro.
Girar la pantalla y organizarla una encima de la otra no causó ningún problema, ya que esto es fácilmente posible a través de la interfaz de usuario: se instaló un "Raspbian Buster con escritorio y software recomendado".
Para hacer esto, en el menú "Raspberry -> Preferences -> Screen Configuration", gire los dos monitores HDMI hacia la derecha, colóquelos uno encima del otro y luego guarde la configuración.
El problema con esto es que la configuración táctil no se gira automáticamente, se organiza una encima de la otra y da como resultado una gran área táctil en 2 monitores.
Para que el comportamiento táctil funcione correctamente, es necesario ajustar 2 archivos de configuración: /usr/share/X11/xorg.conf.d/40-libinput.conf y /home/pi/.profile.

Primero debe leer los ID de los monitores conectados. Para ello, abra un terminal y utilice el comando

xinput list

entrada. Como resultado, obtiene los monitores conectados listados con los ID correspondientes. En mi caso, los monitores tenían identificadores 6 y 7.

Luego, en el archivo /usr/share/X11/xorg.conf.d/40-libinput.conf ajuste la sección "Section InputClass" con el "Identificador libinput touchpad catchall" de la siguiente manera:

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

Esto hace que la superficie táctil gire.

Finalmente, inserte la subdivisión de la interfaz táctil en 2 partes iguales al final del archivo /home/pi/.profile, de modo que se cargue cada vez que se inicie el sistema.

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
Walter Prechtl

Walter Prechtl

Actualizado en: 06. March 2024
Tiempo de lectura: 3 minutos