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