mirror of
https://github.com/screentinker/screentinker.git
synced 2026-06-29 09:23:16 -06:00
Fix some stuff
This commit is contained in:
parent
f47b52f21e
commit
7256fd0353
|
|
@ -253,15 +253,22 @@ fi
|
||||||
if [ "$NEED_PLAYER" = true ]; then
|
if [ "$NEED_PLAYER" = true ]; then
|
||||||
log "Installing player packages..."
|
log "Installing player packages..."
|
||||||
apt-get install -y -qq \
|
apt-get install -y -qq \
|
||||||
xserver-xorg x11-xserver-utils xinit \
|
xserver-xorg xserver-xorg-legacy x11-xserver-utils xinit \
|
||||||
chromium unclutter xdotool \
|
chromium unclutter xdotool \
|
||||||
>> "$LOG_FILE" 2>&1 || {
|
>> "$LOG_FILE" 2>&1 || {
|
||||||
warn "Failed to install chromium package, trying chromium-browser..."
|
warn "Failed to install chromium package, trying chromium-browser..."
|
||||||
apt-get install -y -qq xserver-xorg x11-xserver-utils xinit chromium-browser unclutter xdotool >> "$LOG_FILE" 2>&1
|
apt-get install -y -qq xserver-xorg xserver-xorg-legacy x11-xserver-utils xinit chromium-browser unclutter xdotool >> "$LOG_FILE" 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
CHROMIUM_BIN=$(command -v chromium 2>/dev/null || command -v chromium-browser 2>/dev/null || echo "/usr/bin/chromium")
|
CHROMIUM_BIN=$(command -v chromium 2>/dev/null || command -v chromium-browser 2>/dev/null || echo "/usr/bin/chromium")
|
||||||
|
|
||||||
|
log "Allowing non-root X server startup..."
|
||||||
|
mkdir -p /etc/X11
|
||||||
|
cat > /etc/X11/Xwrapper.config << 'XWRAPEOF'
|
||||||
|
allowed_users=anybody
|
||||||
|
needs_root_rights=yes
|
||||||
|
XWRAPEOF
|
||||||
|
|
||||||
log "Creating kiosk launcher..."
|
log "Creating kiosk launcher..."
|
||||||
cat > "$RUNTIME_HOME/screentinker-kiosk.sh" << KIOSKEOF
|
cat > "$RUNTIME_HOME/screentinker-kiosk.sh" << KIOSKEOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
@ -269,13 +276,16 @@ KIOSK_URL="${KIOSK_URL}"
|
||||||
|
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|
||||||
|
# Disable screen blanking and power management
|
||||||
xset s off
|
xset s off
|
||||||
xset s noblank
|
xset s noblank
|
||||||
xset -dpms
|
xset -dpms
|
||||||
xset s 0 0
|
xset s 0 0
|
||||||
|
|
||||||
|
# Hide cursor after 3 seconds of inactivity
|
||||||
unclutter -idle 3 -root &
|
unclutter -idle 3 -root &
|
||||||
|
|
||||||
|
# Clean Chromium crash flags (prevents restore session dialogs)
|
||||||
CDIR="\$HOME/.config/chromium/Default"
|
CDIR="\$HOME/.config/chromium/Default"
|
||||||
mkdir -p "\$CDIR"
|
mkdir -p "\$CDIR"
|
||||||
if [ -f "\$CDIR/Preferences" ]; then
|
if [ -f "\$CDIR/Preferences" ]; then
|
||||||
|
|
@ -283,11 +293,12 @@ if [ -f "\$CDIR/Preferences" ]; then
|
||||||
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' "\$CDIR/Preferences" 2>/dev/null || true
|
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' "\$CDIR/Preferences" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Wait for local server if running all-in-one
|
||||||
if echo "\$KIOSK_URL" | grep -q "localhost"; then
|
if echo "\$KIOSK_URL" | grep -q "localhost"; then
|
||||||
echo "Waiting for ScreenTinker server..."
|
echo "Waiting for ScreenTinker server..."
|
||||||
for i in \$(seq 1 30); do
|
for i in \$(seq 1 60); do
|
||||||
if curl -sf "http://localhost:${SCREENTINKER_PORT}/api/health" >/dev/null 2>&1; then
|
if curl -sf "http://localhost:${SCREENTINKER_PORT}/api/health" >/dev/null 2>&1; then
|
||||||
echo "Server ready"
|
echo "Server ready after \${i}x2s"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|
@ -355,16 +366,23 @@ XINITEOF
|
||||||
Description=ScreenTinker Kiosk Display
|
Description=ScreenTinker Kiosk Display
|
||||||
${KIOSK_AFTER}
|
${KIOSK_AFTER}
|
||||||
${KIOSK_REQ}
|
${KIOSK_REQ}
|
||||||
|
# Prevent conflicts with getty on tty1
|
||||||
|
Conflicts=getty@tty1.service
|
||||||
|
After=getty@tty1.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=${RUNTIME_USER}
|
User=${RUNTIME_USER}
|
||||||
Environment=DISPLAY=:0
|
Environment=DISPLAY=:0
|
||||||
Environment=XAUTHORITY=${RUNTIME_HOME}/.Xauthority
|
Environment=XAUTHORITY=${RUNTIME_HOME}/.Xauthority
|
||||||
|
# Remove stale X lock files from previous crashes before starting
|
||||||
|
ExecStartPre=/bin/bash -c 'rm -f /tmp/.X0-lock /tmp/.X11-unix/X0'
|
||||||
ExecStartPre=/bin/sleep 3
|
ExecStartPre=/bin/sleep 3
|
||||||
ExecStart=/usr/bin/startx ${RUNTIME_HOME}/.xinitrc -- :0 -nolisten tcp vt1
|
ExecStart=/usr/bin/startx ${RUNTIME_HOME}/.xinitrc -- :0 -nolisten tcp vt1
|
||||||
Restart=always
|
Restart=on-failure
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
|
StartLimitBurst=5
|
||||||
|
StartLimitIntervalSec=120
|
||||||
|
|
||||||
TTYPath=/dev/tty1
|
TTYPath=/dev/tty1
|
||||||
StandardInput=tty
|
StandardInput=tty
|
||||||
|
|
@ -387,6 +405,10 @@ SERVICEEOF
|
||||||
ExecStart=
|
ExecStart=
|
||||||
ExecStart=-/sbin/agetty --autologin ${RUNTIME_USER} --noclear %I \$TERM
|
ExecStart=-/sbin/agetty --autologin ${RUNTIME_USER} --noclear %I \$TERM
|
||||||
AUTOLOGINEOF
|
AUTOLOGINEOF
|
||||||
|
|
||||||
|
# Disable getty on tty1 so it doesn't conflict with the kiosk service
|
||||||
|
systemctl disable getty@tty1.service 2>/dev/null || true
|
||||||
|
systemctl mask getty@tty1.service 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$NEED_SERVER" = true ]; then
|
if [ "$NEED_SERVER" = true ]; then
|
||||||
|
|
@ -486,6 +508,14 @@ if grep -q "#RuntimeWatchdogSec=0" /etc/systemd/system.conf 2>/dev/null; then
|
||||||
log "Hardware watchdog enabled (10s)"
|
log "Hardware watchdog enabled (10s)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Disable console blanking so the screen stays on during boot
|
||||||
|
if [ -f /etc/default/grub ]; then
|
||||||
|
if ! grep -q "consoleblank=0" /etc/default/grub; then
|
||||||
|
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="\(.*\)"/GRUB_CMDLINE_LINUX_DEFAULT="\1 consoleblank=0"/' /etc/default/grub
|
||||||
|
update-grub >> "$LOG_FILE" 2>&1 && log "Console blanking disabled in GRUB" || warn "update-grub failed (non-fatal)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${GREEN}======================================${NC}"
|
echo -e "${GREEN}======================================${NC}"
|
||||||
echo -e "${GREEN} ScreenTinker Setup Complete!${NC}"
|
echo -e "${GREEN} ScreenTinker Setup Complete!${NC}"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue