kiosk.sh aktualisiert
This commit is contained in:
@@ -1,61 +1,41 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# -----------------------------
|
echo "========================================="
|
||||||
# Konfiguration
|
echo " Universal Linux Kiosk Installer"
|
||||||
# -----------------------------
|
echo " (Debian 13 / Raspberry Pi OS)"
|
||||||
|
echo "========================================="
|
||||||
|
|
||||||
USER_NAME=$(whoami)
|
USER_NAME=$(whoami)
|
||||||
HOME_DIR="/home/$USER_NAME"
|
HOME_DIR="/home/$USER_NAME"
|
||||||
KIOSK_URL="https://aow.de" # <- HIER URL ÄNDERN
|
KIOSK_URL="https://aow.de" # <<< URL ANPASSEN
|
||||||
|
|
||||||
echo "========================================="
|
|
||||||
echo " Raspberry Pi / Linux Kiosk Installer"
|
|
||||||
echo "========================================="
|
|
||||||
|
|
||||||
# -----------------------------
|
|
||||||
# Architektur prüfen
|
|
||||||
# -----------------------------
|
|
||||||
ARCH=$(dpkg --print-architecture)
|
ARCH=$(dpkg --print-architecture)
|
||||||
|
|
||||||
echo "Erkannte Architektur: $ARCH"
|
echo "Erkannte Architektur: $ARCH"
|
||||||
|
|
||||||
case "$ARCH" in
|
case "$ARCH" in
|
||||||
armhf|arm64)
|
armhf|arm64|amd64)
|
||||||
CHROMIUM_PKG="chromium-browser"
|
|
||||||
;;
|
|
||||||
amd64)
|
|
||||||
CHROMIUM_PKG="chromium"
|
CHROMIUM_PKG="chromium"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Nicht unterstützte Architektur: $ARCH"
|
echo "Nicht unterstützte Architektur!"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo "Verwende Chromium Paket: $CHROMIUM_PKG"
|
|
||||||
|
|
||||||
# -----------------------------
|
|
||||||
# Pakete installieren
|
|
||||||
# -----------------------------
|
|
||||||
echo "Installiere benötigte Pakete..."
|
echo "Installiere benötigte Pakete..."
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y $CHROMIUM_PKG xdotool unclutter
|
sudo apt install -y $CHROMIUM_PKG unclutter wmctrl xdotool
|
||||||
|
|
||||||
# Binary Pfad ermitteln
|
CHROMIUM_BIN=$(command -v chromium)
|
||||||
if command -v chromium-browser >/dev/null 2>&1; then
|
|
||||||
CHROMIUM_BIN="/usr/bin/chromium-browser"
|
if [ -z "$CHROMIUM_BIN" ]; then
|
||||||
elif command -v chromium >/dev/null 2>&1; then
|
echo "Chromium nicht gefunden!"
|
||||||
CHROMIUM_BIN="/usr/bin/chromium"
|
|
||||||
else
|
|
||||||
echo "Chromium wurde nicht gefunden!"
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Chromium Binary: $CHROMIUM_BIN"
|
echo "Chromium Binary: $CHROMIUM_BIN"
|
||||||
|
|
||||||
# -----------------------------
|
|
||||||
# kiosk.sh erstellen
|
|
||||||
# -----------------------------
|
|
||||||
echo "Erstelle kiosk.sh..."
|
echo "Erstelle kiosk.sh..."
|
||||||
|
|
||||||
cat <<EOF > $HOME_DIR/kiosk.sh
|
cat <<EOF > $HOME_DIR/kiosk.sh
|
||||||
@@ -63,7 +43,12 @@ cat <<EOF > $HOME_DIR/kiosk.sh
|
|||||||
|
|
||||||
export DISPLAY=:0
|
export DISPLAY=:0
|
||||||
|
|
||||||
# Bildschirm nie ausschalten
|
# Warten bis Netzwerk online
|
||||||
|
until ping -c1 8.8.8.8 &>/dev/null; do
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
# Bildschirm nie ausschalten (Pi + PC)
|
||||||
xset s noblank
|
xset s noblank
|
||||||
xset s off
|
xset s off
|
||||||
xset -dpms
|
xset -dpms
|
||||||
@@ -71,62 +56,59 @@ xset -dpms
|
|||||||
# Mauszeiger ausblenden
|
# Mauszeiger ausblenden
|
||||||
unclutter -idle 0.5 -root &
|
unclutter -idle 0.5 -root &
|
||||||
|
|
||||||
# Crash Status korrigieren
|
# Chromium Crash-Status fix
|
||||||
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' $HOME_DIR/.config/chromium/Default/Preferences 2>/dev/null
|
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/Default/Preferences 2>/dev/null
|
||||||
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' $HOME_DIR/.config/chromium/Default/Preferences 2>/dev/null
|
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences 2>/dev/null
|
||||||
|
|
||||||
# Chromium im Kiosk starten
|
# Chromium unter X11 erzwingen (wichtig für Debian 13 + GNOME)
|
||||||
$CHROMIUM_BIN \
|
$CHROMIUM_BIN \
|
||||||
|
--ozone-platform=x11 \
|
||||||
|
--app="$KIOSK_URL" \
|
||||||
|
--start-fullscreen \
|
||||||
|
--kiosk \
|
||||||
--noerrdialogs \
|
--noerrdialogs \
|
||||||
--disable-infobars \
|
--disable-infobars \
|
||||||
--disable-session-crashed-bubble \
|
--disable-session-crashed-bubble \
|
||||||
--kiosk "$KIOSK_URL" &
|
--disable-features=TranslateUI &
|
||||||
|
|
||||||
# Optional: Tab-Wechsel Loop
|
# Falls Window Manager zickt → Fullscreen erzwingen
|
||||||
while true; do
|
sleep 5
|
||||||
xdotool keydown ctrl+Tab
|
wmctrl -r :ACTIVE: -b add,fullscreen
|
||||||
xdotool keyup ctrl+Tab
|
|
||||||
sleep 10
|
wait
|
||||||
done
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod +x $HOME_DIR/kiosk.sh
|
chmod +x $HOME_DIR/kiosk.sh
|
||||||
|
|
||||||
# -----------------------------
|
echo "Erstelle Desktop Autostart..."
|
||||||
# systemd Service erstellen
|
|
||||||
# -----------------------------
|
|
||||||
echo "Erstelle systemd Service..."
|
|
||||||
|
|
||||||
sudo tee /etc/systemd/system/kiosk.service > /dev/null <<EOF
|
mkdir -p $HOME_DIR/.config/autostart
|
||||||
[Unit]
|
|
||||||
Description=Chromium Kiosk
|
|
||||||
After=graphical.target network-online.target
|
|
||||||
Wants=graphical.target network-online.target
|
|
||||||
|
|
||||||
[Service]
|
cat <<EOF > $HOME_DIR/.config/autostart/kiosk.desktop
|
||||||
Environment=DISPLAY=:0
|
[Desktop Entry]
|
||||||
Environment=XAUTHORITY=$HOME_DIR/.Xauthority
|
Type=Application
|
||||||
ExecStart=$HOME_DIR/kiosk.sh
|
Name=Kiosk
|
||||||
Restart=always
|
Exec=$HOME_DIR/kiosk.sh
|
||||||
RestartSec=5
|
X-GNOME-Autostart-enabled=true
|
||||||
User=$USER_NAME
|
|
||||||
Group=$USER_NAME
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=graphical.target
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# -----------------------------
|
echo ""
|
||||||
# Service aktivieren
|
|
||||||
# -----------------------------
|
|
||||||
echo "Aktiviere Service..."
|
|
||||||
|
|
||||||
sudo systemctl daemon-reexec
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl enable kiosk.service
|
|
||||||
|
|
||||||
echo "========================================="
|
echo "========================================="
|
||||||
echo "Installation abgeschlossen."
|
echo "Installation abgeschlossen."
|
||||||
echo "Bitte Neustarten:"
|
echo ""
|
||||||
|
echo "WICHTIG:"
|
||||||
|
echo ""
|
||||||
|
echo "🔹 Raspberry Pi:"
|
||||||
|
echo " sudo raspi-config"
|
||||||
|
echo " → System Options → Boot / Auto Login → Desktop Autologin"
|
||||||
|
echo ""
|
||||||
|
echo "🔹 Debian 13 (GNOME):"
|
||||||
|
echo " Einstellungen → Benutzer → Automatische Anmeldung"
|
||||||
|
echo ""
|
||||||
|
echo "🔹 Falls Wayland aktiv ist:"
|
||||||
|
echo " sudo nano /etc/gdm3/daemon.conf"
|
||||||
|
echo " WaylandEnable=false"
|
||||||
|
echo ""
|
||||||
|
echo "Danach:"
|
||||||
echo "sudo reboot"
|
echo "sudo reboot"
|
||||||
echo "========================================="
|
echo "========================================="
|
||||||
Reference in New Issue
Block a user