From 7b7789fbfa27026858caf30e567cc727878bacba Mon Sep 17 00:00:00 2001
From: humocs-man <251756307+humocs-man@users.noreply.github.com>
Date: Sun, 27 Sep 2026 21:41:07 +0200
Subject: [PATCH] fixed several configs and missing packages, added plymouth
---
Containerfile | 14 ++++++++
build/20-desktop-labwc.sh | 34 +++++++++++++++++---
build/21-greetd.sh | 9 +++++-
build/22-noctalia.sh | 18 ++++-------
build/23-plymouth.sh | 31 ++++++++++++++++++
build/plymouth-theme/fluffy.plymouth | 8 +++++
build/plymouth-theme/fluffy.script | 28 ++++++++++++++++
configs/flatpak-preinstall.service | 7 +++-
configs/fontconfig/60-fluffy-noto.conf | 15 +++++++++
configs/kargs-plymouth.toml | 4 +++
configs/skel/.config/labwc/environment | 3 ++
configs/skel/.config/labwc/rc.xml | 29 +++++++++++++++++
configs/skel/.config/mimeapps.list | 4 +++
configs/skel/.config/noctalia/shell.toml | 4 +++
configs/skel/.config/noctalia/templates.toml | 5 +++
configs/skel/.config/noctalia/wallpaper.toml | 7 ++++
scripts/seed-labwc-skel.sh | 13 +-------
17 files changed, 204 insertions(+), 29 deletions(-)
create mode 100644 build/23-plymouth.sh
create mode 100644 build/plymouth-theme/fluffy.plymouth
create mode 100644 build/plymouth-theme/fluffy.script
create mode 100644 configs/fontconfig/60-fluffy-noto.conf
create mode 100644 configs/kargs-plymouth.toml
create mode 100644 configs/skel/.config/noctalia/wallpaper.toml
diff --git a/Containerfile b/Containerfile
index 91a48bf..8e93e48 100644
--- a/Containerfile
+++ b/Containerfile
@@ -73,6 +73,14 @@ RUN --mount=type=bind,from=build-ctx,source=/build/22-noctalia.sh,target=/tmp/22
--mount=type=tmpfs,dst=/tmp \
bash /tmp/22-noctalia.sh
+# LAYER 2e: Plymouth Bootsplash (Text-Theme + Initramfs-Rebuild)
+RUN --mount=type=bind,from=build-ctx,source=/build/23-plymouth.sh,target=/tmp/23-plymouth.sh \
+ --mount=type=bind,from=build-ctx,source=/build/plymouth-theme,target=/tmp/plymouth-theme \
+ --mount=type=cache,dst=/var/cache \
+ --mount=type=cache,dst=/var/log \
+ --mount=type=tmpfs,dst=/tmp \
+ bash /tmp/23-plymouth.sh
+
# LAYER 3: Virtualisierung & Tools (Großer Download - stark gecacht)
RUN --mount=type=bind,from=build-ctx,source=/build/30-virt.sh,target=/tmp/30-virt.sh \
--mount=type=cache,dst=/var/cache \
@@ -116,6 +124,9 @@ COPY configs/bootc-timer-override.conf /usr/lib/systemd/system/bootc-fetch-apply
COPY configs/bootc-override.conf /usr/lib/systemd/system/bootc-fetch-apply-updates.service.d/override.conf
COPY configs/remount-fs-ostree-skip.conf /usr/lib/systemd/system/systemd-remount-fs.service.d/skip-on-ostree.conf
+# 2b. Kernel-Args (Bootsplash: rhgb quiet)
+COPY configs/kargs-plymouth.toml /usr/lib/bootc/kargs.d/plymouth.toml
+
# 3. Kopiere die Session-Helfer und Desktop-Defaults
COPY --chmod=755 scripts/notify-bootc-user.sh /usr/bin/
COPY --chmod=755 scripts/kanshi-autoconfig /usr/bin/kanshi-autoconfig
@@ -127,6 +138,9 @@ COPY configs/skel/ /etc/skel/
# Wayland-Session fuer Display-Manager (Greeter-Auswahl)
COPY configs/wayland-sessions/labwc.desktop /usr/share/wayland-sessions/labwc.desktop
+# Fontconfig-Defaults (Noto statt DejaVu)
+COPY configs/fontconfig/60-fluffy-noto.conf /usr/share/fontconfig/conf.d/60-fluffy-noto.conf
+
# greetd-Konfiguration (Noctalia-Greeter + tuigreet-Fallback dokumentiert)
COPY configs/greetd/config.toml /etc/greetd/config.toml
diff --git a/build/20-desktop-labwc.sh b/build/20-desktop-labwc.sh
index 871703e..bcbaa74 100755
--- a/build/20-desktop-labwc.sh
+++ b/build/20-desktop-labwc.sh
@@ -39,13 +39,30 @@ dnf5 install -y \
accountsservice \
google-noto-sans-fonts \
google-noto-sans-mono-fonts \
+ google-noto-color-emoji-fonts \
+ glibc-langpack-de \
+ adwaita-icon-theme \
+ adwaita-cursor-theme \
+ gnome-keyring \
+ libsecret \
+ thunar \
+ thunar-volman \
+ thunar-archive-plugin \
+ file-roller \
+ tumbler \
+ gvfs \
+ firewalld \
+ firewall-config \
+ nss-mdns \
wdisplays \
brightnessctl \
swaylock \
- thunar \
- thunar-volman \
- tumbler \
- gvfs
+ playerctl \
+ evince \
+ loupe \
+ gnome-text-editor \
+ seahorse \
+ cups-browsed
# Optionale Pakete (duerfen fehlen -> --skip-unavailable, eigener Aufruf,
# damit ein fehlendes Optionales den Kern nicht zu Fall bringt)
@@ -66,10 +83,19 @@ systemctl --global enable pipewire.socket pipewire-pulse.socket wireplumber.serv
# Bluetooth-Daemon (System-Service, kein --global)
systemctl enable bluetooth.service
+# Thunderbolt-Dock-Autorisierung (ohne boltd bleibt das Dock stumm)
+systemctl enable bolt.service
+
# Drucken per Socket-Activation (Fedora-Standard: cups.socket statt Service)
systemctl enable cups.socket
+# Netzwerkdrucker automatisch als Warteschlangen anlegen
+systemctl enable cups-browsed.service
+
# mDNS-Discovery (Netzwerkdrucker finden, .local-Aufloesung)
systemctl enable avahi-daemon.socket
+# Firewall (Laptop!) per Default an
+systemctl enable firewalld.service
+
dnf5 clean all
diff --git a/build/21-greetd.sh b/build/21-greetd.sh
index dc7ecca..c89b91e 100755
--- a/build/21-greetd.sh
+++ b/build/21-greetd.sh
@@ -22,10 +22,17 @@ dnf5 install -y \
dbus-daemon \
polkit \
tuigreet \
- noctalia-greeter
+ noctalia-greeter \
+ fprintd
dnf5 clean all
+# Fingerprint (Framework u.a.): System-Auth per authselect erweitern, damit
+# sudo/Polkit/login-Pfade Finger anbieten (nach fprintd-enroll auf Hardware).
+# Greeter-PAM (/etc/pam.d/greetd) bewusst NICHT angefasst: Feinschliff erst
+# auf echter Hardware mit Reader testbar, kein VM-Test moeglich.
+authselect enable-feature with-fingerprint || echo "WARN: with-fingerprint nicht aktivierbar - auf Hardware pruefen"
+
# accounts-daemon: liefert User-Avatare auf dem Login-Screen.
systemctl enable accounts-daemon.service
diff --git a/build/22-noctalia.sh b/build/22-noctalia.sh
index 0986c94..1542854 100755
--- a/build/22-noctalia.sh
+++ b/build/22-noctalia.sh
@@ -39,25 +39,21 @@ dnf5 install -y \
f${FEDORA_VERSION}-backgrounds \
fedora-workstation-backgrounds
-# Standard-Wallpaper fuer ~/Pictures neuer Benutzer (Noctalias Picker zeigt
-# das XDG-Bilderverzeichnis; ohne Inhalt bleibt er leer). Fedora-eigene
-# Motive (Defaults aller Desktops + Supplemental-Pool, offen lizenziert),
-# deterministisch umbenannt. Vollauswahl bleibt zusaetzlich unter
-# /usr/share/backgrounds (Picker-Verzeichnis dorthin umstellbar).
-mkdir -p /etc/skel/Pictures
+# Flacher Wallpaper-Pool fuer Noctalias Picker (der ist NICHT rekursiv und
+# sieht Unterordner unter /usr/share/backgrounds nicht). Symlinks statt
+# Kopien: null Mehrbytes im Image. Deterministisch benannt, vollstaendig.
+mkdir -p /usr/share/noctalia-wallpapers
i=0
while IFS= read -r img; do
i=$((i + 1))
- if [ "$i" -gt 12 ]; then
- break
- fi
ext="${img##*.}"
- cp "$img" "/etc/skel/Pictures/fluffy-wallpaper-${i}.${ext}"
+ ln -sf "$img" "/usr/share/noctalia-wallpapers/fluffy-pool-$(printf '%02d' "$i").${ext}"
done < <(find /usr/share/backgrounds -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) | sort)
if [ "$i" -lt 1 ]; then
echo "FEHLER: keine Wallpaper unter /usr/share/backgrounds gefunden"
exit 1
fi
-ls -l /etc/skel/Pictures
+echo "Wallpaper-Pool: $i Motive"
+ls /usr/share/noctalia-wallpapers
dnf5 clean all
diff --git a/build/23-plymouth.sh b/build/23-plymouth.sh
new file mode 100644
index 0000000..0f76223
--- /dev/null
+++ b/build/23-plymouth.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/bash
+set -eoux pipefail
+
+###############################################################################
+# Transaction: Plymouth Bootsplash (Text-Theme "fluffy-pancake")
+###############################################################################
+# - Eigenes Theme aus build/plymouth-theme/ installieren, als Default setzen.
+# - Initramfs neu bauen (Plymouth-Modul muss rein, sonst kein Early-Splash).
+# no-hostonly = laeuft auf jeder Hardware (VM + Laptop).
+# Kernel aus dem IMAGE (/usr/lib/modules), NICHT uname -r (Host-Kernel!).
+###############################################################################
+echo "Installing Plymouth splash (fluffy-pancake)..."
+
+dnf5 install -y \
+ --allowerasing \
+ plymouth \
+ plymouth-system-theme
+
+mkdir -p /usr/share/plymouth/themes/fluffy
+cp /tmp/plymouth-theme/fluffy.plymouth /tmp/plymouth-theme/fluffy.script \
+ /usr/share/plymouth/themes/fluffy/
+plymouth-set-default-theme fluffy
+
+for kdir in /usr/lib/modules/*; do
+ kver="$(basename "${kdir}")"
+ dracut --force --no-hostonly --kver "${kver}" "${kdir}/initramfs.img"
+done
+
+systemctl enable plymouth-start.service || true
+
+dnf5 clean all
diff --git a/build/plymouth-theme/fluffy.plymouth b/build/plymouth-theme/fluffy.plymouth
new file mode 100644
index 0000000..4559e99
--- /dev/null
+++ b/build/plymouth-theme/fluffy.plymouth
@@ -0,0 +1,8 @@
+[Plymouth Theme]
+Name=fluffy-pancake
+Description=fluffy-pancake text splash
+ModuleName=script
+
+[script]
+ImageDir=/usr/share/plymouth/themes/fluffy
+ScriptFile=/usr/share/plymouth/themes/fluffy/fluffy.script
diff --git a/build/plymouth-theme/fluffy.script b/build/plymouth-theme/fluffy.script
new file mode 100644
index 0000000..1db2450
--- /dev/null
+++ b/build/plymouth-theme/fluffy.script
@@ -0,0 +1,28 @@
+# fluffy-pancake Plymouth-Theme (script-Plugin).
+# Dunkler Hintergrund (Noctalia-nah), zentrierter Schriftzug, Statuszeile.
+# Plymouth ruft message_callback bei Boot-Meldungen und boot_progress_callback
+# waehrenddessen; quit_callback beim Uebergang zum Login.
+
+Window.SetBackgroundTopColor (0.10, 0.11, 0.15);
+Window.SetBackgroundBottomColor (0.10, 0.11, 0.15);
+
+title_image = Message ("fluffy-pancake");
+title_sprite = Sprite (title_image);
+title_sprite.SetPosition (Window.GetX () / 2 - title_image.GetWidth () / 2,
+ Window.GetY () / 2 - title_image.GetHeight () / 2, 10);
+
+status_image = Image.Text ("", 1, 1, 1);
+status_sprite = Sprite (status_image);
+
+fun message_callback (text) {
+ status_image = Image.Text (text, 1, 1, 1);
+ status_sprite.SetImage (status_image);
+ status_sprite.SetPosition (Window.GetX () / 2 - status_image.GetWidth () / 2,
+ Window.GetY () * 3 / 4, 10);
+}
+
+fun boot_progress_callback (duration, progress) {
+}
+
+fun quit_callback () {
+}
diff --git a/configs/flatpak-preinstall.service b/configs/flatpak-preinstall.service
index e6aa4fb..53d4b83 100644
--- a/configs/flatpak-preinstall.service
+++ b/configs/flatpak-preinstall.service
@@ -9,7 +9,12 @@ Type=oneshot
ExecStartPre=/usr/bin/flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Bazaar + Brave + GTK-Theme-Runtimes, damit Flatpak-GTK3-Apps dem
# Noctalia-Theme (adw-gtk3/-dark) folgen koennen. Laeuft einmalig.
-ExecStart=/usr/bin/flatpak install -y flathub io.github.kolunmi.Bazaar com.brave.Browser org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark
+ExecStart=/usr/bin/flatpak install -y flathub io.github.kolunmi.Bazaar com.brave.Browser org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark org.kde.KStyle.Adwaita
+# Noctalia-CSS fuer ALLE Flatpaks lesbar machen (read-only, systemweit):
+# volle Palette statt nur Hell/Dunkel - gilt auch fuer spaeter per Bazaar
+# installierte Apps (kein Override pro App noetig, Neustart genuegt).
+# Chromium/Brave ignoriert GTK-CSS ohnehin (nur Hell/Dunkel per Portal).
+ExecStart=/usr/bin/flatpak override --system --filesystem=xdg-config/gtk-3.0:ro --filesystem=xdg-config/gtk-4.0:ro
ExecStartPost=/usr/bin/touch /var/lib/flatpak/.preinstall-done
ExecStartPost=/usr/bin/systemctl disable flatpak-preinstall.service
RemainAfterExit=yes
diff --git a/configs/fontconfig/60-fluffy-noto.conf b/configs/fontconfig/60-fluffy-noto.conf
new file mode 100644
index 0000000..6c4635a
--- /dev/null
+++ b/configs/fontconfig/60-fluffy-noto.conf
@@ -0,0 +1,15 @@
+
+
+
+
+
+ sans-serif
+ Noto Sans
+
+
+ monospace
+ Noto Sans Mono
+
+
diff --git a/configs/kargs-plymouth.toml b/configs/kargs-plymouth.toml
new file mode 100644
index 0000000..bc586ce
--- /dev/null
+++ b/configs/kargs-plymouth.toml
@@ -0,0 +1,4 @@
+# Bootsplash aktivieren (Plymouth-Theme "fluffy-pancake" liegt im Image).
+# quiet: Boot-Log ausblenden (per Esc im Splash einblendbar).
+# bootc wertet kargs.d bei Installation und Upgrade aus.
+kargs = ["rhgb", "quiet"]
diff --git a/configs/skel/.config/labwc/environment b/configs/skel/.config/labwc/environment
index 847692c..1579792 100644
--- a/configs/skel/.config/labwc/environment
+++ b/configs/skel/.config/labwc/environment
@@ -1,5 +1,8 @@
# labwc-Umgebung – fluffy-pancake (Noctalia-Zweig)
# Wird von labwc beim Start eingelesen (~/.config/labwc/environment).
+# Sprache bewusst hier (nicht nur Installer-locale.conf): gilt
+# deterministisch fuer jede Session.
+LANG=de_DE.UTF-8
XKB_DEFAULT_LAYOUT=de
XKB_DEFAULT_VARIANT=nodeadkeys
QT_QPA_PLATFORM=wayland
diff --git a/configs/skel/.config/labwc/rc.xml b/configs/skel/.config/labwc/rc.xml
index 1daefca..2f959fa 100644
--- a/configs/skel/.config/labwc/rc.xml
+++ b/configs/skel/.config/labwc/rc.xml
@@ -38,6 +38,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/configs/skel/.config/mimeapps.list b/configs/skel/.config/mimeapps.list
index 57276ea..f739d83 100644
--- a/configs/skel/.config/mimeapps.list
+++ b/configs/skel/.config/mimeapps.list
@@ -1,3 +1,7 @@
# Standard-Anwendungen – fluffy-pancake (Noctalia-Zweig)
[Default Applications]
inode/directory=thunar.desktop
+text/plain=org.gnome.TextEditor.desktop
+application/pdf=org.gnome.Evince.desktop
+image/png=org.gnome.Loupe.desktop
+image/jpeg=org.gnome.Loupe.desktop
diff --git a/configs/skel/.config/noctalia/shell.toml b/configs/skel/.config/noctalia/shell.toml
index bb7ca33..9232bf9 100644
--- a/configs/skel/.config/noctalia/shell.toml
+++ b/configs/skel/.config/noctalia/shell.toml
@@ -5,3 +5,7 @@
# GUI-Aenderung (Settings -> Security) landet in settings.toml und gewinnt.
[shell]
polkit_agent = true
+# UI-Sprache fest auf Deutsch (Katalog de.json ist gebuendelt).
+# Auto-Detect wuerde bei fehlender Session-Locale auf Englisch fallen.
+# GUI-Aenderung gewinnt ueber dieser Datei.
+lang = "de"
diff --git a/configs/skel/.config/noctalia/templates.toml b/configs/skel/.config/noctalia/templates.toml
index 4008c19..9454afa 100644
--- a/configs/skel/.config/noctalia/templates.toml
+++ b/configs/skel/.config/noctalia/templates.toml
@@ -13,3 +13,8 @@
[theme.templates]
enable_builtin_templates = true
builtin_ids = ["alacritty", "gtk3", "gtk4", "labwc"]
+
+# labwc nach jedem Theme-Resolve live neu laden (Deko + Root-Menue),
+# sonst bleibt die alte Optik bis zum Relogin stehen.
+[hooks]
+colors_changed = "labwc --reconfigure"
diff --git a/configs/skel/.config/noctalia/wallpaper.toml b/configs/skel/.config/noctalia/wallpaper.toml
new file mode 100644
index 0000000..3367e6d
--- /dev/null
+++ b/configs/skel/.config/noctalia/wallpaper.toml
@@ -0,0 +1,7 @@
+# Noctalia Wallpaper-Defaults – fluffy-pancake (Noctalia-Zweig)
+# Picker zeigt den flachen System-Pool (alle Fedora-Motive inkl. Extras als
+# Symlinks, da der Picker keine Unterordner sieht). Eigene Bilder: in der
+# GUI (Wallpaper-Panel) auf ~/Bilder umstellen oder hier eintragen.
+# GUI-Aenderung landet in settings.toml und gewinnt ueber dieser Datei.
+[wallpaper]
+directory = "/usr/share/noctalia-wallpapers"
diff --git a/scripts/seed-labwc-skel.sh b/scripts/seed-labwc-skel.sh
index 9182e80..f1cff17 100755
--- a/scripts/seed-labwc-skel.sh
+++ b/scripts/seed-labwc-skel.sh
@@ -16,6 +16,7 @@ TARGETS=(
".config/alacritty/themes/noctalia.toml"
".config/noctalia/templates.toml"
".config/noctalia/shell.toml"
+ ".config/noctalia/wallpaper.toml"
".config/mimeapps.list"
)
@@ -36,15 +37,3 @@ if [[ ! -e "${HOME}/.config/kanshi/config" ]]; then
echo "Keine kanshi-Config gefunden. Erzeugen mit:"
echo " kanshi-autoconfig --apply (schreibt ~/.config/kanshi/config)"
fi
-
-# Wallpaper-Grundstock (Dateinamen unbekannt -> Glob statt Liste)
-if [[ -d "${SKEL}/Pictures" ]]; then
- mkdir -p "${HOME}/Pictures"
- for pic in "${SKEL}"/Pictures/*; do
- [[ -e "${pic}" ]] || continue
- if [[ ! -e "${HOME}/Pictures/$(basename "${pic}")" ]]; then
- cp -n "${pic}" "${HOME}/Pictures/"
- echo "angelegt: ${HOME}/Pictures/$(basename "${pic}")"
- fi
- done
-fi