feat: switch kiosk autostart from terminal installer to Epiphany browser kiosk
Replaces the gnome-terminal-launched installer.sh session with a browser-based kiosk (opt/tuxflotte/kiosk/start-kiosk.sh launching Epiphany with --profile). Sets German keyboard layout for the graphical session (vconsole.keymap only covers the text console), suppresses Epiphany's default-browser prompt, hides desktop icons, and reduces the panel to a window list + power applet. Also disables the SELinux troubleshooter desktop notification, and copies the full live-updates tree (not just etc/) so opt/ payload ships too. Several Epiphany invocation modes were tried and discarded before landing on plain --profile=<dir> (see ADR-0004/0006 and platform-docs history for the rejected --application-mode/--private-instance paths). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
1e83a27a57
commit
50e41e2230
4
live-updates/etc/xdg/autostart/sealertauto.desktop
Normal file
4
live-updates/etc/xdg/autostart/sealertauto.desktop
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=SELinux Troubleshooter Notifier
|
||||||
|
Hidden=true
|
||||||
@ -1,6 +1,6 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=Tuxflotte Provisioning
|
Name=Tuxflotte Provisioning
|
||||||
Exec=gnome-terminal --title="Tuxflotte Provisioning" -- bash -c 'sudo /opt/tuxflotte/scripts/installer.sh; rc=$?; echo; echo "--- installer.sh beendet (Exit-Code: $rc) ---"; exec bash'
|
Exec=/opt/tuxflotte/kiosk/start-kiosk.sh
|
||||||
X-GNOME-Autostart-enabled=true
|
X-GNOME-Autostart-enabled=true
|
||||||
NoDisplay=true
|
NoDisplay=true
|
||||||
|
|||||||
33
live-updates/opt/tuxflotte/kiosk/index.html
Normal file
33
live-updates/opt/tuxflotte/kiosk/index.html
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Tuxflotte Provisioning</title>
|
||||||
|
<style>
|
||||||
|
html, body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: #ffffff;
|
||||||
|
color: #3465a4;
|
||||||
|
font-family: sans-serif;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
max-width: 60%;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<img src="logo.svg" alt="Tuxflotte">
|
||||||
|
<p>Kiosk-Oberfläche in Entwicklung.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
179
live-updates/opt/tuxflotte/kiosk/logo.svg
Normal file
179
live-updates/opt/tuxflotte/kiosk/logo.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 77 KiB |
33
live-updates/opt/tuxflotte/kiosk/start-kiosk.sh
Executable file
33
live-updates/opt/tuxflotte/kiosk/start-kiosk.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# German keyboard layout for the graphical session (vconsole.keymap=de on the
|
||||||
|
# kernel cmdline only covers the text console, not X11/Wayland input). Cinnamon
|
||||||
|
# ships its own parallel org.cinnamon.desktop.input-sources schema, separate
|
||||||
|
# from GNOME's org.gnome.desktop.input-sources — writing org.gnome alone had
|
||||||
|
# no effect (confirmed on real hardware), so both are set here.
|
||||||
|
dconf write /org/cinnamon/desktop/input-sources/sources "[('xkb', 'de')]"
|
||||||
|
dconf write /org/gnome/desktop/input-sources/sources "[('xkb', 'de')]"
|
||||||
|
|
||||||
|
# Suppresses Epiphany's "set as default browser?" first-run prompt (schema
|
||||||
|
# default is true, see /usr/share/glib-2.0/schemas/org.gnome.epiphany.gschema.xml).
|
||||||
|
dconf write /org/gnome/epiphany/ask-for-default false
|
||||||
|
|
||||||
|
# Kiosk cleanup: no desktop icons (Nemo). The panel itself is kept (removing
|
||||||
|
# the last panel via panels-enabled triggers Cinnamon's own "you don't have
|
||||||
|
# any panels, open panel settings?" confirmation dialog — hardcoded in
|
||||||
|
# js/ui/panel.js, no way to suppress it, so panels-enabled is deliberately
|
||||||
|
# left untouched). Instead, only the two useful applets are kept: a window
|
||||||
|
# list (to restore Epiphany if a user minimizes it) and power (shutdown/
|
||||||
|
# reboot) — everything else (menu, systray, clock, workspace switcher etc.)
|
||||||
|
# is removed. Deliberately the classic window-list@cinnamon.org, not
|
||||||
|
# grouped-window-list@cinnamon.org: the grouped variant ships default
|
||||||
|
# "pinned apps" launchers (firefox.desktop, org.gnome.Terminal.desktop,
|
||||||
|
# nemo.desktop — confirmed via its settings-schema.json) that showed up in
|
||||||
|
# the panel even with unrelated applets removed. Plain window-list has no
|
||||||
|
# pinned-apps concept at all, only ever shows actually open windows.
|
||||||
|
dconf write /org/nemo/desktop/show-desktop-icons false
|
||||||
|
dconf write /org/cinnamon/enabled-applets "['panel1:left:0:window-list@cinnamon.org:1', 'panel1:right:0:power@cinnamon.org:2']"
|
||||||
|
|
||||||
|
mkdir -p /home/liveuser/.local/share/tuxflotte-kiosk
|
||||||
|
exec epiphany --profile=/home/liveuser/.local/share/tuxflotte-kiosk file:///opt/tuxflotte/kiosk/index.html
|
||||||
@ -72,7 +72,7 @@ prepare_updates() {
|
|||||||
rm -rf "$updates_dir"
|
rm -rf "$updates_dir"
|
||||||
mkdir -p "$updates_dir/opt/tuxflotte"
|
mkdir -p "$updates_dir/opt/tuxflotte"
|
||||||
|
|
||||||
cp -a "$REPO_DIR/live-updates/etc" "$updates_dir/"
|
cp -a "$REPO_DIR/live-updates/." "$updates_dir/"
|
||||||
cp -a "$REPO_DIR/scripts" "$updates_dir/opt/tuxflotte/"
|
cp -a "$REPO_DIR/scripts" "$updates_dir/opt/tuxflotte/"
|
||||||
cp -a "$REPO_DIR/backends" "$updates_dir/opt/tuxflotte/"
|
cp -a "$REPO_DIR/backends" "$updates_dir/opt/tuxflotte/"
|
||||||
cp -a "$REPO_DIR/config" "$updates_dir/opt/tuxflotte/"
|
cp -a "$REPO_DIR/config" "$updates_dir/opt/tuxflotte/"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user