Files
fluffy-pancake/build/21-greetd.sh
T

59 lines
2.5 KiB
Bash
Raw Normal View History

#!/usr/bin/bash
set -eoux pipefail
###############################################################################
# Transaction: Login-Stack (greetd + tuigreet-Fallback + Noctalia-Greeter)
###############################################################################
# - greetd ist der Display-Manager (leicht, Wayland-nativ).
# - noctalia-greeter (aus Terra, siehe 10-repos.sh) ist die Login-UI in
# Noctalia-Optik. Braucht ZWINGEND greetd als Unterbau.
# - tuigreet bleibt als sparsamer Fallback, falls der grafische Greeter
# je streikt (in /etc/greetd/config.toml per Kommentar umschaltbar).
###############################################################################
echo "Installing login stack (greetd + Noctalia greeter)..."
# greetd + D-Bus + polkit sind harte Voraussetzungen des Noctalia-Greeters
# (https://docs.noctalia.dev/greeter/installation/) und werden hier explizit
# installiert statt von der Basis vorausgesetzt.
dnf5 install -y \
--allowerasing \
greetd \
greetd-selinux \
dbus-daemon \
polkit \
tuigreet \
noctalia-greeter
dnf5 clean all
# accounts-daemon: liefert User-Avatare auf dem Login-Screen.
systemctl enable accounts-daemon.service
2026-09-27 13:21:20 +02:00
# System-Setup des Greeters: richtet u.a. /etc/pam.d/greetd ein.
# Pfad laut PACKAGING.md: share/noctalia-greeter/setup_greeter_system.sh
if [[ -x /usr/share/noctalia-greeter/setup_greeter_system.sh ]]; then
/usr/share/noctalia-greeter/setup_greeter_system.sh || true
else
echo "WARN: setup_greeter_system.sh nicht gefunden - Greeter-State wird erst beim Boot angelegt"
fi
2026-09-27 13:21:20 +02:00
# bootc-Hygiene: /var-Inhalte aus dem Build werden beim Deployment verworfen
# und wuerden nur den var-tmpfiles-Lint triggern. Die /etc-Anteile des Setups
# (PAM) bleiben erhalten; /var/lib/noctalia-greeter wird zur Laufzeit via
# tmpfiles.d angelegt (Paket-eigen + unsere Seed-Regel).
rm -rf /var/lib/noctalia-greeter
2026-09-27 14:20:31 +02:00
# Terra nach der Installation wieder entfernen: Der Greeter ist das einzige
# Paket von dort (includepkgs in 10-repos.sh), Updates kommen ueber
# Image-Rebuilds (Atomic-Prinzip: kein dnf-Upgrade einzelner Pakete).
# So sieht weder ein spaeterer Layer noch BIB-Depsolve noch das laufende
# System das Dritt-Repo je wieder (keine CDN-Hickups, kein Shadowing).
rm -f /etc/yum.repos.d/terra*.repo
dnf5 clean all
# Alte Display-Manager explizit aus (zwei DMs = Blackscreen).
# Auf fedora-bootc-Basis existieren sie i.d.R. nicht -> Fehler tolerieren.
systemctl disable sddm.service gdm.service lightdm.service 2>/dev/null || true
systemctl enable greetd.service
systemctl set-default graphical.target || true