Kiosko en Raspberry

Un "Kiosko", "Kiosco" o "Quiosco" es un ordenador o terminal informática situada en un espacio público que permite a los usuarios una cantidad controlada de interacción con dicha terminal. Un ejemplo común de Quiosco serían las pantallas que muestran información sobre los vuelos en los aeropuertos o las pantallas táctiles en los cines que te permiten comprar tickets a las películas, o las pantallas donde haces tus pedidos en los restaurantes de comida rápida.
Proceso de Instalación en RaspBerry
Entorno de trabajo utilizado
- Raspberry Pi 4.
- Raspberry Pi OS (Debian 12, bookworm) 64-bits.
- Wayland.
- Chromium.
Prerrequisitos
- Sistema operativo base instalado y funcionando correctamente.
- SSH configurado.
- Una pantalla para visualizar el quiosco.
Proceso
- Accedemos a la Raspberry mediante SSH.
- Instalamos wtype, un software que nos permite simular actividad con el teclado.
- sudo apt install wtype
- Cambiamos la configuración de inicio de sesión para que el dispositivo haga "Autologin", es decir, inicie el usuario automáticamente.
- sudo raspi-config
- Para navegar el menú usamos las flechas del teclado y la tecla "Enter" para seleccionar la opción.
- System Options > Boot > Auto Login > Desktop Autologin: Desktop GUI, automatically logged in as '<usuario>' user.
- Pulsamos enter > "Finish" y reiniciamos cuando nos pregunte. Ahora iniciará automáticamente.
- sudo raspi-config
- Ahora, configuraremos la Raspberry para enseñar en modo quiosco lo que queremos y cómo lo queremos. Para esto editaremos el archivo .config/wayfire.ini. Este documento sirve para modificar la apariencia y comportamiento de Wayfire, el sistema que se usa para procesar el escritorio en Raspberry Pi OS.
- sudo nano .config/wayfire.ini
- Buscamos la sección [autostart], que debería verse como esto:
- En caso de que no estuviera, lo creamos.
[autostart]
panel = wfrespawn wf-panel-pi
background = wfrespawn pcmanfm --desktop --profile LXDE-pi
xdg-autostart = lxsession-xdg-autostart
- En caso de que no estuviera, lo creamos.
- Agregamos las siguientes líneas:
chromium = chromium-browser <url que queremos mostrar> --kiosk --noerrdialogs --disable-infobars --no-first-run --ozone-platform=wayland --enable-features=OverlayScrollbar --start-maximized
switchtab = bash ~/switchtab.sh
screensaver = false
dpms = false- Podemos poner tantas urls como queramos mostrar, separadas por espacios y entre comillas en caso de que tuviesen espacios en blanco dentro de su definición.
- Definición de parámetros
- --kiosk: le indica a Chromium que funcionará en modo quisco.
- --noerrdialogs: evita que se muestren mensajes de error.
- --disable-infobars: quita la barra superior del navegador.
- --no-first-run: deshabilita el proceso de configuración inicial del navegador.
- --ozone-platform=wayland: establece una versión de Wayland compatible con la plataforma Ozone.
- --enable-features=OverlayScroolbar: activa la barra de desplazamiento solo cuando es necesario y en modo overlay.
- --start-maximized: inicia el navegador en pantalla completa.
- La línea "switchtab = bash ~/switchtab.sh" hace referencia a un script que definiremos a continuación y se encargará de cambiar entre pestañas cada 10 segundos.
- Definición de parámetros
- Podemos poner tantas urls como queramos mostrar, separadas por espacios y entre comillas en caso de que tuviesen espacios en blanco dentro de su definición.
- Creamos el script que se encarga de cambiar entre pestañas.
- nano ~/switchtab.sh
- Contenido:
!bin/bash
#Encuentra el PID de chromium
chromium_pid=$(pgrep chromium | head -1)
#Comprueba que chromium está activo
while [ [ -z $chromium_pid ]]; do
echo "Chromium browser is not running yet."
sleep 5
chromium_pid=$(pgrep chromium | head -1)
done
echo "Chromium browser process ID: $chromium_pid"
export XDG_RUNTIME_DIR=/run/user/1000
#Bucle para enviar actividad de teclado:
while true; do
#Envía Ctrl+Tab y F5 usando`wtype`
wtype -M ctrl -P Tab
wtype -P F5
#Envía Ctrl+Tab y F5 usando `wtype`
wtype -m ctrl -p Tab
wtype -p F5
sleep 10
done - Guardamos y reiniciamos la Raspberry
Deshabilitar el puntero del ratón
Dentro de Wayland no tenemos una forma nativa para hacerlo como en x11, de forma que simplemente lo que haremos será deshabilitar el icono que se utiliza para el puntero. Para ello accedemos a la ruta /usr/share/icons/PiXflat/cursors/.
- Seguidamente utilizaremos el comando mv left_ptr left_ptr.remove
De esta forma el sistema ya no encontrará el fichero "left_ptr" y no mostrará ningún puntero. En vez de "remove" puedes poner cualquier cosa. Lo único que estamos haciendo es renombrarlo.