diff --git a/setup/generate-answerfile.sh b/setup/generate-answerfile.sh index 8bc7e45..866108d 100644 --- a/setup/generate-answerfile.sh +++ b/setup/generate-answerfile.sh @@ -200,8 +200,10 @@ if [[ "$AF_RUN_TUI" == "true" ]]; then # ── DE ──────────────────────────────────────────────────────────────────── AF_DE=$(dialog --backtitle "$BACKTITLE" \ --title " Desktop Environment " \ - --menu "Select a desktop environment · Esc / none to skip:" 20 70 8 \ - "hyprland" "Hyprland — Wayland WM, full setup (primary)" \ + --menu "Select a desktop environment · Esc / none to skip:" 24 72 11 \ + "hyprlua" "HyprLua — Hyprland with Lua config (recommended)" \ + "niri" "Niri — scrollable-tiling Wayland compositor" \ + "hyprland" "Hyprland — Wayland WM, hyprlang config (legacy)" \ "sway" "Sway — Wayland tiling WM" \ "kde-plasma" "KDE Plasma — feature-rich Wayland/X11 DE" \ "gnome" "GNOME — modern Wayland DE" \ @@ -218,55 +220,76 @@ if [[ "$AF_RUN_TUI" == "true" ]]; then "ollama" "Ollama local LLM runner + API server" off \ "llama-cpp" "llama.cpp standalone inference CLI + server" off \ "open-webui" "Open WebUI browser UI for Ollama / LLM backends" off \ - "claude" "Claude Code Anthropic CLI via npm" off \ - "networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \ - "disk-recovery" "Disk Recovery ddrescue · f3" off \ - "himalaya" "Himalaya terminal email client (AUR)" off \ - "gnuplot" "Gnuplot scientific plotting" off \ - "povray" "POV-Ray ray-tracing renderer" off \ - "blender" "Blender 3D creation suite" off \ - "toot" "toot Mastodon CLI client (AUR)" off \ - "db-clients" "DB Clients pgcli · mycli" off \ - "mysql" "MySQL / MariaDB mariadb server + setup" off \ - "productivity" "Productivity taskwarrior · watson · jrnl" off \ - "yt-dlp" "yt-dlp YouTube / media downloader" off \ - "sox" "SoX audio processing toolkit" off \ - "imagemagick" "ImageMagick image manipulation" off \ - "ffmpeg" "FFmpeg extras thumbnailer · GStreamer codecs" off \ - "localtunnel" "LocalTunnel expose localhost via tunnel" off \ - "butter" "butter btrfs snapshot backup (AUR)" off \ - "tlp" "TLP laptop power management" off \ - "steam" "Steam gaming platform" off \ - "vesktop" "Vesktop Discord + Vencord theme" off \ - "spotify" "Spotify launcher + Spicetify theming" off \ - "prism" "PrismLauncher Minecraft launcher (Flatpak)" off \ - "vintagestory" "Vintage Story survival game (AUR)" off \ - "localsend" "LocalSend LAN file transfer (AUR)" off \ - "croc" "croc cross-platform file transfer" off \ - "onlyoffice" "OnlyOffice office suite (AUR)" off \ - "wireshark" "Wireshark network packet analyser (GUI)" off \ - "k8s" "Kubernetes tools kubectl · podman-desktop" off \ - "docker" "Docker docker · docker-compose" off \ - "podman" "Podman rootless containers · buildah" off \ - "cockpit" "Cockpit web UI · machines · podman" off \ - "ssh-server" "SSH server openssh · key-auth · enabled" off \ - "freeipa-client" "FreeIPA Client sssd + ipa-client-install + enrollment" off \ + "claude" "Claude Code Anthropic CLI via npm" off \ + "networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \ + "disk-recovery" "Disk Recovery ddrescue · f3" off \ + "himalaya" "Himalaya terminal email client (AUR)" off \ + "gnuplot" "Gnuplot scientific plotting" off \ + "blender-povray" "Blender + POV-Ray 3D modelling & ray-tracing" off \ + "toot" "toot Mastodon CLI client (AUR)" off \ + "db-clients" "DB Clients pgcli · mycli" off \ + "mysql" "MySQL / MariaDB mariadb server + setup" off \ + "productivity" "Productivity taskwarrior · watson · jrnl" off \ + "yt-dlp" "yt-dlp YouTube / media downloader" off \ + "sox" "SoX audio processing toolkit" off \ + "imagemagick" "ImageMagick image manipulation" off \ + "ffmpeg" "FFmpeg extras thumbnailer · GStreamer codecs" off \ + "localtunnel" "LocalTunnel expose localhost via tunnel" off \ + "butter" "butter btrfs snapshot backup (AUR)" off \ + "tlp" "TLP laptop power management" off \ + "steam" "Steam gaming platform" off \ + "vesktop" "Vesktop Discord + Vencord theme" off \ + "spotify" "Spotify launcher + Spicetify theming" off \ + "prism" "PrismLauncher Minecraft launcher (Flatpak)" off \ + "vintagestory" "Vintage Story survival game (AUR)" off \ + "openarena" "OpenArena open-source Quake III Arena" off \ + "tetris" "Tetris CLI bastet · vitetris" off \ + "doom" "Doom Chocolate Doom + Freedoom data" off \ + "sauerbraten" "Sauerbraten open-source FPS (Cube 2)" off \ + "stuntrally" "Stunt Rally rally racing game (Flatpak)" off \ + "localsend" "LocalSend LAN file transfer (AUR)" off \ + "croc" "croc cross-platform file transfer" off \ + "onlyoffice" "OnlyOffice office suite (AUR)" off \ + "xournal" "Xournal++ note-taking & PDF annotator" off \ + "gimp" "GIMP GNU image manipulation program" off \ + "inkscape" "Inkscape vector graphics editor" off \ + "krita" "Krita digital painting application" off \ + "ardour" "Ardour professional DAW" off \ + "audacity" "Audacity multi-track audio editor" off \ + "lmms" "LMMS Linux MultiMedia Studio DAW" off \ + "mixxx" "Mixxx DJ mixing software" off \ + "cecilia" "Cecilia audio signal processing (AUR)" off \ + "kdenlive" "Kdenlive KDE non-linear video editor" off \ + "openshot" "OpenShot easy video editor" off \ + "shotcut" "Shotcut cross-platform video editor" off \ + "anti-malware" "Anti-Malware ClamAV · rkhunter · chkrootkit" off \ + "timeshift" "Timeshift system snapshot / backup + autosnap" off \ + "wireshark" "Wireshark network packet analyser (GUI)" off \ + "k8s" "Kubernetes tools kubectl · podman-desktop" off \ + "docker" "Docker docker · docker-compose" off \ + "podman" "Podman rootless containers · buildah" off \ + "cockpit" "Cockpit web UI · machines · podman" off \ + "ssh-server" "SSH server openssh · key-auth · enabled" off \ + "freeipa-client" "FreeIPA Client sssd + ipa-client-install + enrollment" off \ "freeipa-server" "FreeIPA Server interactive server setup + client gen" off \ "freeipa-image" "FreeIPA Image OCI/LXC/Proxmox LXC builder + Keycloak" off \ - "python" "Python tools pyright · pipx · pynvim" off \ - "zfs" "ZFS zfs-dkms kernel module" off \ - "wprs" "WPRS wprs-git (AUR)" off \ - "chromium" "Chromium open-source browser (official)" off \ - "firefox-browser" "Firefox Mozilla browser (official)" off \ - "zen-browser" "Zen Browser Firefox-based privacy browser (AUR)" off \ - "nyxt" "Nyxt keyboard-driven browser (AUR)" off \ - "librewolf" "LibreWolf hardened Firefox fork (AUR)" off \ - "min-browser" "Min minimal Electron browser (AUR)" off \ - "vscodium" "VSCodium telemetry-free VS Code (AUR)" off \ - "zed-ide" "Zed high-performance Rust IDE (official)" off \ - "geany" "Geany lightweight IDE + plugins (official)" off \ - "codeblocks" "Code::Blocks C/C++ IDE (official)" off \ - "kate" "Kate KDE advanced text editor (official)" off \ + "python" "Python tools pyright · pipx · pynvim" off \ + "zfs" "ZFS zfs-dkms kernel module" off \ + "wprs" "WPRS wprs-git (AUR)" off \ + "chromium" "Chromium open-source browser (official)" off \ + "firefox-browser" "Firefox Mozilla browser (official)" off \ + "zen-browser" "Zen Browser Firefox-based privacy browser (AUR)" off \ + "nyxt" "Nyxt keyboard-driven browser (AUR)" off \ + "librewolf" "LibreWolf hardened Firefox fork (AUR)" off \ + "min-browser" "Min minimal Electron browser (AUR)" off \ + "vscodium" "VSCodium telemetry-free VS Code (AUR)" off \ + "zed-ide" "Zed high-performance Rust IDE (official)" off \ + "geany" "Geany lightweight IDE + plugins (official)" off \ + "codeblocks" "Code::Blocks C/C++ IDE (official)" off \ + "kate" "Kate KDE advanced text editor (official)" off \ + "rdp-client" "RDP Client Remmina + FreeRDP + VNC plugins" off \ + "lamco-rdp-server" "Lamco RDP Server native Wayland RDP server (AUR, Rust)" off \ + "qemu" "QEMU/KVM full virt stack + virt-manager GUI" off \ 3>&1 1>&2 2>&3) || AF_APPS="" # ── Colorway ────────────────────────────────────────────────────────────── diff --git a/setup/install-modules.sh b/setup/install-modules.sh index 40c0ba0..c198139 100755 --- a/setup/install-modules.sh +++ b/setup/install-modules.sh @@ -87,6 +87,7 @@ count_steps() { [[ "$sel" == *"kde-plasma"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"gnome"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"cosmic"* ]] && TOTAL=$(( TOTAL + 1 )) + [[ "$sel" == *"niri"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"xfce"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"lxqt"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"ollama"* ]] && TOTAL=$(( TOTAL + 1 )) @@ -181,6 +182,7 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \ "kde-plasma" "KDE Plasma full Plasma DE + sddm" off \ "gnome" "GNOME GNOME Shell + gdm" off \ "cosmic" "COSMIC Rust-based Wayland DE (System76)" off \ + "niri" "Niri scrollable-tiling Wayland compositor" off \ "xfce" "XFCE lightweight X11 DE + lightdm" off \ "lxqt" "LXQt lightweight Qt X11 DE + sddm" off \ \ @@ -253,6 +255,7 @@ SUMMARY="" [[ "$SELECTED" == *"kde-plasma"* ]] && SUMMARY+=" ✦ KDE Plasma\n" [[ "$SELECTED" == *"gnome"* ]] && SUMMARY+=" ✦ GNOME\n" [[ "$SELECTED" == *"cosmic"* ]] && SUMMARY+=" ✦ COSMIC\n" +[[ "$SELECTED" == *"niri"* ]] && SUMMARY+=" ✦ Niri\n" [[ "$SELECTED" == *"xfce"* ]] && SUMMARY+=" ✦ XFCE\n" [[ "$SELECTED" == *"lxqt"* ]] && SUMMARY+=" ✦ LXQt\n" [[ "$SELECTED" == *"ollama"* ]] && SUMMARY+=" ✦ Ollama\n" @@ -325,6 +328,7 @@ DE_DIR="$MODULES/Desktop-Environments" [[ "$SELECTED" == *"kde-plasma"* ]] && run_module "KDE Plasma" "$DE_DIR/kde-plasma.sh" [[ "$SELECTED" == *"gnome"* ]] && run_module "GNOME" "$DE_DIR/gnome.sh" [[ "$SELECTED" == *"cosmic"* ]] && run_module "COSMIC" "$DE_DIR/cosmic.sh" +[[ "$SELECTED" == *"niri"* ]] && run_module "Niri" "$DE_DIR/niri.sh" [[ "$SELECTED" == *"xfce"* ]] && run_module "XFCE" "$DE_DIR/xfce.sh" [[ "$SELECTED" == *"lxqt"* ]] && run_module "LXQt" "$DE_DIR/lxqt.sh" [[ "$SELECTED" == *"ollama"* ]] && run_module "Ollama" "$APPS/ollama.sh" diff --git a/setup/simple-install.sh b/setup/simple-install.sh index 488ed06..f52bcfe 100755 --- a/setup/simple-install.sh +++ b/setup/simple-install.sh @@ -471,6 +471,7 @@ else DE=$(tui_menu " Desktop Environment " \ "Select a desktop environment:" \ "hyprlua" "HyprLua — Hyprland with Lua config (recommended)" \ + "niri" "Niri — scrollable-tiling Wayland compositor" \ "hyprland" "Hyprland — Wayland WM, hyprlang config (legacy)" \ "sway" "Sway — Wayland tiling WM" \ "kde-plasma" "KDE Plasma — feature-rich Wayland/X11 DE" \ @@ -633,6 +634,7 @@ count_steps "$COMPONENTS" "$DE" "$SELECTED_APPS" if [[ "$DE" != "none" ]]; then case "$DE" in hyprlua) run_module "HyprLua" "$MODULES/Desktop-Environments/hyprlua.sh" ;; + niri) run_module "Niri" "$MODULES/Desktop-Environments/niri.sh" ;; hyprland) run_module "Hyprland" "$MODULES/Desktop-Environments/hyprland.sh" ;; sway) run_module "Sway" "$MODULES/Desktop-Environments/sway.sh" ;; kde-plasma) run_module "KDE Plasma" "$MODULES/Desktop-Environments/kde-plasma.sh" ;;