mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-07-16 05:49:49 +00:00
fix backports and system modules
- Refactored `is_backports_enabled()` to dynamically detect backports using `DEBIAN_CODENAME` instead of hardcoded strings, improving script portability. - Added support for standalone classic backports files (`/etc/apt/sources.list.d/debian-backports.list`) and deb822 format (`*.sources`) to ensure consistent detection across different repository configurations. - Resolved Mesa and Kernel backports detection bugs, ensuring correct dialogue prompts and preventing false error messages during installation. - Implemented smart rounding for zram memory allocation to the nearest Gigabyte for optimized performance. - Enhanced Whiptail manual input validation for zram to block empty, non-numeric, or zero values. - Introduced a dedicated `software_centers.sh` module for the modular and clean installation of GNOME Software and Plasma Discover. - Added smart desktop environment detection (GTK/QT) to automatically suggest and install the optimal software center. - Implemented a two-phase installation flow for software centers (Base Store -> Optional Flatpak support) with static consistency warnings based on the detected desktop environment. - update README.md
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# software_centers.sh — Standalone Software Center installer
|
||||
|
||||
_cat_software_centers() {
|
||||
local de_type
|
||||
de_type=$(_detect_desktop_type)
|
||||
local sc_choice
|
||||
sc_choice=$(whiptail --title "Software Centers" --menu \
|
||||
"Choose a software store to install:" 12 65 2 \
|
||||
"gnome-software" "Software Center for GNOME" \
|
||||
"plasma-discover" "Software manager for Plasma" \
|
||||
3>&1 1>&2 2>&3)
|
||||
[ -z "$sc_choice" ] && return
|
||||
|
||||
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 \
|
||||
and may look visually inconsistent with your current desktop environment."
|
||||
! _confirm "Continue?" "Install anyway?" && return
|
||||
fi
|
||||
|
||||
_run_cmd "Install" "sudo apt install -y $sc_choice" "Installing ${sc_choice}..."
|
||||
|
||||
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}"
|
||||
}
|
||||
@@ -1,6 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
# system.sh — System Tools (extrepo moved here from Dev & Servers)
|
||||
|
||||
_detect_desktop_type() {
|
||||
local desktop
|
||||
desktop="${XDG_CURRENT_DESKTOP:-${DESKTOP_SESSION:-}}"
|
||||
desktop="${desktop,,}"
|
||||
|
||||
case "$desktop" in
|
||||
*kde*|*lxqt*|*razor*|*plasma*)
|
||||
echo "qt"; return ;;
|
||||
*gnome*|*xfce*|*cinnamon*|*mate*|*lxde*|*budgie*|*sway*|*hyprland*|*i3*|*bspwm*|*openbox*|*fluxbox*)
|
||||
echo "gtk"; return ;;
|
||||
esac
|
||||
|
||||
echo "gtk"
|
||||
}
|
||||
|
||||
_cat_general() {
|
||||
local headless=false
|
||||
_is_headless && headless=true
|
||||
@@ -113,19 +128,38 @@ _cat_general() {
|
||||
flatpak)
|
||||
if ! is_installed "flatpak"; then
|
||||
_run_cmd "Flatpak" "sudo apt install -y flatpak" "Installing Flatpak..."
|
||||
if command -v plasma-discover &>/dev/null; then
|
||||
_run_cmd "Flatpak" "sudo apt install -y plasma-discover-backend-flatpak" "Installing Flatpak backend..."
|
||||
echo "Flatpak backend for Discover installed."
|
||||
elif command -v gnome-software &>/dev/null; then
|
||||
_run_cmd "Flatpak" "sudo apt install -y gnome-software-plugin-flatpak" "Installing Flatpak plugin..."
|
||||
echo "Flatpak plugin for GNOME Software installed."
|
||||
fi
|
||||
else
|
||||
echo "Flatpak already installed."
|
||||
fi
|
||||
flatpak remote-add --if-not-exists flathub \
|
||||
https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
echo "Flathub repository added."
|
||||
|
||||
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
|
||||
local de_type
|
||||
de_type=$(_detect_desktop_type)
|
||||
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}"
|
||||
;;
|
||||
fwupd)
|
||||
@@ -191,3 +225,4 @@ _cat_general() {
|
||||
|
||||
echo -e "${GREEN}System tools installed.${NC}"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user