Files
fluffy-pancake/build/22-noctalia.sh
T

60 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/bash
set -eoux pipefail
###############################################################################
# Transaction: Noctalia Shell v5 (nativer Wayland-Desktop-Shell)
###############################################################################
# Paket `noctalia` aus den offiziellen Fedora-Repos (ab F44).
# KEIN COPR noetig. Start via labwc-autostart (siehe configs/skel).
# Doku: https://docs.noctalia.dev/noctalia/getting-started/installation/
###############################################################################
echo "Installing Noctalia Shell v5..."
# Versionsdynamik: Wallpaper-Pakete heissen f<VER>-backgrounds*.
# Bei Basis-Wechsel (z.B. F44 -> F45 im Containerfile) kommen automatisch
# die neuen Motive mit. Bricht das Schema je, knallt der Build laut
# (kein stiller leerer Picker).
FEDORA_VERSION="$(rpm -E %fedora)"
# Nur das Paket selbst: v5 ist nativ (C++/OpenGL ES), Bildformate und
# Theming sind einkompiliert bzw. kommen als RPM-Abhaengigkeiten mit.
# ImageMagick/Python/git waren v4-Bedarf und entfallen.
#
# Theming-Unterbau fuer die aktivierten Templates (siehe
# configs/skel/.config/noctalia/templates.toml):
# - flatpak: fehlt in der fedora-bootc-Basis, wird aber vom
# Flatpak-Preinstall-Layer/Service (50-xxx, Bazaar/Brave) benoetigt
# - adw-gtk3-theme: GTK-Theme, das Noctalias gtk-Hook umfaerbt (inkl. -dark).
# HINWEIS: Paket heisst -theme, nicht -gtk3!
# - dconf + Schemas: damit der Hook gtk-theme/color-scheme setzen kann.
# (nwg-look gibt es nicht in Fedora (nur COPR) und wird nicht gebraucht -
# der Hook setzt das Theme selbst.)
dnf5 install -y \
--allowerasing \
noctalia \
flatpak \
adw-gtk3-theme \
dconf \
gsettings-desktop-schemas \
f${FEDORA_VERSION}-backgrounds \
fedora-workstation-backgrounds
# 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))
ext="${img##*.}"
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
echo "Wallpaper-Pool: $i Motive"
ls /usr/share/noctalia-wallpapers
dnf5 clean all