#!/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 \ xdg-desktop-portal \ xdg-desktop-portal-wlr \ xdg-desktop-portal-gtk \ pipewire \ pipewire-pulseaudio \ wireplumber \ NetworkManager \ kitty \ wl-clipboard \ xdg-user-dirs \ libnotify \ upower \ power-profiles-daemon \ bolt \ bluez \ cups \ ipp-usb \ system-config-printer \ avahi \ 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 \ gnome-keyring-pam \ libsecret \ thunar \ thunar-volman \ thunar-archive-plugin \ file-roller \ tumbler \ gvfs \ firewalld \ firewall-config \ nss-mdns \ wdisplays \ brightnessctl \ swaylock \ 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) dnf5 install -y \ --allowerasing \ --skip-unavailable \ ddcutil \ fwupd \ cliphist \ wlsunset \ pipewire-codec-aptx \ || 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 # 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