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() {
|
count_steps() {
|
||||||
local sel="$1"
|
local sel="$1"
|
||||||
TOTAL=0
|
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" == *"ollama"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$sel" == *"llama-cpp"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$sel" == *"llama-cpp"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$sel" == *"open-webui"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$sel" == *"open-webui"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
|
|
@ -150,6 +155,12 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \
|
||||||
--title " Select Modules " \
|
--title " Select Modules " \
|
||||||
--checklist "Space toggles · Enter confirms · Arrow keys scroll" 40 76 32 \
|
--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 \
|
"ollama" "Ollama local LLM runner + API server" off \
|
||||||
"llama-cpp" "llama.cpp standalone inference CLI + server" off \
|
"llama-cpp" "llama.cpp standalone inference CLI + server" off \
|
||||||
"open-webui" "Open WebUI browser UI for Ollama / LLM backends" 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; }
|
[[ -z "$SELECTED" ]] && { clear; echo "Nothing selected."; exit 0; }
|
||||||
|
|
||||||
SUMMARY=""
|
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" == *"ollama"* ]] && SUMMARY+=" ✦ Ollama\n"
|
||||||
[[ "$SELECTED" == *"llama-cpp"* ]] && SUMMARY+=" ✦ llama.cpp\n"
|
[[ "$SELECTED" == *"llama-cpp"* ]] && SUMMARY+=" ✦ llama.cpp\n"
|
||||||
[[ "$SELECTED" == *"open-webui"* ]] && SUMMARY+=" ✦ Open WebUI\n"
|
[[ "$SELECTED" == *"open-webui"* ]] && SUMMARY+=" ✦ Open WebUI\n"
|
||||||
|
|
@ -246,6 +262,12 @@ dialog --backtitle "$BACKTITLE" \
|
||||||
|
|
||||||
count_steps "$SELECTED"
|
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" == *"ollama"* ]] && run_module "Ollama" "$APPS/ollama.sh"
|
||||||
[[ "$SELECTED" == *"llama-cpp"* ]] && run_module "llama.cpp" "$APPS/llama-cpp.sh"
|
[[ "$SELECTED" == *"llama-cpp"* ]] && run_module "llama.cpp" "$APPS/llama-cpp.sh"
|
||||||
[[ "$SELECTED" == *"open-webui"* ]] && run_module "Open WebUI" "$APPS/open-webui.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,9 +175,14 @@ DE="none"
|
||||||
if [[ "$COMPONENTS" == *"de"* ]]; then
|
if [[ "$COMPONENTS" == *"de"* ]]; then
|
||||||
DE=$(dialog --backtitle "$BACKTITLE" \
|
DE=$(dialog --backtitle "$BACKTITLE" \
|
||||||
--title " Desktop Environment " \
|
--title " Desktop Environment " \
|
||||||
--menu "Select a desktop environment:" 11 56 3 \
|
--menu "Select a desktop environment:" 20 70 8 \
|
||||||
"hyprland" "Hyprland — Wayland WM, full setup (primary)" \
|
"hyprland" "Hyprland — Wayland WM, full setup (primary)" \
|
||||||
"sway" "Sway — Wayland tiling WM" \
|
"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" \
|
"none" "Skip DE installation" \
|
||||||
3>&1 1>&2 2>&3) || DE="none"
|
3>&1 1>&2 2>&3) || DE="none"
|
||||||
fi
|
fi
|
||||||
|
|
@ -299,6 +304,11 @@ if [[ "$COMPONENTS" == *"de"* && "$DE" != "none" ]]; then
|
||||||
case "$DE" in
|
case "$DE" in
|
||||||
hyprland) run_module "Hyprland" "$MODULES/Desktop-Environments/hyprland.sh" ;;
|
hyprland) run_module "Hyprland" "$MODULES/Desktop-Environments/hyprland.sh" ;;
|
||||||
sway) run_module "Sway" "$MODULES/Desktop-Environments/sway.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
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue