dual-gpu & audio fixes + flatpak migration

- Fixed `set -euo pipefail` crashes across hardware detection: Added `|| true` guards to all `nvidia-smi`, `dpkg -l`, `apt-cache policy`, and `nvidia-detect` pipelines in `sysinfo.sh` (3 lines) and `gpu/nvidia.sh` (7+ lines).
- Created new Audio & Sound module (`modules/extras/audio/audio.sh`) with Debian version-specific logic: Bullseye basic mode vs Bookworm/Trixie standard PipeWire stack, plus ALSA utilities, pavucontrol, pulsemixer, playerctl. Added menu entry "14 Audio & Sound".
- Migrated Flatpak from System Tools to Software Center category. Renamed menu to "Software Center & Flatpak", converted single-select to multi-select checklist in `software_centers.sh`, removed logic from `system.sh`.
- Implemented robust time synchronization: New `_ensure_time_synced()` function in `utils.sh` forces NTP active, validates timezone with interactive `dpkg-reconfigure tzdata` if needed, restarts `systemd-timesyncd`, and verifies sync status. Replaced `check_system_time` call in main script.
- Fixed System Info network detection: Removed hardcoded 2-line height limit (now dynamic via terminal size), fixed hard-coded array indices to use progressive counters for multiple interfaces including USB WiFi adapters.
This commit is contained in:
stornic56
2026-07-28 19:55:22 -05:00
committed by GitHub
parent f0cea296d7
commit ddc2642718
8 changed files with 326 additions and 100 deletions
+84 -36
View File
@@ -1,4 +1,4 @@
# software_centers.sh — Standalone Software Center installer
# software_centers.sh — Standalone Software Center + Flatpak installer
_cat_software_centers() {
local headless=false
@@ -7,46 +7,94 @@ _cat_software_centers() {
echo "Software centers require a GUI — skipping."
return
fi
local de_type
de_type=$(_detect_desktop_type)
local sc_choice
sc_choice=$(_menu "Software Centers" "Choose a software store to install:" 12 65 3 \
"gnome-software" "Software Center for GNOME" \
"plasma-discover" "Software manager for Plasma" \
"synaptic" "Classic APT package manager (GTK)" \
)
[ -z "$sc_choice" ] && return
if [ "$sc_choice" = "synaptic" ]; then
_run_cmd "Install" "sudo apt install -y synaptic" "Installing synaptic..."
echo -e "${GREEN}synaptic installed.${NC}"
return
fi
local -a items=()
local gs_state; gs_state=$(_state "gnome-software")
local pd_state; pd_state=$(_state "plasma-discover")
local sy_state; sy_state=$(_state "synaptic")
local fp_state; fp_state=$(_state "flatpak")
items+=(
"gnome-software" "Software Center for GNOME" "$gs_state"
"plasma-discover" "Software manager for Plasma" "$pd_state"
"synaptic" "Classic APT package manager (GTK)" "$sy_state"
"flatpak" "Flatpak sandbox + Flathub" "$fp_state"
)
if { [ "$de_type" = "qt" ] && [ "$sc_choice" = "gnome-software" ]; } || \
{ [ "$de_type" = "gtk" ] && [ "$sc_choice" = "plasma-discover" ]; }; then
_msg "Warning" "Warning: This store requires extra background libraries \
local item_count=${#items[@]}
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
local choices
choices=$(_checklist "Software Center & Flatpak" \
"Check [*] the packages you want installed.\n" \
$TUI_ALTO $TUI_ANCHO $lista_alto "${items[@]}")
clear
[ -z "$choices" ] && return
local cleaned; cleaned=$(echo "$choices" | tr -d '"')
for pkg in $cleaned; do
case $pkg in
gnome-software)
if [ "$de_type" = "qt" ]; then
_msg "Warning" "Warning: This store requires extra background libraries \
and may look visually inconsistent with your current desktop environment."
! _confirm "Continue?" "Install anyway?" && return
fi
! _confirm "Continue?" "Install anyway?" && continue
fi
_run_cmd "Install" "sudo apt install -y gnome-software" "Installing GNOME Software..."
echo -e "${GREEN}gnome-software installed.${NC}"
;;
plasma-discover)
if [ "$de_type" = "gtk" ]; then
_msg "Warning" "Warning: This store requires extra background libraries \
and may look visually inconsistent with your current desktop environment."
! _confirm "Continue?" "Install anyway?" && continue
fi
_run_cmd "Install" "sudo apt install -y plasma-discover" "Installing Plasma Discover..."
echo -e "${GREEN}plasma-discover installed.${NC}"
;;
synaptic)
_run_cmd "Install" "sudo apt install -y synaptic" "Installing synaptic..."
echo -e "${GREEN}synaptic installed.${NC}"
;;
flatpak)
if ! is_installed "flatpak"; then
_run_cmd "Flatpak" "sudo apt install -y flatpak" "Installing Flatpak..."
else
echo "Flatpak already installed."
fi
flatpak remote-add --if-not-exists flathub \
https://dl.flathub.org/repo/flathub.flatpakrepo
echo "Flathub repository added."
_run_cmd "Install" "sudo apt install -y $sc_choice" "Installing ${sc_choice}..."
if command -v plasma-discover &>/dev/null; then
if ! is_installed "plasma-discover-backend-flatpak" 2>/dev/null; then
if _confirm "Discover Backend" "Install Flatpak backend for Plasma Discover?"; then
_run_cmd "Backend" "sudo apt install -y plasma-discover-backend-flatpak" "Installing Flatpak backend..."
fi
fi
elif command -v gnome-software &>/dev/null; then
if ! is_installed "gnome-software-plugin-flatpak" 2>/dev/null; then
if _confirm "GNOME Plugin" "Install Flatpak plugin for GNOME Software?"; then
_run_cmd "Plugin" "sudo apt install -y gnome-software-plugin-flatpak" "Installing Flatpak plugin..."
fi
fi
else
if [ "$de_type" = "qt" ]; then
if _confirm "Software Center" "Install Plasma Discover for Flatpak management?"; then
_run_cmd "Discover" "sudo apt install -y plasma-discover plasma-discover-backend-flatpak" "Installing Discover..."
fi
else
if _confirm "Software Center" "Install GNOME Software for Flatpak management?"; then
_run_cmd "GNOME Software" "sudo apt install -y gnome-software gnome-software-plugin-flatpak" "Installing GNOME Software..."
fi
fi
fi
echo -e "${GREEN}A reboot is recommended.${NC}"
;;
esac
done
if _confirm "Flatpak Support" "Do you want to enable Flatpak support for this software center?"; then
local bpkg
if [ "$sc_choice" = "gnome-software" ]; then
bpkg="gnome-software-plugin-flatpak"
else
bpkg="plasma-discover-backend-flatpak"
fi
if ! is_installed "flatpak"; then
_run_cmd "Flatpak" "sudo apt install -y flatpak" "Installing Flatpak..."
fi
_run_cmd "Plugin" "sudo apt install -y $bpkg" "Installing $bpkg..."
flatpak remote-add --if-not-exists flathub \
https://dl.flathub.org/repo/flathub.flatpakrepo
echo "Flathub repository added."
fi
echo -e "${GREEN}Software store installed.${NC}"
echo -e "${GREEN}Software center & Flatpak setup complete.${NC}"
}