Files
debianito-post-install/modules/extras.sh
T
stornic56 d8878b67e1 Displays managers & zram menu
- LightDM Overhaul: Rewrote `install_lightdm()` logic to verify both lightdm and lightdm-gtk-gtk-greeter-settings. Now installs the trio in a single command if missing, skipping only when fully present. Added "Enable autologin" option modifying `/etc/lightdm/lightdm.conf` with robust `sed` patterns for `SUDO_USER`. Fixed missing `debconf-set-selections` to ensure LightDM is set as default during installation.
- GDM3 Implementation: Created a new sub-menu in `modules/desktop_display.sh` allowing independent installation of GDM3, User List toggle (hide/show), Autologin configuration via `/etc/gdm3/daemon.conf`, and conditional "Force Enable Wayland on NVIDIA" for Debian 12/13 using udev symlinks.
- SDDM Integration: Added SDDM as option 3 in the Display Manager menu. Implemented automatic session detection (Wayland > X11) to populate `/etc/sddm.conf.d/autologin.conf` without user input, defaulting to plasmawayland, lxqt-wayland, or generic fallbacks.
- greetd support: Added conditional support for Debian 12 and 13 only. Implemented sub-menu with base install, recommended `tuigreet` (with backports handling for Bookworm), and other manual setup options (`gtkgreet`, `nwg-hello`, `wlgreet`) exclusive to Trixie. 
- ZRAM UX Improvements: Updated descriptions in `modules/zram.sh` to explicitly mention I/O reduction and responsiveness benefits for low-RAM systems (e.g., 4GB). Cleaned up compression algorithm labels (`lz4`, `zstd`) to remove redundancy in menu values.
- General Code Quality: Standardized all user-facing messages to English across modules. Ensured independent package installation checks prevent script abortion if one DM fails, while maintaining strict error handling for system configurations.
- update docs and readme
2026-07-16 01:02:51 -05:00

69 lines
2.1 KiB
Bash

#!/usr/bin/env bash
# extras.sh — Dispatcher: loads extras category modules and shows submenu
_EXTRAS_DIR="${MODULES_DIR}/extras"
_load_extras() {
[ -n "${_EXTRAS_LOADED:-}" ] && return
[ -f "${_EXTRAS_DIR}/_helpers.sh" ] && source "${_EXTRAS_DIR}/_helpers.sh"
shopt -s nullglob
for _mod in "${_EXTRAS_DIR}"/*/*.sh "${_EXTRAS_DIR}"/*/*/*.sh; do
[ -f "$_mod" ] || continue
source "$_mod"
done
shopt -u nullglob
unset _mod
_EXTRAS_LOADED=1
}
install_extras() {
_load_extras
echo -e "${YELLOW}Extra software installation...${NC}"
if _is_headless; then
_msg "Headless Mode" "No graphical display detected.\n\nOnly terminal-friendly packages will be shown.\nGUI applications (browsers, media players, design tools)\nwill be skipped automatically." 12 60
fi
while true; do
local cat_choice
cat_choice=$(_menu "Install Programs and Software" \
"Select a category${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
"0" "Essential Pack" \
"1" "Customization System" \
"2" "Download & Network" \
"3" "Internet (Browsers, Email, VPN)" \
"4" "Media Players" \
"5" "Multimedia & Design" \
"6" "Code Editors & IDEs" \
"7" "Servers & Dev Tools" \
"8" "Security & Networking" \
"9" "Software Centers" \
"10" "Office & Productivity" \
"11" "System Tools" \
"12" "Fetch / System Info" \
"13" "Back to main menu")
[ -z "$cat_choice" ] && return
clear
case "$cat_choice" in
0) _quick_install ;;
1) _cat_customization ;;
2) _cat_download ;;
3) _cat_internet ;;
4) _cat_players ;;
5) _cat_design ;;
6) _cat_programming ;;
7) _cat_dev ;;
8) _cat_security ;;
9) _cat_software_centers ;;
10) _cat_office ;;
11) _cat_general ;;
12) _cat_fetch ;;
13) return ;;
esac
clear
done
}