labwc + Noctalia Shell (Testbranch, fedora-bootc-Basis)

This commit is contained in:
humocs-man
2026-09-27 12:28:46 +02:00
parent b1f30aca37
commit abde918683
20 changed files with 618 additions and 24 deletions
+9 -1
View File
@@ -6,4 +6,12 @@ dnf5 install -y \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VERSION}.noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VERSION}.noarch.rpm
dnf5 clean all
# Terra-Repository (Fyralabs) fuer noctalia-greeter.
# Die Shell (Paket `noctalia`, v5) liegt in den offiziellen Fedora-Repos,
# der Greeter aktuell NUR in Terra (Stand: Fedora 44).
# Siehe https://docs.noctalia.dev/greeter/installation/
dnf5 install -y --nogpgcheck \
--repofrompath "terra,https://repos.fyralabs.com/terra${FEDORA_VERSION}" \
terra-release
dnf5 clean all
+56
View File
@@ -0,0 +1,56 @@
#!/usr/bin/bash
set -eoux pipefail
###############################################################################
# Transaction: labwc Desktop-Basis (Compositor + Wayland-Stack + Docking)
# Basiert auf fedora-bootc (kein KDE). Noctalia-Shell und Greeter kommen
# in eigenen Layern (21/22), damit sie unabhaengig gecacht werden.
###############################################################################
echo "Installing labwc desktop base..."
# Kern-Pakete (hart erforderlich)
dnf5 install -y \
--allowerasing \
labwc \
xorg-x11-server-Xwayland \
kanshi \
wlr-randr \
swaybg \
swayidle \
wlopm \
xdg-desktop-portal-wlr \
xdg-desktop-portal-gtk \
pipewire \
pipewire-pulseaudio \
wireplumber \
NetworkManager \
foot \
wl-clipboard \
xdg-user-dirs \
upower \
power-profiles-daemon \
bolt \
lxqt-policykit \
accountsservice \
inter-fonts \
jetbrains-mono-fonts \
wdisplays \
brightnessctl \
swaylock
# Optionale Pakete (duerfen fehlen -> --skip-unavailable, eigener Aufruf,
# damit ein fehlendes Optionales den Kern nicht zu Fall bringt)
dnf5 install -y \
--allowerasing \
--skip-unavailable \
ddcutil \
fwupd \
cliphist \
wlsunset \
|| true
# User-Services fuer Audio (Presets greifen nicht fuer nachinstallierte
# Pakete auf bootc-Basis -> explizit global enablen, Fehler tolerieren)
systemctl --global enable pipewire.socket pipewire-pulse.socket wireplumber.service || true
dnf5 clean all
+12 -8
View File
@@ -1,18 +1,22 @@
#!/usr/bin/bash
set -eoux pipefail
###############################################################################
# Cleanup of Unwanted Packages
# Bereinigung unerwuenschter Pakete (Guard-Layer)
###############################################################################
echo "Removing Firefox and langpacks..."
# Auf fedora-bootc-Basis gibt es kein Plasma/Firefox/Discover mehr.
# Das Skript bleibt als Sicherheitsnetz, falls unerwuenschte Pakete
# ueber Abhaengigkeiten hereinkommen. Fehlende Pakete sind kein Fehler.
echo "Removing unwanted packages (if present)..."
dnf5 remove -y \
firefox \
firefox-langpacks* \
firefox-langpacks\* \
plasma-discover \
plasma-discover-flatpak \
plasma-discover-notifier
plasma-discover-notifier \
sddm \
|| true
rm -f /etc/xdg/autostart/org.kde.discover.notifier.desktop
dnf5 clean all
rm -f /etc/xdg/autostart/org.kde.discover.notifier.desktop || true
dnf5 clean all
+45
View File
@@ -0,0 +1,45 @@
#!/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
# System-Setup des Greeters: legt /var/lib/noctalia-greeter/ + greeter.toml
# fuer den greetd-Session-User an und gibt die fertige config.toml-Zeile aus.
# 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
# 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
+20
View File
@@ -0,0 +1,20 @@
#!/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..."
dnf5 install -y \
--allowerasing \
noctalia \
imagemagick \
python3 \
git
dnf5 clean all
+6 -8
View File
@@ -2,26 +2,24 @@
set -eoux pipefail
###############################################################################
# Transaction 2: Virtualization, Tools & Hardware Helpers
# Transaction: Virtualization, Tools & Hardware Helpers
# Zusammengefasst für effizientere Paketauflösung.
# HINWEIS (labwc-Zweig): plasma-setup und noctalia sind hier raus.
# plasma-setup war KDE-spezifisch, noctalia liegt in 22-noctalia.sh.
# webkit2gtk bleibt (Bazaar/Flatpak-Store braucht es).
###############################################################################
echo "Installing Virtualization, Plasma Setup and Hardware Helpers..."
echo "Installing Virtualization, Tools and Hardware Helpers..."
dnf5 install -y \
--allowerasing \
--skip-unavailable \
distrobox \
toolbox \
plasma-setup \
libva-utils \
micro \
fuse \
fuse-libs \
fuse3 \
webkit2gtk4.1 \
javascriptcoregtk4.1 \
noctalia
javascriptcoregtk4.1
dnf5 clean all
+5 -2
View File
@@ -8,8 +8,11 @@ Scripts are named with a number prefix and run in ascending order during the con
## Included Scripts
- **`10-repos.sh`** - RPM Fusion repositories einrichten (frei + nonfree)
- **`20-remove-packages.sh`** - Entfernt unerwuenschte Pakete (Firefox, Plasma Discover)
- **`10-repos.sh`** - RPM Fusion (frei + nonfree) + Terra-Repo (fuer noctalia-greeter)
- **`20-remove-packages.sh`** - Guard-Layer: entfernt unerwuenschte Pakete, falls vorhanden (auf fedora-bootc-Basis meist No-Op)
- **`20-desktop-labwc.sh`** - labwc-Compositor, XWayland, kanshi, Portale, Pipewire, Docking-Tools (bolt), PolicyKit, Fonts
- **`21-greetd.sh`** - greetd + tuigreet-Fallback + Noctalia-Greeter, SDDM/GDM aus, graphical.target
- **`22-noctalia.sh`** - Noctalia Shell v5 aus den Fedora-Repos
- **`30-virt.sh`** - Virtualisierungstools, Distrobox, Toolbox, Micro, etc.
- **`40-multimedia.sh`** - Mesa Freeworld, Codecs, FFmpeg, GStreamer, Intel-Media-Treiber
- **`50-prepare-flatpak-for-bazaar.sh`** - Laedt Flathub-Repo-Definition fuer Bazaar