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
32 lines
865 B
Bash
Executable File
32 lines
865 B
Bash
Executable File
#!/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."
|