Restructure for bare Fedora: lib/ + modules/, DE selection restored

Splits setup.sh into lib/common.sh, lib/session.sh and seven modules
(3 DE, 4 TWM). Targets a bare Fedora 44+ install.

Fixes carried over from the first build:
- DEBUG_MODE was unbound under set -u, aborting the script at the version banner
- mangled 'echohttps://...' line left over from the starburst split
- set -e was missing entirely; --debug flag parsing restored
- unguarded 'clear' aborted the run without TERM
- $PRETTY_NAME unguarded under set -u
- modules were sourced, leaking shell options into the parent
- Flathub added twice (system-wide + per-user)
- no dnf5-plugins check before using 'dnf config-manager'
- no Fedora release gate
- /usr/share/xsessions assumed to exist when writing session entries
This commit is contained in:
Pathfinder
2026-10-27 10:15:04 +01:00
parent 4f59afbac1
commit 234bf8214e
11 changed files with 973 additions and 220 deletions
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
set -uo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=../../lib/common.sh
source "$HERE/../../lib/common.sh"
# shellcheck source=../../lib/session.sh
source "$HERE/../../lib/session.sh"
if is_debug; then set +e; else set -e; fi
step "Tiling window manager: Niri"
rule
# Noctalia (the shell you settled on) lives in the Terra repo.
add_terra_repo
info "Installing Niri + Noctalia..."
install_packages niri noctalia fuzzel alacritty
# niri is Wayland-only; this lets X11 apps run inside it
install_optional xwayland-satellite
install_optional xdg-desktop-portal-wlr
install_session_prereqs
install_nerd_font JetBrainsMono
# niri ships /usr/share/wayland-sessions/niri.desktop itself, so no entry needed.
install_packages sddm
switch_display_manager sddm
ok "Niri setup complete. Log out and pick Niri in SDDM."