mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-09-14 06:02:35 +00:00
System Refactor, GPU & Terminal Overhaul
- Bug Fixes: Rewrote `install_gaming_bullseye()` in `modules/bullseye/legacy.sh` to use a unified `_checklist` flow (matching Debian 12/13) with automatic i386 architecture detection and driver installation. Fixed greetd "Back" menu crash on Debian 11 by adding version-specific conditional logic in `desktop_display.sh`. Corrected ZRAM text overflow in `zram.sh` using `\n` line breaks for terminal wrapping. Updated Kernel Backports warning message in `debianito.sh` to clarify Bullseye limitations. - Architecture & Repositories: Refactored Debian 11 repository configuration (`configure_repos_bullseye`) to reuse modern submenus (`_repos_enable_components`, `_branch_migration`), eliminating ~44 lines of hardcoded logic and duplicate source list management. Restricted `non-free-firmware` component availability to Debian 12+ in `modules/repos.sh`. Implemented mandatory `apt autoremove -y` and `apt autoclean` execution immediately after enabling non-free/contrib components (`_repos_enable_components`). - UI & Menus: Added a new "Communication" menu (Option 4) between Internet and Media Players, featuring Signal, Telegram (with Trixie backports warning), and Hexchat. Moved all terminal emulators from System Tools to the "Customization System" -> Terminals submenu (`modules/extras/terminals/terminals.sh`) with version-specific logic (Alacritty 12+, Blackbox/Ptyxis 13+). Added Joplin installer in Office & Productivity for Debian 12/13 only. Integrated Synaptic into Software Centers menu alongside GNOME and Plasma stores. Unified Essential Pack UI across versions, switching between `fastfetch` (Trixie) and `neofetch` (Bookworm/Bullseye). - Hardware Drivers: Replaced deprecated `install_gpu_drivers()` in `modules/gpu.sh` with `_install_amd_intel_stack()` and `_install_nvidia_stack()`. Implemented specific logic for Debian 13 (Trixie): Blackwell GPUs now enable the official NVIDIA CUDA repository; Maxwell/Pascal on Backports forces a stable kernel path to ensure driver compatibility. Deprecated `install_nvidia_driver()` in favor of new stack functions while preserving global state variables (`NVIDIA_DRIVER_MODE`). - Utilities & Cleanup: Added `gdebi` and `bleachbit` to System Tools (GUI-only). Standardized menu headers across 15 files using a centralized `SCROLL_HINT` variable. Ensured VLC installation is conditional on headless status checks in Essential Pack modules.
This commit is contained in:
@@ -58,7 +58,7 @@ After running the script:
|
|||||||
| **8** | [ZRAM](/docs/zram.md)| Configure compressed RAM for memory optimization|
|
| **8** | [ZRAM](/docs/zram.md)| Configure compressed RAM for memory optimization|
|
||||||
| **9** | [Swap Management](/docs/swap.md)| Manage swap file or partition size and enable/disable swap space for system stability|
|
| **9** | [Swap Management](/docs/swap.md)| Manage swap file or partition size and enable/disable swap space for system stability|
|
||||||
| **10** | Install Programs and Software | Browse and install packages by category (Development, Themes, System Tools, etc.) using APT |
|
| **10** | Install Programs and Software | Browse and install packages by category (Development, Themes, System Tools, etc.) using APT |
|
||||||
| **11** | [Boot Rescue + GRUB](/docs/boot.md))| Config and fix GRUB bootloader issues, chroot repair, or restore system boot configuration|
|
| **11** | [Boot Rescue + GRUB](/docs/boot.md)| Config and fix GRUB bootloader issues, chroot repair, or restore system boot configuration|
|
||||||
| **12** | [Desktop & Display](/docs/desktops_display.md)| Install and configure desktops and display managers|
|
| **12** | [Desktop & Display](/docs/desktops_display.md)| Install and configure desktops and display managers|
|
||||||
| **13** | Exit | Return to terminal |
|
| **13** | Exit | Return to terminal |
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ The submenu offers the next categories:
|
|||||||
| **0** | Essential Pack | Quick install of common tools (compression, system info, VLC, MS fonts)|
|
| **0** | Essential Pack | Quick install of common tools (compression, system info, VLC, MS fonts)|
|
||||||
| **1** | Customization System | Desktop themes, icon themes, cursor themes, and fonts |
|
| **1** | Customization System | Desktop themes, icon themes, cursor themes, and fonts |
|
||||||
| **2** | Download & Network | Downloaders (aria2, ytdlp, FileZilla) + Torrent clients (qBittorrent, Deluge, Transmission) |
|
| **2** | Download & Network | Downloaders (aria2, ytdlp, FileZilla) + Torrent clients (qBittorrent, Deluge, Transmission) |
|
||||||
| **3** | Internet (Browsers, Email Clients, VPN) | Web browsers (Firefox/Mozilla, LibreWolf, Floorp, Chromium, Brave, Tor), email client (Thunderbird), and VPN tools (RiseUp, Proton, Mullvad)|
|
| **3** | Internet (Browsers, Email Clients, VPN) | Web browsers (Firefox, LibreWolf, Floorp, Chromium, Tor), email client (Thunderbird), and VPN tools (RiseUp, Proton, Mullvad)|
|
||||||
| **4** | Media Players | Multimedia playback with VLC media player and MPV for advanced video/audio support |
|
| **4** | Media Players | Multimedia playback with VLC media player and MPV for advanced video/audio support |
|
||||||
| **5** | Multimedia & Design | image editing (GIMP), video editing (Kdenlive, HandBrake), 3D modeling (Blender), audio recording (Audacity), and graphics design (Inkscape) |
|
| **5** | Multimedia & Design | image editing (GIMP), video editing (Kdenlive, HandBrake), 3D modeling (Blender), audio recording (Audacity), and graphics design (Inkscape) |
|
||||||
| **6** | Code Editors & IDEs | vim, vim-gtk3, Neovim, Helix, nano, Emacs, Kate, Mousepad, Gedit, Geany, GNOME Text Editor, and VSCodium (VS Code open-source) |
|
| **6** | Code Editors & IDEs | vim, vim-gtk3, Neovim, Helix, nano, Emacs, Kate, Mousepad, Gedit, Geany, GNOME Text Editor, and VSCodium (VS Code open-source) |
|
||||||
|
|||||||
+14
-4
@@ -91,13 +91,23 @@ main_menu() {
|
|||||||
install_firmware || true
|
install_firmware || true
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
5) install_gpu_drivers || true; STATE_REFRESHED=true ;;
|
5)
|
||||||
|
local gpu_sub
|
||||||
|
gpu_sub=$(_menu "Graphics Drivers" "" 12 50 2 \
|
||||||
|
"1" "Radeon/Intel Mesa" \
|
||||||
|
"2" "NVIDIA Drivers")
|
||||||
|
[ -z "$gpu_sub" ] && continue
|
||||||
|
clear
|
||||||
|
case $gpu_sub in
|
||||||
|
1) _install_amd_intel_stack || true ;;
|
||||||
|
2) _install_nvidia_stack || true ;;
|
||||||
|
esac
|
||||||
|
STATE_REFRESHED=true
|
||||||
|
;;
|
||||||
6)
|
6)
|
||||||
if [ "$DEBIAN_VERSION" = "11" ]; then
|
if [ "$DEBIAN_VERSION" = "11" ]; then
|
||||||
_msg "Not Available" \
|
_msg "Not Available" \
|
||||||
"Backports Kernel is not available on Debian 11 Bullseye.\n\n\
|
"Backports Kernel is not available on Debian 11 Bullseye.\n\nThe stable kernel provided by Bullseye is the only option." 10 60
|
||||||
Ultra Minimalist Rescue Mode does not include third-party\n\
|
|
||||||
kernels. Use the stable kernel provided by Bullseye." 10 60
|
|
||||||
else
|
else
|
||||||
install_kernel_backports || true
|
install_kernel_backports || true
|
||||||
fi
|
fi
|
||||||
|
|||||||
+43
-27
@@ -4,18 +4,20 @@
|
|||||||
|
|
||||||
# ── Essential Pack (Bullseye) ──
|
# ── Essential Pack (Bullseye) ──
|
||||||
_quick_install_bullseye() {
|
_quick_install_bullseye() {
|
||||||
_msg "Essential Pack — Bullseye" \
|
_msg "Essential Pack" \
|
||||||
"Install basic programs:\n\n\
|
"Install basic programs:\n\n\
|
||||||
- Compression (zip, unrar, p7zip-full)\n\
|
- Compression (zip, unrar, 7z)\n\
|
||||||
- System tools (htop, inxi, neofetch, bpytop)\n\
|
- System tools (htop, inxi, neofetch)\n\
|
||||||
- VLC media player\n\
|
- Networking (curl, wget, ufw)\n\
|
||||||
- Microsoft fonts" 13 60
|
- CA certs & GPG\n\
|
||||||
|
- VLC media player" 13 60
|
||||||
|
|
||||||
local quick_pkgs=(
|
local quick_pkgs=(
|
||||||
zip unzip rar unrar p7zip-full p7zip-rar
|
zip unzip rar unrar p7zip-full p7zip-rar
|
||||||
neofetch bpytop htop inxi vlc
|
neofetch htop inxi curl wget ufw
|
||||||
ttf-mscorefonts-installer
|
ca-certificates gnupg lsb-release
|
||||||
)
|
)
|
||||||
|
_is_headless || quick_pkgs+=(vlc)
|
||||||
_run_install_batch "${quick_pkgs[@]}"
|
_run_install_batch "${quick_pkgs[@]}"
|
||||||
echo -e "${GREEN}Essential Pack installed.${NC}"
|
echo -e "${GREEN}Essential Pack installed.${NC}"
|
||||||
}
|
}
|
||||||
@@ -64,6 +66,7 @@ _cat_customization_bullseye() {
|
|||||||
"2" "Icon Themes" \
|
"2" "Icon Themes" \
|
||||||
"3" "Cursor Themes" \
|
"3" "Cursor Themes" \
|
||||||
"4" "Fonts" \
|
"4" "Fonts" \
|
||||||
|
"5" "Terminals" \
|
||||||
)
|
)
|
||||||
[ -z "$sub" ] && return
|
[ -z "$sub" ] && return
|
||||||
case $sub in
|
case $sub in
|
||||||
@@ -71,6 +74,7 @@ _cat_customization_bullseye() {
|
|||||||
2) _cat_icons_bullseye ;;
|
2) _cat_icons_bullseye ;;
|
||||||
3) _cat_cursors_bullseye ;;
|
3) _cat_cursors_bullseye ;;
|
||||||
4) _cat_fonts_bullseye ;;
|
4) _cat_fonts_bullseye ;;
|
||||||
|
5) _cat_terminals ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,7 +422,7 @@ _cat_security_bullseye() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_cat_general_bullseye() {
|
_cat_general_bullseye() {
|
||||||
local item_count=18
|
local item_count=22
|
||||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||||
local choices
|
local choices
|
||||||
choices=$(_checklist "System Tools (Bullseye)" "Select system utilities${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
choices=$(_checklist "System Tools (Bullseye)" "Select system utilities${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||||
@@ -432,6 +436,7 @@ _cat_general_bullseye() {
|
|||||||
"gparted" "Partition editor" "$(_state gparted)" \
|
"gparted" "Partition editor" "$(_state gparted)" \
|
||||||
"htop" "Interactive process viewer" "$(_state htop)" \
|
"htop" "Interactive process viewer" "$(_state htop)" \
|
||||||
"inxi" "System information tool" "$(_state inxi)" \
|
"inxi" "System information tool" "$(_state inxi)" \
|
||||||
|
"jq" "JSON command-line processor" "$(_state jq)" \
|
||||||
"kvm" "QEMU/KVM virtualization" "$(_state virt-manager)" \
|
"kvm" "QEMU/KVM virtualization" "$(_state virt-manager)" \
|
||||||
"lshw" "List hardware details" "$(_state lshw)" \
|
"lshw" "List hardware details" "$(_state lshw)" \
|
||||||
"mc" "Midnight Commander" "$(_state mc)" \
|
"mc" "Midnight Commander" "$(_state mc)" \
|
||||||
@@ -441,6 +446,8 @@ _cat_general_bullseye() {
|
|||||||
"timeshift" "System restore snapshots" "$(_state timeshift)" \
|
"timeshift" "System restore snapshots" "$(_state timeshift)" \
|
||||||
"tmux" "Terminal multiplexer" "$(_state tmux)" \
|
"tmux" "Terminal multiplexer" "$(_state tmux)" \
|
||||||
"wine" "Windows compatibility layer" "$(_state wine)" \
|
"wine" "Windows compatibility layer" "$(_state wine)" \
|
||||||
|
"bleachbit" "System cleaner (GUI)" "$(_state bleachbit)" \
|
||||||
|
"gdebi" "Install .deb packages with deps (GUI)" "$(_state gdebi)" \
|
||||||
)
|
)
|
||||||
clear
|
clear
|
||||||
[ -z "$choices" ] && return
|
[ -z "$choices" ] && return
|
||||||
@@ -560,15 +567,16 @@ install_extras_bullseye() {
|
|||||||
"1" "Customization System" \
|
"1" "Customization System" \
|
||||||
"2" "Download & Network" \
|
"2" "Download & Network" \
|
||||||
"3" "Internet (Browsers, Email)" \
|
"3" "Internet (Browsers, Email)" \
|
||||||
"4" "Media Players" \
|
"4" "Communication" \
|
||||||
"5" "Multimedia & Design" \
|
"5" "Media Players" \
|
||||||
"6" "Code Editors & IDEs" \
|
"6" "Multimedia & Design" \
|
||||||
"7" "Servers & Dev Tools" \
|
"7" "Code Editors & IDEs" \
|
||||||
"8" "Security & Networking" \
|
"8" "Servers & Dev Tools" \
|
||||||
"9" "Software Centers" \
|
"9" "Security & Networking" \
|
||||||
"10" "System Tools" \
|
"10" "Software Centers" \
|
||||||
"11" "Fetch / System Info" \
|
"11" "System Tools" \
|
||||||
"12" "Back to main menu" \
|
"12" "Fetch / System Info" \
|
||||||
|
"13" "Back to main menu" \
|
||||||
)
|
)
|
||||||
|
|
||||||
[ -z "$cat_choice" ] && return
|
[ -z "$cat_choice" ] && return
|
||||||
@@ -579,15 +587,16 @@ install_extras_bullseye() {
|
|||||||
1) _cat_customization_bullseye ;;
|
1) _cat_customization_bullseye ;;
|
||||||
2) _cat_download_bullseye ;;
|
2) _cat_download_bullseye ;;
|
||||||
3) _cat_internet_bullseye ;;
|
3) _cat_internet_bullseye ;;
|
||||||
4) _cat_players_bullseye ;;
|
4) _cat_communication ;;
|
||||||
5) _cat_design_bullseye ;;
|
5) _cat_players_bullseye ;;
|
||||||
6) _cat_programming_bullseye ;;
|
6) _cat_design_bullseye ;;
|
||||||
7) _cat_dev_bullseye ;;
|
7) _cat_programming_bullseye ;;
|
||||||
8) _cat_security_bullseye ;;
|
8) _cat_dev_bullseye ;;
|
||||||
9) _cat_software_centers_bullseye ;;
|
9) _cat_security_bullseye ;;
|
||||||
10) _cat_general_bullseye ;;
|
10) _cat_software_centers_bullseye ;;
|
||||||
11) _cat_fetch_bullseye ;;
|
11) _cat_general_bullseye ;;
|
||||||
12) return ;;
|
12) _cat_fetch_bullseye ;;
|
||||||
|
13) return ;;
|
||||||
esac
|
esac
|
||||||
clear
|
clear
|
||||||
done
|
done
|
||||||
@@ -595,12 +604,19 @@ install_extras_bullseye() {
|
|||||||
|
|
||||||
_cat_software_centers_bullseye() {
|
_cat_software_centers_bullseye() {
|
||||||
local sc_choice
|
local sc_choice
|
||||||
sc_choice=$(_menu "Software Centers" "Choose a software store to install:" 12 65 2 \
|
sc_choice=$(_menu "Software Centers" "Choose a software store to install:" 12 65 3 \
|
||||||
"gnome-software" "Software Center for GNOME" \
|
"gnome-software" "Software Center for GNOME" \
|
||||||
"plasma-discover" "Software manager for Plasma" \
|
"plasma-discover" "Software manager for Plasma" \
|
||||||
|
"synaptic" "Classic APT package manager (GTK)" \
|
||||||
)
|
)
|
||||||
[ -z "$sc_choice" ] && return
|
[ -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
|
||||||
|
|
||||||
_run_cmd "Install" "sudo apt install -y $sc_choice" "Installing ${sc_choice}..."
|
_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
|
if _confirm "Flatpak Support" "Do you want to enable Flatpak support for this software center?"; then
|
||||||
|
|||||||
+48
-87
@@ -103,77 +103,22 @@ install_nvidia_bullseye() {
|
|||||||
# 32-bit Mesa/NVIDIA + gamemode + mangohud + goverlay + lutris
|
# 32-bit Mesa/NVIDIA + gamemode + mangohud + goverlay + lutris
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
install_gaming_bullseye() {
|
install_gaming_bullseye() {
|
||||||
echo -e "${YELLOW}Lightweight Gaming (Bullseye mode).${NC}"
|
echo -e "${YELLOW}Gaming setup (Bullseye)...${NC}"
|
||||||
|
|
||||||
local enable_32bit=false
|
|
||||||
if _confirm "32-bit Support" \
|
|
||||||
"Enable i386 architecture for 32-bit games?\n\n\
|
|
||||||
Required by Steam/Proton for 32-bit games.\n\
|
|
||||||
Installs matching 32-bit graphics drivers."; then
|
|
||||||
enable_32bit=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if $enable_32bit; then
|
|
||||||
echo "Enabling i386 multi-architecture support..."
|
|
||||||
if ! dpkg --print-foreign-architectures | grep -q i386; then
|
|
||||||
sudo dpkg --add-architecture i386
|
|
||||||
fi
|
|
||||||
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
|
||||||
|
|
||||||
if [ "$GPU_TYPE" = "nvidia" ]; then
|
|
||||||
local nv32_pkg="nvidia-driver-libs:i386"
|
|
||||||
local nv32_ver
|
|
||||||
nv32_ver=$(apt-cache policy "$nv32_pkg" 2>/dev/null | awk 'NR==3 {print $2; exit}')
|
|
||||||
if [ -n "$nv32_ver" ] && [ "$nv32_ver" != "(none)" ]; then
|
|
||||||
local msg="Source: Debian Bullseye Stable\n"
|
|
||||||
msg+="NVIDIA 32-bit Libraries ${nv32_ver}\n\n"
|
|
||||||
msg+="[+] nvidia-driver-libs:i386"
|
|
||||||
if _confirm "NVIDIA 32-bit" "$msg" 12 70; then
|
|
||||||
_run_cmd "32-bit NVIDIA" "sudo apt install -y ${nv32_pkg}" \
|
|
||||||
"Installing NVIDIA 32-bit libraries..."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "nvidia-driver-libs:i386 not available on Bullseye."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Mesa 32-bit
|
|
||||||
local mesa_32=(
|
|
||||||
"mesa-vulkan-drivers:i386"
|
|
||||||
"libgl1-mesa-dri:i386"
|
|
||||||
"libglx-mesa0:i386"
|
|
||||||
"libegl-mesa0:i386"
|
|
||||||
"mesa-va-drivers:i386"
|
|
||||||
)
|
|
||||||
local ref_ver
|
|
||||||
ref_ver=$(apt-cache policy "mesa-vulkan-drivers:i386" 2>/dev/null | \
|
|
||||||
awk 'NR==3 {print $2; exit}')
|
|
||||||
local comp_line="Components: Vulkan:i386, OpenGL:i386, GLX:i386, EGL:i386, VA-API:i386"
|
|
||||||
|
|
||||||
local msg="Mesa 32-bit drivers for gaming.\n\n"
|
|
||||||
msg+="Source: Debian Bullseye Stable\n"
|
|
||||||
msg+="Mesa ${ref_ver}\n"
|
|
||||||
msg+="${comp_line}\n\n"
|
|
||||||
msg+="Install 32-bit drivers?"
|
|
||||||
|
|
||||||
if _confirm "Mesa 32-bit" "$msg" 14 70; then
|
|
||||||
_run_cmd "Mesa 32-bit" "sudo apt install -y ${mesa_32[*]}" \
|
|
||||||
"Installing Mesa 32-bit..."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Gaming tools checklist (no Steam, no Heroic)
|
|
||||||
local choices
|
local choices
|
||||||
choices=$(_checklist "Gaming Tools — Bullseye" \
|
choices=$(_checklist "Gaming Setup — Bullseye" \
|
||||||
"Select gaming optimization tools:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
"Select gaming packages to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||||
"gamemode" "Game performance optimization" ON \
|
"steam" "Steam (requires 32-bit support)" ON \
|
||||||
|
"gamemode" "Game performance optimization" OFF \
|
||||||
"mangohud" "Performance overlay (Vulkan/OpenGL)" ON \
|
"mangohud" "Performance overlay (Vulkan/OpenGL)" ON \
|
||||||
"goverlay" "MangoHud config GUI" ON \
|
"goverlay" "MangoHud config GUI" ON \
|
||||||
"lutris" "Game launcher/manager" OFF \
|
"java" "Minecraft Java Runtime" OFF \
|
||||||
"java" "Java Runtimes (8, 17, 21)" OFF)
|
"lutris" "Lutris + Wine (requires 32-bit support)" OFF \
|
||||||
|
"retroarch" "RetroArch Emulator Frontend" OFF \
|
||||||
|
"i386" "Enable 32-bit (i386) architecture" ON)
|
||||||
|
|
||||||
if [ -z "$choices" ]; then
|
if [ -z "$choices" ]; then
|
||||||
echo "No gaming tools selected."
|
echo "No gaming packages selected."
|
||||||
_pause
|
_pause
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
@@ -181,34 +126,50 @@ Installs matching 32-bit graphics drivers."; then
|
|||||||
local cleaned
|
local cleaned
|
||||||
cleaned=$(echo "$choices" | tr -d '"')
|
cleaned=$(echo "$choices" | tr -d '"')
|
||||||
|
|
||||||
for pkg in $cleaned; do
|
local need_32bit=false
|
||||||
|
for p in $cleaned; do
|
||||||
|
case $p in steam|lutris) need_32bit=true ;; esac
|
||||||
|
done
|
||||||
|
echo "$cleaned" | grep -qw i386 && need_32bit=true
|
||||||
|
|
||||||
|
local install_list
|
||||||
|
install_list=$(echo "$cleaned" | tr ' ' '\n' | grep -v '^i386$' | tr '\n' ' ')
|
||||||
|
install_list=${install_list% }
|
||||||
|
|
||||||
|
if $need_32bit && ! dpkg --print-foreign-architectures 2>/dev/null | grep -q i386; then
|
||||||
|
echo -e "${YELLOW}Enabling i386 architecture...${NC}"
|
||||||
|
sudo dpkg --add-architecture i386
|
||||||
|
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $need_32bit; then
|
||||||
|
echo "Installing 32-bit graphics drivers..."
|
||||||
|
if [ "$GPU_TYPE" = "nvidia" ]; then
|
||||||
|
_install_nvidia_32bit
|
||||||
|
else
|
||||||
|
_install_mesa_32bit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
for pkg in $install_list; do
|
||||||
case $pkg in
|
case $pkg in
|
||||||
mangohud)
|
steam)
|
||||||
local mh_pkgs="mangohud"
|
if ensure_contrib_repo; then
|
||||||
if $enable_32bit; then
|
install_steam
|
||||||
local mh32_ver
|
else
|
||||||
mh32_ver=$(apt-cache policy mangohud:i386 2>/dev/null | \
|
echo -e "${YELLOW}Skipping Steam installation (contrib repository not enabled).${NC}"
|
||||||
awk 'NR==3 {print $2; exit}')
|
|
||||||
if [ -n "$mh32_ver" ] && [ "$mh32_ver" != "(none)" ]; then
|
|
||||||
mh_pkgs+=" mangohud:i386"
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
_run_cmd "MangoHud" "sudo apt install -y $mh_pkgs" "Installing MangoHud (64 + 32-bit)..."
|
|
||||||
;;
|
;;
|
||||||
gamemode) _run_cmd "GameMode" "sudo apt install -y gamemode" "Installing GameMode..." ;;
|
java) install_minecraft_java ;;
|
||||||
goverlay) _run_cmd "GOverlay" "sudo apt install -y goverlay" "Installing GOverlay..." ;;
|
mangohud) install_mangohud ;;
|
||||||
lutris)
|
gamemode) install_gamemode ;;
|
||||||
local pkgs="lutris wine64"
|
goverlay) install_goverlay ;;
|
||||||
if dpkg --print-foreign-architectures 2>/dev/null | grep -q i386; then
|
lutris) install_lutris ;;
|
||||||
pkgs+=" wine32"
|
retroarch) install_retroarch ;;
|
||||||
fi
|
|
||||||
_run_cmd "Lutris" "sudo apt install -y $pkgs" "Installing Lutris + Wine..."
|
|
||||||
;;
|
|
||||||
java) _install_gaming_java ;;
|
|
||||||
*) _run_install "$pkg" ;;
|
*) _run_install "$pkg" ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
echo -e "${GREEN}Lightweight gaming setup complete.${NC}"
|
echo -e "${GREEN}Gaming setup complete.${NC}"
|
||||||
_pause
|
_pause
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-44
@@ -3,48 +3,19 @@
|
|||||||
# License GPL v3
|
# License GPL v3
|
||||||
|
|
||||||
configure_repos_bullseye() {
|
configure_repos_bullseye() {
|
||||||
echo -e "${YELLOW}Repository configuration — Debian 11 Bullseye${NC}"
|
while true; do
|
||||||
|
local repo_choice
|
||||||
local info="Repository configuration for Debian 11 Bullseye.\n\n"
|
repo_choice=$(_menu "Configure Repositories — Bullseye" \
|
||||||
info+="Official repositories will be used with components\n"
|
"Select an option:" $TUI_ALTO $TUI_ANCHO 6 \
|
||||||
info+="main, contrib and non-free (non-free-firmware excluded).\n"
|
"1" "Enable Contrib & Non-Free Components" \
|
||||||
info+="DEB822 format is not used.\n"
|
"2" "Migrate to SID/Testing branch" \
|
||||||
if $BULLSEYE_USE_ARCHIVE; then
|
"3" "Back to main menu")
|
||||||
info+="\nArchive Mode: URLs will point to archive.debian.org\n"
|
[ -z "$repo_choice" ] && break
|
||||||
info+="(Bullseye LTS ended on 31 Aug 2026)."
|
clear
|
||||||
fi
|
case "$repo_choice" in
|
||||||
_msg "Repositories — Bullseye" "$info" 12 65
|
1) _repos_enable_components ;;
|
||||||
|
2) _branch_migration || true ;;
|
||||||
if [ -f /etc/apt/sources.list ]; then
|
3) break ;;
|
||||||
if ! _confirm "Repositories" "/etc/apt/sources.list already exists.\n\nOverwrite with Bullseye configuration?"; then
|
esac
|
||||||
echo "Keeping current configuration."
|
done
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
local base_uri="https://deb.debian.org/debian"
|
|
||||||
local security_uri="https://security.debian.org/debian-security"
|
|
||||||
if $BULLSEYE_USE_ARCHIVE; then
|
|
||||||
base_uri="https://archive.debian.org/debian"
|
|
||||||
security_uri="https://archive.debian.org/debian-security"
|
|
||||||
fi
|
|
||||||
|
|
||||||
local content=""
|
|
||||||
content="# Oficial Repo\n"
|
|
||||||
content+="deb ${base_uri} bullseye main contrib non-free\n"
|
|
||||||
content+="#deb-src ${base_uri} bullseye main contrib non-free\n\n"
|
|
||||||
|
|
||||||
content+="# Security\n"
|
|
||||||
content+="deb ${security_uri} bullseye-security main contrib non-free\n"
|
|
||||||
content+="#deb-src ${security_uri} bullseye-security main contrib non-free\n"
|
|
||||||
|
|
||||||
echo -e "$content" | sudo tee /etc/apt/sources.list > /dev/null
|
|
||||||
|
|
||||||
echo "Updating package lists..."
|
|
||||||
if sudo apt update; then
|
|
||||||
echo -e "${GREEN}Debian 11 Bullseye repositories configured.${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${RED}apt update failed. Check your network connection.${NC}"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,13 @@ display_manager_menu() {
|
|||||||
1) lightdm_config_menu ;;
|
1) lightdm_config_menu ;;
|
||||||
2) configure_gdm3 ;;
|
2) configure_gdm3 ;;
|
||||||
3) configure_sddm ;;
|
3) configure_sddm ;;
|
||||||
4) configure_greetd ;;
|
4)
|
||||||
|
if [ "$DEBIAN_VERSION" = "12" ] || [ "$DEBIAN_VERSION" = "13" ]; then
|
||||||
|
configure_greetd
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
;;
|
||||||
5) break ;;
|
5) break ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|||||||
+22
-20
@@ -33,16 +33,17 @@ install_extras() {
|
|||||||
"1" "Customization System" \
|
"1" "Customization System" \
|
||||||
"2" "Download & Network" \
|
"2" "Download & Network" \
|
||||||
"3" "Internet (Browsers, Email, VPN)" \
|
"3" "Internet (Browsers, Email, VPN)" \
|
||||||
"4" "Media Players" \
|
"4" "Communication" \
|
||||||
"5" "Multimedia & Design" \
|
"5" "Media Players" \
|
||||||
"6" "Code Editors & IDEs" \
|
"6" "Multimedia & Design" \
|
||||||
"7" "Servers & Dev Tools" \
|
"7" "Code Editors & IDEs" \
|
||||||
"8" "Security & Networking" \
|
"8" "Servers & Dev Tools" \
|
||||||
"9" "Software Centers" \
|
"9" "Security & Networking" \
|
||||||
"10" "Office & Productivity" \
|
"10" "Software Centers" \
|
||||||
"11" "System Tools" \
|
"11" "Office & Productivity" \
|
||||||
"12" "Fetch / System Info" \
|
"12" "System Tools" \
|
||||||
"13" "Back to main menu")
|
"13" "Fetch / System Info" \
|
||||||
|
"14" "Back to main menu")
|
||||||
|
|
||||||
[ -z "$cat_choice" ] && return
|
[ -z "$cat_choice" ] && return
|
||||||
clear
|
clear
|
||||||
@@ -52,16 +53,17 @@ install_extras() {
|
|||||||
1) _cat_customization ;;
|
1) _cat_customization ;;
|
||||||
2) _cat_download ;;
|
2) _cat_download ;;
|
||||||
3) _cat_internet ;;
|
3) _cat_internet ;;
|
||||||
4) _cat_players ;;
|
4) _cat_communication ;;
|
||||||
5) _cat_design ;;
|
5) _cat_players ;;
|
||||||
6) _cat_programming ;;
|
6) _cat_design ;;
|
||||||
7) _cat_dev ;;
|
7) _cat_programming ;;
|
||||||
8) _cat_security ;;
|
8) _cat_dev ;;
|
||||||
9) _cat_software_centers ;;
|
9) _cat_security ;;
|
||||||
10) _cat_office ;;
|
10) _cat_software_centers ;;
|
||||||
11) _cat_general ;;
|
11) _cat_office ;;
|
||||||
12) _cat_fetch ;;
|
12) _cat_general ;;
|
||||||
13) return ;;
|
13) _cat_fetch ;;
|
||||||
|
14) return ;;
|
||||||
esac
|
esac
|
||||||
clear
|
clear
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -0,0 +1,86 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# communication.sh — Signal, Telegram, HexChat
|
||||||
|
|
||||||
|
_install_signal() {
|
||||||
|
_ensure_extrepo
|
||||||
|
if [ ! -f /etc/apt/sources.list.d/extrepo_signal.sources ]; then
|
||||||
|
_run_cmd "Signal" "sudo extrepo enable signal" "Enabling Signal repository..."
|
||||||
|
fi
|
||||||
|
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||||
|
if ! is_installed "signal-desktop"; then
|
||||||
|
_run_cmd "Signal" "sudo apt install -y signal-desktop" "Installing Signal..."
|
||||||
|
echo -e "${GREEN}Signal installed.${NC}"
|
||||||
|
else
|
||||||
|
echo "Signal already installed."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_install_telegram() {
|
||||||
|
if [ "$DEBIAN_VERSION" = "13" ]; then
|
||||||
|
if ! is_backports_enabled; then
|
||||||
|
_msg "telegram-desktop" \
|
||||||
|
"telegram-desktop is only available in Trixie-backports.\n\n\
|
||||||
|
Please enable backports first via:\n Main Menu → 3 Configure Repositories" 12 65
|
||||||
|
echo -e "${YELLOW}Skipping telegram-desktop.${NC}"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if ! is_installed "telegram-desktop"; then
|
||||||
|
_run_cmd "Telegram" "sudo apt install -y -t ${DEBIAN_CODENAME}-backports telegram-desktop" \
|
||||||
|
"Installing telegram-desktop from backports..."
|
||||||
|
echo -e "${GREEN}telegram-desktop installed.${NC}"
|
||||||
|
else
|
||||||
|
echo "telegram-desktop already installed."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if ! is_installed "telegram-desktop"; then
|
||||||
|
_run_install "telegram-desktop"
|
||||||
|
echo -e "${GREEN}telegram-desktop installed.${NC}"
|
||||||
|
else
|
||||||
|
echo "telegram-desktop already installed."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_cat_communication() {
|
||||||
|
local headless=false
|
||||||
|
_is_headless && headless=true
|
||||||
|
if $headless; then
|
||||||
|
echo "Communication apps require a GUI — skipping."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local -a items=()
|
||||||
|
local signal_state; signal_state=$(_state "signal-desktop")
|
||||||
|
local telegram_state; telegram_state=$(_state "telegram-desktop")
|
||||||
|
local hexchat_state; hexchat_state=$(_state "hexchat")
|
||||||
|
items+=(
|
||||||
|
"signal-desktop" "Signal Private Messenger (extrepo)" "$signal_state"
|
||||||
|
"telegram-desktop" "Telegram Desktop messaging" "$telegram_state"
|
||||||
|
"hexchat" "IRC client (HexChat)" "$hexchat_state"
|
||||||
|
)
|
||||||
|
|
||||||
|
local item_count=${#items[@]}
|
||||||
|
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||||
|
local choices
|
||||||
|
choices=$(_checklist "Communication" "Select communication apps${SCROLL_HINT}:" \
|
||||||
|
$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
|
||||||
|
signal-desktop) _install_signal ;;
|
||||||
|
telegram-desktop) _install_telegram ;;
|
||||||
|
hexchat)
|
||||||
|
if ! is_installed "hexchat"; then
|
||||||
|
_run_install "hexchat"
|
||||||
|
echo -e "${GREEN}hexchat installed.${NC}"
|
||||||
|
else
|
||||||
|
echo "hexchat already installed."
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo -e "${GREEN}Communication tools installed.${NC}"
|
||||||
|
}
|
||||||
@@ -3,18 +3,27 @@
|
|||||||
|
|
||||||
_quick_install() {
|
_quick_install() {
|
||||||
local fetch_pkg
|
local fetch_pkg
|
||||||
if [ "$DEBIAN_CODENAME" = "bookworm" ]; then
|
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||||
fetch_pkg="neofetch"
|
|
||||||
else
|
|
||||||
fetch_pkg="fastfetch"
|
fetch_pkg="fastfetch"
|
||||||
|
else
|
||||||
|
fetch_pkg="neofetch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local comp_pkgs
|
||||||
|
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||||
|
comp_pkgs="7zip 7zip-rar"
|
||||||
|
else
|
||||||
|
comp_pkgs="p7zip-full p7zip-rar"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_msg "Essential Pack" \
|
_msg "Essential Pack" \
|
||||||
"Install basic programs:\n\n - Compression (zip, unrar, 7z)\n - System tools (htop, inxi, ${fetch_pkg}, $(_is_headless || echo "VLC"))\n - Microsoft fonts" 13 60
|
"Install basic programs:\n\n - Compression (zip, unrar, 7z)\n - System tools (htop, inxi, ${fetch_pkg})\n - Networking (curl, wget, ufw)\n - CA certs & GPG\n - VLC media player" 13 60
|
||||||
|
|
||||||
local quick_pkgs=(
|
local quick_pkgs=(
|
||||||
zip unzip rar unrar p7zip-full p7zip-rar
|
zip unzip rar unrar
|
||||||
"$fetch_pkg" htop inxi ttf-mscorefonts-installer
|
$comp_pkgs
|
||||||
|
"$fetch_pkg" htop inxi curl wget ufw
|
||||||
|
ca-certificates gnupg lsb-release
|
||||||
)
|
)
|
||||||
_is_headless || quick_pkgs+=(vlc)
|
_is_headless || quick_pkgs+=(vlc)
|
||||||
_run_install_batch "${quick_pkgs[@]}"
|
_run_install_batch "${quick_pkgs[@]}"
|
||||||
|
|||||||
@@ -26,6 +26,25 @@ Version: ${ver:-unknown}"; then
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ── Joplin (extrepo, solo Debian 12+) ──
|
||||||
|
install_joplin() {
|
||||||
|
if [ "$DEBIAN_VERSION" != "12" ] && [ "$DEBIAN_VERSION" != "13" ]; then
|
||||||
|
_msg "Joplin" "Joplin via extrepo is only available on\nDebian 12 (Bookworm) and 13 (Trixie)." 10 60
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
_ensure_extrepo
|
||||||
|
if [ ! -f /etc/apt/sources.list.d/extrepo_joplin.sources ]; then
|
||||||
|
_run_cmd "Joplin" "sudo extrepo enable joplin" "Enabling Joplin repository..."
|
||||||
|
fi
|
||||||
|
_run_cmd "APT Update" "sudo apt update" "Updating package lists..."
|
||||||
|
if ! is_installed "joplin"; then
|
||||||
|
_run_cmd "Joplin" "sudo apt install -y joplin" "Installing Joplin..."
|
||||||
|
echo -e "${GREEN}Joplin installed.${NC}"
|
||||||
|
else
|
||||||
|
echo "Joplin already installed."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# ── LibreOffice (backports) ──
|
# ── LibreOffice (backports) ──
|
||||||
install_libreoffice_bpo() {
|
install_libreoffice_bpo() {
|
||||||
if [ "$DEBIAN_VERSION" != "12" ] && [ "$DEBIAN_VERSION" != "13" ]; then
|
if [ "$DEBIAN_VERSION" != "12" ] && [ "$DEBIAN_VERSION" != "13" ]; then
|
||||||
@@ -68,6 +87,11 @@ _cat_office() {
|
|||||||
"onlyoffice" "OnlyOffice Desktop Editors (extrepo)" OFF
|
"onlyoffice" "OnlyOffice Desktop Editors (extrepo)" OFF
|
||||||
"libreoffice" "LibreOffice (backports on Bookworm/Trixie)" OFF
|
"libreoffice" "LibreOffice (backports on Bookworm/Trixie)" OFF
|
||||||
)
|
)
|
||||||
|
if [ "$DEBIAN_VERSION" = "12" ] || [ "$DEBIAN_VERSION" = "13" ]; then
|
||||||
|
items+=(
|
||||||
|
"joplin" "Joplin note-taking (extrepo)" OFF
|
||||||
|
)
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local item_count=${#items[@]}
|
local item_count=${#items[@]}
|
||||||
@@ -84,6 +108,7 @@ _cat_office() {
|
|||||||
case $pkg in
|
case $pkg in
|
||||||
onlyoffice) install_onlyoffice ;;
|
onlyoffice) install_onlyoffice ;;
|
||||||
libreoffice) install_libreoffice_bpo ;;
|
libreoffice) install_libreoffice_bpo ;;
|
||||||
|
joplin) install_joplin ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,12 +10,19 @@ _cat_software_centers() {
|
|||||||
local de_type
|
local de_type
|
||||||
de_type=$(_detect_desktop_type)
|
de_type=$(_detect_desktop_type)
|
||||||
local sc_choice
|
local sc_choice
|
||||||
sc_choice=$(_menu "Software Centers" "Choose a software store to install:" 12 65 2 \
|
sc_choice=$(_menu "Software Centers" "Choose a software store to install:" 12 65 3 \
|
||||||
"gnome-software" "Software Center for GNOME" \
|
"gnome-software" "Software Center for GNOME" \
|
||||||
"plasma-discover" "Software manager for Plasma" \
|
"plasma-discover" "Software manager for Plasma" \
|
||||||
|
"synaptic" "Classic APT package manager (GTK)" \
|
||||||
)
|
)
|
||||||
[ -z "$sc_choice" ] && return
|
[ -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
|
||||||
|
|
||||||
if { [ "$de_type" = "qt" ] && [ "$sc_choice" = "gnome-software" ]; } || \
|
if { [ "$de_type" = "qt" ] && [ "$sc_choice" = "gnome-software" ]; } || \
|
||||||
{ [ "$de_type" = "gtk" ] && [ "$sc_choice" = "plasma-discover" ]; }; then
|
{ [ "$de_type" = "gtk" ] && [ "$sc_choice" = "plasma-discover" ]; }; then
|
||||||
_msg "Warning" "Warning: This store requires extra background libraries \
|
_msg "Warning" "Warning: This store requires extra background libraries \
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ _cat_general() {
|
|||||||
local fwupd_state; fwupd_state=$(_state "fwupd")
|
local fwupd_state; fwupd_state=$(_state "fwupd")
|
||||||
local htop_state; htop_state=$(_state "htop")
|
local htop_state; htop_state=$(_state "htop")
|
||||||
local inxi_state; inxi_state=$(_state "inxi")
|
local inxi_state; inxi_state=$(_state "inxi")
|
||||||
|
local jq_state; jq_state=$(_state "jq")
|
||||||
local kvm_state; kvm_state=$(_state "virt-manager")
|
local kvm_state; kvm_state=$(_state "virt-manager")
|
||||||
local lshw_state; lshw_state=$(_state "lshw")
|
local lshw_state; lshw_state=$(_state "lshw")
|
||||||
local mc_state; mc_state=$(_state "mc")
|
local mc_state; mc_state=$(_state "mc")
|
||||||
@@ -59,6 +60,7 @@ _cat_general() {
|
|||||||
"fwupd" "Firmware update daemon" "$fwupd_state"
|
"fwupd" "Firmware update daemon" "$fwupd_state"
|
||||||
"htop" "Interactive process viewer" "$htop_state"
|
"htop" "Interactive process viewer" "$htop_state"
|
||||||
"inxi" "System information tool" "$inxi_state"
|
"inxi" "System information tool" "$inxi_state"
|
||||||
|
"jq" "JSON command-line processor" "$jq_state"
|
||||||
"kvm" "QEMU/KVM virtualization" "$kvm_state"
|
"kvm" "QEMU/KVM virtualization" "$kvm_state"
|
||||||
"lshw" "List hardware details" "$lshw_state"
|
"lshw" "List hardware details" "$lshw_state"
|
||||||
"mc" "Midnight Commander (file manager)" "$mc_state"
|
"mc" "Midnight Commander (file manager)" "$mc_state"
|
||||||
@@ -69,27 +71,27 @@ _cat_general() {
|
|||||||
"wine" "Windows compatibility layer" "$wine_state"
|
"wine" "Windows compatibility layer" "$wine_state"
|
||||||
)
|
)
|
||||||
if ! $headless; then
|
if ! $headless; then
|
||||||
local alacritty_state; alacritty_state=$(_state "alacritty")
|
local bleachbit_state; bleachbit_state=$(_state "bleachbit")
|
||||||
local conky_state; conky_state=$(_state "conky")
|
local conky_state; conky_state=$(_state "conky")
|
||||||
|
local gdebi_state; gdebi_state=$(_state "gdebi")
|
||||||
local corectrl_state; corectrl_state=$(_state "corectrl")
|
local corectrl_state; corectrl_state=$(_state "corectrl")
|
||||||
local dcgtk_state; dcgtk_state=$(_state "doublecmd-gtk")
|
local dcgtk_state; dcgtk_state=$(_state "doublecmd-gtk")
|
||||||
local dcqt_state; dcqt_state=$(_state "doublecmd-qt")
|
local dcqt_state; dcqt_state=$(_state "doublecmd-qt")
|
||||||
local disks_state; disks_state=$(_state "gnome-disk-utility")
|
local disks_state; disks_state=$(_state "gnome-disk-utility")
|
||||||
local gparted_state; gparted_state=$(_state "gparted")
|
local gparted_state; gparted_state=$(_state "gparted")
|
||||||
local hardinfo_state; hardinfo_state=$(_state "hardinfo")
|
local hardinfo_state; hardinfo_state=$(_state "hardinfo")
|
||||||
local kitty_state; kitty_state=$(_state "kitty")
|
|
||||||
local psensor_state; psensor_state=$(_state "psensor")
|
local psensor_state; psensor_state=$(_state "psensor")
|
||||||
local timeshift_state; timeshift_state=$(_state "timeshift")
|
local timeshift_state; timeshift_state=$(_state "timeshift")
|
||||||
items+=(
|
items+=(
|
||||||
"alacritty" "GPU-accelerated terminal" "$alacritty_state"
|
"bleachbit" "System cleaner (GUI)" "$bleachbit_state"
|
||||||
"conky" "System monitor for desktop" "$conky_state"
|
"conky" "System monitor for desktop" "$conky_state"
|
||||||
|
"gdebi" "Install .deb packages with deps" "$gdebi_state"
|
||||||
"corectrl" "AMD GPU control (CoreCtrl)" "$corectrl_state"
|
"corectrl" "AMD GPU control (CoreCtrl)" "$corectrl_state"
|
||||||
"doublecmd-gtk" "Dual-panel file manager (GTK)" "$dcgtk_state"
|
"doublecmd-gtk" "Dual-panel file manager (GTK)" "$dcgtk_state"
|
||||||
"doublecmd-qt" "Dual-panel file manager (Qt)" "$dcqt_state"
|
"doublecmd-qt" "Dual-panel file manager (Qt)" "$dcqt_state"
|
||||||
"gnome-disk-utility" "Disk management GUI" "$disks_state"
|
"gnome-disk-utility" "Disk management GUI" "$disks_state"
|
||||||
"gparted" "GNOME partition editor" "$gparted_state"
|
"gparted" "GNOME partition editor" "$gparted_state"
|
||||||
"hardinfo" "Graphical system profiler" "$hardinfo_state"
|
"hardinfo" "Graphical system profiler" "$hardinfo_state"
|
||||||
"kitty" "GPU-based terminal emulator" "$kitty_state"
|
|
||||||
"psensor" "Hardware temperature monitor" "$psensor_state"
|
"psensor" "Hardware temperature monitor" "$psensor_state"
|
||||||
"timeshift" "System restore snapshots" "$timeshift_state"
|
"timeshift" "System restore snapshots" "$timeshift_state"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# terminals.sh — Terminal emulators
|
||||||
|
|
||||||
|
_cat_terminals() {
|
||||||
|
local headless=false
|
||||||
|
_is_headless && headless=true
|
||||||
|
if $headless; then
|
||||||
|
echo "Terminals require a GUI — skipping."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local -a items=()
|
||||||
|
for t in kitty deepin-terminal gnome-terminal lxterminal mate-terminal \
|
||||||
|
qterminal xfce4-terminal konsole terminator guake cool-retro-term \
|
||||||
|
tilix yakuake terminology rxvt-unicode xterm; do
|
||||||
|
items+=("$t" "" "$(_state "$t")")
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$DEBIAN_VERSION" = "12" ] || [ "$DEBIAN_VERSION" = "13" ]; then
|
||||||
|
items+=("alacritty" "" "$(_state alacritty)")
|
||||||
|
fi
|
||||||
|
if [ "$DEBIAN_VERSION" = "13" ]; then
|
||||||
|
items+=("blackbox-terminal" "" "$(_state blackbox-terminal)")
|
||||||
|
items+=("ptyxis" "" "$(_state ptyxis)")
|
||||||
|
fi
|
||||||
|
|
||||||
|
local item_count=${#items[@]}
|
||||||
|
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||||
|
local choices
|
||||||
|
choices=$(_checklist "Terminals" "Select terminal emulators${SCROLL_HINT}:" \
|
||||||
|
$TUI_ALTO $TUI_ANCHO $lista_alto "${items[@]}")
|
||||||
|
clear
|
||||||
|
[ -z "$choices" ] && return
|
||||||
|
|
||||||
|
for pkg in $(echo "$choices" | tr -d '"'); do
|
||||||
|
if ! is_installed "$pkg"; then
|
||||||
|
_run_install "$pkg"
|
||||||
|
else
|
||||||
|
echo "$pkg already installed."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo -e "${GREEN}Terminals installed.${NC}"
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ _cat_customization() {
|
|||||||
"2" "Icon Themes" \
|
"2" "Icon Themes" \
|
||||||
"3" "Cursor Themes" \
|
"3" "Cursor Themes" \
|
||||||
"4" "Fonts" \
|
"4" "Fonts" \
|
||||||
|
"5" "Terminals" \
|
||||||
)
|
)
|
||||||
[ -z "$sub" ] && return
|
[ -z "$sub" ] && return
|
||||||
case $sub in
|
case $sub in
|
||||||
@@ -15,5 +16,6 @@ _cat_customization() {
|
|||||||
2) _cat_icons ;;
|
2) _cat_icons ;;
|
||||||
3) _cat_cursors ;;
|
3) _cat_cursors ;;
|
||||||
4) _cat_fonts ;;
|
4) _cat_fonts ;;
|
||||||
|
5) _cat_terminals ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -54,7 +54,7 @@ install_gaming() {
|
|||||||
choices=$(_checklist "Gaming Setup" \
|
choices=$(_checklist "Gaming Setup" \
|
||||||
"Select gaming packages to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
"Select gaming packages to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||||
"steam" "Steam (requires 32-bit support)" ON \
|
"steam" "Steam (requires 32-bit support)" ON \
|
||||||
"gamemode" "Game performance optimization" ON \
|
"gamemode" "Game performance optimization" OFF \
|
||||||
"mangohud" "Performance overlay (Vulkan/OpenGL)" ON \
|
"mangohud" "Performance overlay (Vulkan/OpenGL)" ON \
|
||||||
"goverlay" "MangoHud config GUI" ON \
|
"goverlay" "MangoHud config GUI" ON \
|
||||||
"heroic" "Heroic Launcher (Epic/GOG)" OFF \
|
"heroic" "Heroic Launcher (Epic/GOG)" OFF \
|
||||||
|
|||||||
+91
-59
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Graphics Stack — sources submodules and provides install_gpu_drivers()
|
# Graphics Stack — sources submodules, provides AMD/Intel and NVIDIA top-level functions
|
||||||
|
|
||||||
_GPU_DIR="${MODULES_DIR}/gpu"
|
_GPU_DIR="${MODULES_DIR}/gpu"
|
||||||
source "${_GPU_DIR}/_helpers.sh"
|
source "${_GPU_DIR}/_helpers.sh"
|
||||||
@@ -9,8 +9,7 @@ source "${_GPU_DIR}/nvidia.sh"
|
|||||||
# Consumed by gaming.sh to know which NVIDIA driver path was taken
|
# Consumed by gaming.sh to know which NVIDIA driver path was taken
|
||||||
NVIDIA_DRIVER_MODE=""
|
NVIDIA_DRIVER_MODE=""
|
||||||
|
|
||||||
install_gpu_drivers() {
|
_install_amd_intel_stack() {
|
||||||
# ── Unknown GPU / VM block ──
|
|
||||||
if [ "$GPU_TYPE" = "unknown" ] || [ -z "$GPU_TYPE" ]; then
|
if [ "$GPU_TYPE" = "unknown" ] || [ -z "$GPU_TYPE" ]; then
|
||||||
local mesa_pkgs=(mesa-vulkan-drivers libgl1-mesa-dri libglx-mesa0 libegl-mesa0 mesa-va-drivers)
|
local mesa_pkgs=(mesa-vulkan-drivers libgl1-mesa-dri libglx-mesa0 libegl-mesa0 mesa-va-drivers)
|
||||||
local ref_ver
|
local ref_ver
|
||||||
@@ -50,9 +49,7 @@ install_gpu_drivers() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── Detectable GPU: build plan ──
|
local plan="The script has detected your graphics hardware.\n\n"
|
||||||
local plan="The script has automatically detected your graphics hardware\n"
|
|
||||||
plan+="and prepared a personalized installation plan.\n\n"
|
|
||||||
plan+="Detected GPUs:\n"
|
plan+="Detected GPUs:\n"
|
||||||
local gpu_count=0
|
local gpu_count=0
|
||||||
while IFS= read -r gpu_line; do
|
while IFS= read -r gpu_line; do
|
||||||
@@ -70,10 +67,7 @@ install_gpu_drivers() {
|
|||||||
if $HAS_AMD; then
|
if $HAS_AMD; then
|
||||||
plan+=" [+] AMD firmware (firmware-amd-graphics)\n"
|
plan+=" [+] AMD firmware (firmware-amd-graphics)\n"
|
||||||
fi
|
fi
|
||||||
if $HAS_NVIDIA; then
|
plan+=" [+] Mesa (OpenGL/Vulkan/VA-API)\n"
|
||||||
plan+=" [+] NVIDIA driver (proprietary)\n"
|
|
||||||
fi
|
|
||||||
plan+=" [+] Mesa (version selected in next step)\n"
|
|
||||||
|
|
||||||
_msg "Graphics Stack — Plan" "$plan" 16 70
|
_msg "Graphics Stack — Plan" "$plan" 16 70
|
||||||
|
|
||||||
@@ -82,77 +76,115 @@ install_gpu_drivers() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── Sequential firmware / driver installs ──
|
|
||||||
if $HAS_INTEL; then
|
if $HAS_INTEL; then
|
||||||
install_intel_firmware
|
install_intel_firmware
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $HAS_AMD; then
|
if $HAS_AMD; then
|
||||||
install_amd_firmware
|
install_amd_firmware
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $HAS_NVIDIA; then
|
|
||||||
if [ "$DEBIAN_VERSION" = "11" ]; then
|
|
||||||
if type install_nvidia_bullseye &>/dev/null; then
|
|
||||||
install_nvidia_bullseye
|
|
||||||
else
|
|
||||||
install_nvidia_driver
|
|
||||||
fi
|
|
||||||
elif [ "$DEBIAN_VERSION" = "12" ]; then
|
|
||||||
if [ "$(is_nvidia_kepler)" = "true" ]; then
|
|
||||||
if type _install_nvidia_bookworm_kepler &>/dev/null; then
|
|
||||||
_install_nvidia_bookworm_kepler
|
|
||||||
else
|
|
||||||
install_nvidia_driver
|
|
||||||
fi
|
|
||||||
elif [ "$(is_nvidia_fermi)" = "true" ]; then
|
|
||||||
_msg "NVIDIA Fermi — Bookworm" \
|
|
||||||
"Fermi GPUs (GF1xx) are not supported\nin Debian 12 (Bookworm).\nThe nvidia-legacy-390xx driver is\nnot available in this version.\n\nNo NVIDIA driver will be installed."
|
|
||||||
NVIDIA_DRIVER_MODE=""
|
|
||||||
else
|
|
||||||
install_nvidia_driver
|
|
||||||
fi
|
|
||||||
elif [ "$DEBIAN_VERSION" = "13" ]; then
|
|
||||||
if [ "$(is_nvidia_kepler)" = "true" ] || [ "$(is_nvidia_fermi)" = "true" ]; then
|
|
||||||
_msg "NVIDIA — Trixie" \
|
|
||||||
"Kepler and Fermi GPUs are not supported\nin Debian 13 (Trixie).\n\nThe nvidia-legacy drivers are not available\nin this version of Debian.\n\nNo NVIDIA driver will be installed."
|
|
||||||
NVIDIA_DRIVER_MODE=""
|
|
||||||
else
|
|
||||||
install_nvidia_driver
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
install_nvidia_driver
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ── Mesa (once) ──
|
|
||||||
_install_mesa_backports
|
_install_mesa_backports
|
||||||
|
|
||||||
# ── Refresh GPU_VERSION after Mesa install ──
|
|
||||||
local mesa_ver
|
local mesa_ver
|
||||||
mesa_ver=$(dpkg -l libgl1-mesa-dri 2>/dev/null | awk '/^ii/ {print $3; exit}' | sed 's/-.*//')
|
mesa_ver=$(dpkg -l libgl1-mesa-dri 2>/dev/null | awk '/^ii/ {print $3; exit}' | sed 's/-.*//')
|
||||||
[ -n "$mesa_ver" ] && GPU_VERSION="Mesa ${mesa_ver}"
|
[ -n "$mesa_ver" ] && GPU_VERSION="Mesa ${mesa_ver}"
|
||||||
|
|
||||||
# ── Vendor-specific tools ──
|
|
||||||
if $HAS_INTEL; then
|
if $HAS_INTEL; then
|
||||||
offer_intel_tools
|
offer_intel_tools
|
||||||
fi
|
fi
|
||||||
if $HAS_AMD; then
|
if $HAS_AMD; then
|
||||||
offer_amd_tools
|
offer_amd_tools
|
||||||
fi
|
fi
|
||||||
if $HAS_NVIDIA; then
|
if ! $HAS_INTEL && ! $HAS_AMD; then
|
||||||
offer_generic_tools
|
offer_generic_tools
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── Build summary ──
|
local summary="Mesa: ${GPU_VERSION:-not available}\n"
|
||||||
local summary=""
|
|
||||||
summary+="Mesa: ${GPU_VERSION:-not available}\n"
|
|
||||||
if $HAS_NVIDIA; then
|
|
||||||
local nv_mode="${NVIDIA_DRIVER_MODE:-unknown}"
|
|
||||||
summary+="NVIDIA: ${nv_mode}\n"
|
|
||||||
fi
|
|
||||||
summary+="Firmware: installed for detected GPUs\n"
|
summary+="Firmware: installed for detected GPUs\n"
|
||||||
summary+="Tools: installed per vendor selection"
|
summary+="Tools: installed per vendor"
|
||||||
|
|
||||||
_msg "Graphics Stack — Complete" "$summary" 12 65
|
_msg "Graphics Stack — Complete" "$summary" 12 65
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_install_nvidia_stack() {
|
||||||
|
if ! $HAS_NVIDIA; then
|
||||||
|
_msg "NVIDIA Not Found" "No NVIDIA GPU was detected.\n\nPlease check your hardware and try again." 10 60
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local plan="The script has detected your NVIDIA GPU.\n\n"
|
||||||
|
plan+="Detected GPUs:\n"
|
||||||
|
local gpu_count=0
|
||||||
|
while IFS= read -r gpu_line; do
|
||||||
|
gpu_count=$((gpu_count + 1))
|
||||||
|
local desc
|
||||||
|
desc=$(echo "$gpu_line" | sed -E 's/.*: //; s/ *\(rev.*//')
|
||||||
|
plan+=" GPU ${gpu_count}: ${desc}\n"
|
||||||
|
done < <(lspci -nn | grep -E "VGA|3D" || true)
|
||||||
|
plan+="\nPlanned:\n [+] NVIDIA proprietary driver"
|
||||||
|
|
||||||
|
_msg "NVIDIA Stack — Plan" "$plan" 14 65
|
||||||
|
if ! _confirm "NVIDIA Stack" "Install the NVIDIA proprietary driver?"; then
|
||||||
|
echo "Skipping NVIDIA driver installation."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
NVIDIA_DRIVER_MODE=""
|
||||||
|
|
||||||
|
if [ "$DEBIAN_VERSION" = "11" ]; then
|
||||||
|
install_nvidia_bullseye
|
||||||
|
|
||||||
|
elif [ "$DEBIAN_VERSION" = "12" ]; then
|
||||||
|
if [ "$(is_nvidia_kepler)" = "true" ]; then
|
||||||
|
if type _install_nvidia_bookworm_kepler &>/dev/null; then
|
||||||
|
_install_nvidia_bookworm_kepler
|
||||||
|
else
|
||||||
|
_install_nvidia_standard
|
||||||
|
fi
|
||||||
|
elif [ "$(is_nvidia_fermi)" = "true" ]; then
|
||||||
|
_msg "NVIDIA Fermi — Bookworm" \
|
||||||
|
"Fermi GPUs (GF1xx) are not supported\nin Debian 12 (Bookworm).\nThe nvidia-legacy-390xx driver is\nnot available in this version.\n\nNo NVIDIA driver will be installed."
|
||||||
|
NVIDIA_DRIVER_MODE=""
|
||||||
|
elif [ "$(is_backports_kernel)" = "true" ]; then
|
||||||
|
_install_nvidia_bookworm_bpo
|
||||||
|
else
|
||||||
|
_install_nvidia_standard
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "$DEBIAN_VERSION" = "13" ]; then
|
||||||
|
if [ "$(is_nvidia_blackwell)" = "true" ]; then
|
||||||
|
_install_nvidia_cuda_repo
|
||||||
|
elif [ "$(is_nvidia_kepler)" = "true" ] || [ "$(is_nvidia_fermi)" = "true" ]; then
|
||||||
|
_msg "NVIDIA — Trixie" \
|
||||||
|
"Kepler and Fermi GPUs are not supported\nin Debian 13 (Trixie).\n\nThe nvidia-legacy drivers are not available\nin this version of Debian.\n\nNo NVIDIA driver will be installed."
|
||||||
|
NVIDIA_DRIVER_MODE=""
|
||||||
|
elif [ "$(is_backports_kernel)" = "true" ]; then
|
||||||
|
if [ "$(is_nvidia_maxwell)" = "true" ] || [ "$(is_nvidia_pascal)" = "true" ]; then
|
||||||
|
local gpu_gen="Maxwell"
|
||||||
|
[ "$(is_nvidia_pascal)" = "true" ] && gpu_gen="Pascal"
|
||||||
|
_msg "NVIDIA — Trixie + Backports" \
|
||||||
|
"INCOMPATIBILITY DETECTED: Your NVIDIA ${gpu_gen} GPU\n\
|
||||||
|
is NOT supported by the modern v590 driver.\n\n\
|
||||||
|
To run NVIDIA safely on Debian 13 (Trixie), you MUST use\n\
|
||||||
|
the official Debian v550 driver, which requires the\n\
|
||||||
|
standard STABLE Kernel.\n\n\
|
||||||
|
Forcing the stable driver path." 14 70
|
||||||
|
_install_nvidia_standard
|
||||||
|
NVIDIA_DRIVER_MODE="stable"
|
||||||
|
else
|
||||||
|
_install_nvidia_cuda_repo
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
_install_nvidia_standard
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
_install_nvidia_standard
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$NVIDIA_DRIVER_MODE" ]; then
|
||||||
|
offer_generic_tools
|
||||||
|
local summary="NVIDIA: ${NVIDIA_DRIVER_MODE}\n"
|
||||||
|
summary+="Tools: nvtop + vainfo"
|
||||||
|
_msg "NVIDIA Stack — Complete" "$summary" 10 55
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
# CASE B : Bookworm + backports kernel → Debian backports (-t bookworm-backports)
|
# CASE B : Bookworm + backports kernel → Debian backports (-t bookworm-backports)
|
||||||
# CASE C : Kernel stable (any distro) → Debian stable (optional backports)
|
# CASE C : Kernel stable (any distro) → Debian stable (optional backports)
|
||||||
|
|
||||||
|
# --- DEPRECATED (Replaced by _install_nvidia_stack in gpu.sh) ---
|
||||||
install_nvidia_driver() {
|
install_nvidia_driver() {
|
||||||
echo -e "${YELLOW}NVIDIA GPU detected.${NC}"
|
echo -e "${YELLOW}NVIDIA GPU detected.${NC}"
|
||||||
NVIDIA_DRIVER_MODE=""
|
NVIDIA_DRIVER_MODE=""
|
||||||
|
|||||||
@@ -374,8 +374,12 @@ popular software (like gaming platforms and proprietary tools)." 12 60; then
|
|||||||
_pause
|
_pause
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
if [ "$DEBIAN_VERSION" = "11" ]; then
|
||||||
|
components="main contrib non-free"
|
||||||
|
else
|
||||||
components="main contrib non-free non-free-firmware"
|
components="main contrib non-free non-free-firmware"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
bp_enabled=false
|
bp_enabled=false
|
||||||
bp_location="none"
|
bp_location="none"
|
||||||
@@ -398,6 +402,10 @@ popular software (like gaming platforms and proprietary tools)." 12 60; then
|
|||||||
cleanup_repo_backup
|
cleanup_repo_backup
|
||||||
echo -e "${GREEN}Repository components configured.${NC}"
|
echo -e "${GREEN}Repository components configured.${NC}"
|
||||||
_repos_offer_upgrade
|
_repos_offer_upgrade
|
||||||
|
echo -e "${GREEN}Cleaning old packages...${NC}"
|
||||||
|
sudo apt autoremove -y
|
||||||
|
sudo apt autoclean
|
||||||
|
echo -e "${GREEN}System packages cleaned.${NC}"
|
||||||
else
|
else
|
||||||
restore_previous_repos
|
restore_previous_repos
|
||||||
echo -e "${RED}apt update failed. Previous configuration restored.${NC}"
|
echo -e "${RED}apt update failed. Previous configuration restored.${NC}"
|
||||||
|
|||||||
+3
-3
@@ -13,10 +13,10 @@ install_zram() {
|
|||||||
|
|
||||||
local algo
|
local algo
|
||||||
algo=$(_menu "ZRAM Configuration" \
|
algo=$(_menu "ZRAM Configuration" \
|
||||||
"ZRAM creates a compressed block device in RAM to use as swap. This reduces disk I/O and can significantly improve responsiveness on systems with limited memory (e.g., 4GB RAM or less), at the cost of a small amount of CPU usage." \
|
"ZRAM creates a compressed swap device in RAM to reduce disk I/O and boost speed. Data is stored compressed in memory. Choose an algorithm below to balance CPU usage and compression ratio:" \
|
||||||
$TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
$TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||||
"lz4" "Fastest compression/decompression. Lowest CPU overhead. (Default)" \
|
"lz4" "Fastest compression. Lowest CPU overhead. (Default)" \
|
||||||
"zstd" "Higher compression ratio. Saves slightly more memory but uses more CPU.")
|
"zstd" "Higher compression ratio. Saves more RAM, uses more CPU.")
|
||||||
|
|
||||||
if [ -z "$algo" ]; then
|
if [ -z "$algo" ]; then
|
||||||
echo "ZRAM configuration cancelled."
|
echo "ZRAM configuration cancelled."
|
||||||
|
|||||||
Reference in New Issue
Block a user