#!/bin/bash # Disable keyring prompts export GNOME_KEYRING_CONTROL="" export DISPLAY=:0 # Force X11 instead of Wayland for better fullscreen support export GDK_BACKEND=x11 unset WAYLAND_DISPLAY # Wait for display and desktop environment to be ready # Check if DISPLAY is accessible (wait up to 30 seconds) for i in {1..60}; do if xset q >/dev/null 2>&1 || [ -n "$DISPLAY" ]; then # Wait for desktop environment to be fully loaded if pgrep -x pcmanfm >/dev/null 2>&1 || pgrep -x lxsession >/dev/null 2>&1 || pgrep -x xfdesktop >/dev/null 2>&1; then break fi fi sleep 0.5 done # Additional delay to ensure window manager is fully ready sleep 5 # Start Chromium with flags to avoid keyring and ensure proper fullscreen # Force X11 platform and add fullscreen-related flags # Fullscreen mode (current active) /usr/bin/chromium --start-fullscreen --noerrdialogs --disable-infobars --disable-session-crashed-bubble --disable-restore-session-state --no-first-run --password-store=basic --use-mock-keychain --ozone-platform=x11 --disable-features=UseChromeOSDirectVideoDecoder --app=http://127.0.0.1:8080 & # Wait for Chromium window to appear and then force fullscreen sleep 3 # Try to find Chromium window and force it to fullscreen for i in {1..10}; do WINDOW_ID=$(wmctrl -l 2>/dev/null | grep -i chromium | head -1 | awk '{print $1}') if [ -n "$WINDOW_ID" ]; then wmctrl -i -r "$WINDOW_ID" -b add,fullscreen 2>/dev/null break fi sleep 0.5 done # Keep script running wait # Kiosk mode (commented out - uncomment to use instead of fullscreen) # /usr/bin/chromium --kiosk --noerrdialogs --disable-infobars --disable-session-crashed-bubble --disable-restore-session-state --no-first-run --password-store=basic --use-mock-keychain --ozone-platform=x11 --app=http://127.0.0.1:8080