mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-10-31 13:08:06 +00:00
2195db452a
Replace _radiolist with the _menu pattern used by xfce_menu: while-true loop, fixed numbered items array, Back option that breaks the loop, and direct case dispatch to the unchanged installers. Navigation is now consistent across all four desktop submenus (select an option, return to the parent menu, re-enter without re-triggering a one-shot selection). - bash -n OK, shellcheck 0 warnings, BATS 36/0 - _radiolist helper kept in utils.sh for compatibility (no callers)
85 lines
3.1 KiB
Bash
85 lines
3.1 KiB
Bash
#!/usr/bin/env bash
|
|
# desktop_kde.sh — KDE Plasma desktop installer (SP2)
|
|
# Full: kde-standard + sddm | Minimal: kde-plasma-desktop + sddm
|
|
# Bookworm ships Plasma 5.27.5; Wayland is the default
|
|
# session since Debian 12.
|
|
# License GPL v3
|
|
|
|
kde_menu() {
|
|
while true; do
|
|
local -a kd_items=()
|
|
kd_items+=("1" "KDE Plasma (Full Desktop)")
|
|
kd_items+=("2" "KDE Plasma Desktop (Minimal)")
|
|
kd_items+=("3" "Back")
|
|
local choice
|
|
choice=$(_menu "KDE Plasma" \
|
|
"Select an option:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
|
"${kd_items[@]}")
|
|
[ -z "$choice" ] && break
|
|
clear
|
|
case "$choice" in
|
|
1) _install_kde_full ;;
|
|
2) _install_kde_minimal ;;
|
|
3) break ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
_install_kde_full() {
|
|
# Pre-apply summary: confirm the selection before any
|
|
# debconf or apt transaction starts.
|
|
_confirm_install_list "KDE Plasma Full" kde-standard sddm || return
|
|
|
|
echo -e "${GREEN}Installing KDE Plasma (Full)...${NC}"
|
|
|
|
# Keep an already-configured display manager intact.
|
|
local target_dm="sddm"
|
|
local keep_dm
|
|
keep_dm=$(_existing_display_manager)
|
|
if [ -n "$keep_dm" ] && [ "$keep_dm" != "sddm" ]; then
|
|
echo -e "${YELLOW}Display manager '${keep_dm}' is already configured — keeping it as default.${NC}"
|
|
target_dm="$keep_dm"
|
|
fi
|
|
echo "${target_dm} shared/default-x-display-manager select ${target_dm}" | sudo debconf-set-selections
|
|
_ensure_apt_updated
|
|
_run_cmd "KDE Full" "sudo apt install -y kde-standard sddm" \
|
|
"Installing KDE Plasma (Full Meta Package) + SDDM..."
|
|
if [ "$target_dm" = "sddm" ]; then
|
|
sudo systemctl enable sddm
|
|
fi
|
|
# Selection confirmed once above; release the
|
|
# per-package prompt suppression.
|
|
_SELECTION_CONFIRMED=0
|
|
echo -e "${GREEN}KDE Plasma installed. Default display manager: ${target_dm}.${NC}"
|
|
_offer_pipewire_after_desktop
|
|
}
|
|
|
|
_install_kde_minimal() {
|
|
# Pre-apply summary: confirm the selection before any
|
|
# debconf or apt transaction starts.
|
|
_confirm_install_list "KDE Plasma Minimal" kde-plasma-desktop sddm || return
|
|
|
|
echo -e "${GREEN}Installing KDE Plasma Desktop (Minimal)...${NC}"
|
|
|
|
# Keep an already-configured display manager intact.
|
|
local target_dm="sddm"
|
|
local keep_dm
|
|
keep_dm=$(_existing_display_manager)
|
|
if [ -n "$keep_dm" ] && [ "$keep_dm" != "sddm" ]; then
|
|
echo -e "${YELLOW}Display manager '${keep_dm}' is already configured — keeping it as default.${NC}"
|
|
target_dm="$keep_dm"
|
|
fi
|
|
echo "${target_dm} shared/default-x-display-manager select ${target_dm}" | sudo debconf-set-selections
|
|
_ensure_apt_updated
|
|
_run_cmd "KDE Minimal" "sudo apt install -y kde-plasma-desktop sddm" \
|
|
"Installing KDE Plasma Desktop (Minimal) + SDDM..."
|
|
if [ "$target_dm" = "sddm" ]; then
|
|
sudo systemctl enable sddm
|
|
fi
|
|
# Selection confirmed once above; release the
|
|
# per-package prompt suppression.
|
|
_SELECTION_CONFIRMED=0
|
|
echo -e "${GREEN}KDE Plasma Desktop installed. Default display manager: ${target_dm}.${NC}"
|
|
_offer_pipewire_after_desktop
|
|
}
|