setup: add KDE Plasma, GNOME, COSMIC, XFCE, LXQt DE modules
Each script installs the DE meta-package, an appropriate display manager, PipeWire audio, NetworkManager, Bluetooth, and Flatpak, then enables the relevant services (sddm/gdm/lightdm/cosmic-greeter). COSMIC falls back to sddm if cosmic-greeter is not installed. tui-install.sh: DE menu expanded from 3 to 8 entries (height 20×70). install-modules.sh: DEs added to checklist, summary, and dispatch so they can be installed standalone on an existing system. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>main
parent
fb9893504c
commit
9cde41ddde
|
|
@ -84,6 +84,11 @@ run_module() {
|
|||
count_steps() {
|
||||
local sel="$1"
|
||||
TOTAL=0
|
||||
[[ "$sel" == *"kde-plasma"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$sel" == *"gnome"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$sel" == *"cosmic"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$sel" == *"xfce"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$sel" == *"lxqt"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$sel" == *"ollama"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$sel" == *"llama-cpp"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$sel" == *"open-webui"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
|
|
@ -150,6 +155,12 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \
|
|||
--title " Select Modules " \
|
||||
--checklist "Space toggles · Enter confirms · Arrow keys scroll" 40 76 32 \
|
||||
\
|
||||
"kde-plasma" "KDE Plasma full Plasma DE + sddm" off \
|
||||
"gnome" "GNOME GNOME Shell + gdm" off \
|
||||
"cosmic" "COSMIC Rust-based Wayland DE (System76)" off \
|
||||
"xfce" "XFCE lightweight X11 DE + lightdm" off \
|
||||
"lxqt" "LXQt lightweight Qt X11 DE + sddm" off \
|
||||
\
|
||||
"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 \
|
||||
|
|
@ -197,6 +208,11 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \
|
|||
[[ -z "$SELECTED" ]] && { clear; echo "Nothing selected."; exit 0; }
|
||||
|
||||
SUMMARY=""
|
||||
[[ "$SELECTED" == *"kde-plasma"* ]] && SUMMARY+=" ✦ KDE Plasma\n"
|
||||
[[ "$SELECTED" == *"gnome"* ]] && SUMMARY+=" ✦ GNOME\n"
|
||||
[[ "$SELECTED" == *"cosmic"* ]] && SUMMARY+=" ✦ COSMIC\n"
|
||||
[[ "$SELECTED" == *"xfce"* ]] && SUMMARY+=" ✦ XFCE\n"
|
||||
[[ "$SELECTED" == *"lxqt"* ]] && SUMMARY+=" ✦ LXQt\n"
|
||||
[[ "$SELECTED" == *"ollama"* ]] && SUMMARY+=" ✦ Ollama\n"
|
||||
[[ "$SELECTED" == *"llama-cpp"* ]] && SUMMARY+=" ✦ llama.cpp\n"
|
||||
[[ "$SELECTED" == *"open-webui"* ]] && SUMMARY+=" ✦ Open WebUI\n"
|
||||
|
|
@ -246,6 +262,12 @@ dialog --backtitle "$BACKTITLE" \
|
|||
|
||||
count_steps "$SELECTED"
|
||||
|
||||
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" == *"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"
|
||||
[[ "$SELECTED" == *"llama-cpp"* ]] && run_module "llama.cpp" "$APPS/llama-cpp.sh"
|
||||
[[ "$SELECTED" == *"open-webui"* ]] && run_module "Open WebUI" "$APPS/open-webui.sh"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== COSMIC Desktop Installer ==="
|
||||
|
||||
echo "[+] Installing COSMIC..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
cosmic \
|
||||
pipewire wireplumber pipewire-alsa pipewire-jack pipewire-pulse \
|
||||
networkmanager \
|
||||
bluez bluez-utils \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
# cosmic-greeter is COSMIC's own display manager; fall back to sddm if absent
|
||||
if pacman -Qi cosmic-greeter &>/dev/null; then
|
||||
sudo systemctl enable cosmic-greeter.service
|
||||
else
|
||||
sudo pacman -S --noconfirm --needed sddm
|
||||
sudo systemctl enable sddm.service
|
||||
fi
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
echo "=== COSMIC installation complete. Reboot to start. ==="
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== GNOME Installer ==="
|
||||
|
||||
echo "[+] Installing GNOME..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
gnome \
|
||||
gnome-tweaks \
|
||||
xdg-desktop-portal-gnome \
|
||||
pipewire wireplumber pipewire-alsa pipewire-jack pipewire-pulse \
|
||||
networkmanager \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
sudo systemctl enable gdm.service
|
||||
sudo systemctl enable NetworkManager.service
|
||||
|
||||
echo "=== GNOME installation complete. Reboot to start. ==="
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== KDE Plasma Installer ==="
|
||||
|
||||
echo "[+] Installing KDE Plasma..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
plasma-meta \
|
||||
sddm sddm-kcm \
|
||||
xdg-desktop-portal-kde \
|
||||
konsole dolphin kate gwenview ark spectacle okular elisa \
|
||||
plasma-browser-integration \
|
||||
pipewire wireplumber pipewire-alsa pipewire-jack pipewire-pulse \
|
||||
networkmanager \
|
||||
bluez bluez-utils bluedevil \
|
||||
power-profiles-daemon \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
sudo systemctl enable sddm.service
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
echo "=== KDE Plasma installation complete. Reboot to start. ==="
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== LXQt Installer ==="
|
||||
|
||||
echo "[+] Installing LXQt..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
lxqt \
|
||||
openbox obconf-qt \
|
||||
sddm \
|
||||
breeze-icons \
|
||||
xdg-desktop-portal-gtk \
|
||||
xorg-server xorg-xinit \
|
||||
pipewire wireplumber pipewire-alsa pipewire-jack pipewire-pulse \
|
||||
networkmanager network-manager-applet \
|
||||
bluez bluez-utils blueman \
|
||||
gvfs gvfs-smb gvfs-mtp \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
sudo systemctl enable sddm.service
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
echo "=== LXQt installation complete. Reboot to start. ==="
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== XFCE Installer ==="
|
||||
|
||||
echo "[+] Installing XFCE..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
xfce4 xfce4-goodies \
|
||||
lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings \
|
||||
xdg-desktop-portal-gtk \
|
||||
pipewire wireplumber pipewire-alsa pipewire-jack pipewire-pulse \
|
||||
xfce4-pulseaudio-plugin \
|
||||
networkmanager network-manager-applet \
|
||||
bluez bluez-utils blueman \
|
||||
gvfs gvfs-smb gvfs-mtp \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
sudo systemctl enable lightdm.service
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
echo "=== XFCE installation complete. Reboot to start. ==="
|
||||
|
|
@ -175,10 +175,15 @@ DE="none"
|
|||
if [[ "$COMPONENTS" == *"de"* ]]; then
|
||||
DE=$(dialog --backtitle "$BACKTITLE" \
|
||||
--title " Desktop Environment " \
|
||||
--menu "Select a desktop environment:" 11 56 3 \
|
||||
"hyprland" "Hyprland — Wayland WM, full setup (primary)" \
|
||||
"sway" "Sway — Wayland tiling WM" \
|
||||
"none" "Skip DE installation" \
|
||||
--menu "Select a desktop environment:" 20 70 8 \
|
||||
"hyprland" "Hyprland — Wayland WM, full setup (primary)" \
|
||||
"sway" "Sway — Wayland tiling WM" \
|
||||
"kde-plasma" "KDE Plasma — feature-rich Wayland/X11 DE" \
|
||||
"gnome" "GNOME — modern Wayland DE" \
|
||||
"cosmic" "COSMIC — Rust-built Wayland DE (System76)" \
|
||||
"xfce" "XFCE — lightweight X11 DE" \
|
||||
"lxqt" "LXQt — lightweight Qt X11 DE" \
|
||||
"none" "Skip DE installation" \
|
||||
3>&1 1>&2 2>&3) || DE="none"
|
||||
fi
|
||||
|
||||
|
|
@ -297,8 +302,13 @@ count_steps "$COMPONENTS" "$DE" "$SELECTED_APPS"
|
|||
|
||||
if [[ "$COMPONENTS" == *"de"* && "$DE" != "none" ]]; then
|
||||
case "$DE" in
|
||||
hyprland) run_module "Hyprland" "$MODULES/Desktop-Environments/hyprland.sh" ;;
|
||||
sway) run_module "Sway" "$MODULES/Desktop-Environments/sway.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" ;;
|
||||
gnome) run_module "GNOME" "$MODULES/Desktop-Environments/gnome.sh" ;;
|
||||
cosmic) run_module "COSMIC" "$MODULES/Desktop-Environments/cosmic.sh" ;;
|
||||
xfce) run_module "XFCE" "$MODULES/Desktop-Environments/xfce.sh" ;;
|
||||
lxqt) run_module "LXQt" "$MODULES/Desktop-Environments/lxqt.sh" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue