mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-07-16 05:49:49 +00:00
Broadcom, Utils & Headless Fixes
- Removed dead Broadcom hardware IDs (4357/4358/4360/4727) from `_is_broadcom_b43`, retaining only valid ID 4352 to eliminate false positives in the case statement. - Added a guard in `_handle_wireless` Level 3 to verify `linux-headers` availability via `apt-cache policy`. Skips DKMS compilation if headers are missing, preventing transaction failures during installation. - Implemented Broadcom combo card detection (WiFi + Bluetooth) by scanning `PCI_BT_DEVS`. Automatically writes `/etc/modprobe.d/broadcom-combo.conf` with `softdep wl post: btusb` and warns users about potential reboot requirements. - Enhanced Level 2 (`firmware-b43-installer`) with post-installation validation for `/lib/firmware/b43`. Provides clear recovery instructions via `sudo dpkg-reconfigure firmware-b43-installer` if the directory is empty or missing after installation. - Created a new helper `_msg_red()` in `utils.sh` to handle critical error messages with colored Whiptail output, replacing standard alerts for migration warnings and failures. - Updated `repos/migrate.sh` to use `_msg_red()` for branch migration warnings and failure states, ensuring visibility of critical issues while keeping completion messages informative. - Verified headless mode guards across 16 separate extras files (`office.sh`, `fetch.sh`, `cursors.sh`, etc.), preventing unnecessary package installations on servers without display environments. - Completed syntax verification (`bash -n`) across all core and extra modules, ensuring no errors in the updated logic for firmware, gaming, swap, or repository management scripts. - update readme.md
This commit is contained in:
@@ -2,21 +2,29 @@
|
||||
# cursors.sh — Cursor themes
|
||||
|
||||
_cat_cursors() {
|
||||
local bibata_state; bibata_state=$(_state "bibata-cursor-theme")
|
||||
local breeze_state; breeze_state=$(_state "breeze-cursor-theme")
|
||||
local chameleon_state; chameleon_state=$(_state "chameleon-cursor-theme")
|
||||
local dmz_state; dmz_state=$(_state "dmz-cursor-theme")
|
||||
local xcursor_state; xcursor_state=$(_state "xcursor-themes")
|
||||
local oxygen_state; oxygen_state=$(_state "oxygencursors")
|
||||
local headless=false
|
||||
_is_headless && headless=true
|
||||
local -a items=()
|
||||
if ! $headless; then
|
||||
local bibata_state; bibata_state=$(_state "bibata-cursor-theme")
|
||||
local breeze_state; breeze_state=$(_state "breeze-cursor-theme")
|
||||
local chameleon_state; chameleon_state=$(_state "chameleon-cursor-theme")
|
||||
local dmz_state; dmz_state=$(_state "dmz-cursor-theme")
|
||||
local xcursor_state; xcursor_state=$(_state "xcursor-themes")
|
||||
local oxygen_state; oxygen_state=$(_state "oxygencursors")
|
||||
items+=(
|
||||
"bibata-cursor-theme" "Bibata cursors$(_inst bibata-cursor-theme)" "$bibata_state"
|
||||
"breeze-cursor-theme" "Breeze cursors (KDE)$(_inst breeze-cursor-theme)" "$breeze_state"
|
||||
"chameleon-cursor-theme" "Chameleon cursors$(_inst chameleon-cursor-theme)" "$chameleon_state"
|
||||
"dmz-cursor-theme" "DMZ cursors$(_inst dmz-cursor-theme)" "$dmz_state"
|
||||
"xcursor-themes" "X11 base cursors$(_inst xcursor-themes)" "$xcursor_state"
|
||||
"oxygencursors" "Oxygen cursors (KDE legacy)$(_inst oxygencursors)" "$oxygen_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local choices
|
||||
choices=$(_checklist "Cursor Themes" "Select cursor themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"bibata-cursor-theme" "Bibata cursors$(_inst bibata-cursor-theme)" "$bibata_state" \
|
||||
"breeze-cursor-theme" "Breeze cursors (KDE)$(_inst breeze-cursor-theme)" "$breeze_state" \
|
||||
"chameleon-cursor-theme" "Chameleon cursors$(_inst chameleon-cursor-theme)" "$chameleon_state" \
|
||||
"dmz-cursor-theme" "DMZ cursors$(_inst dmz-cursor-theme)" "$dmz_state" \
|
||||
"xcursor-themes" "X11 base cursors$(_inst xcursor-themes)" "$xcursor_state" \
|
||||
"oxygencursors" "Oxygen cursors (KDE legacy)$(_inst oxygencursors)" "$oxygen_state" \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
|
||||
@@ -4,23 +4,29 @@
|
||||
_cat_themes() {
|
||||
local headless=false
|
||||
_is_headless && headless=true
|
||||
local arc_state; arc_state=$(_state "arc-theme")
|
||||
local blackbird_state; blackbird_state=$(_state "blackbird-gtk-theme")
|
||||
local bluebird_state; bluebird_state=$(_state "bluebird-gtk-theme")
|
||||
local breeze_gtk_state; breeze_gtk_state=$(_state "breeze-gtk-theme")
|
||||
local greybird_state; greybird_state=$(_state "greybird-gtk-theme")
|
||||
local numix_gtk_state; numix_gtk_state=$(_state "numix-gtk-theme")
|
||||
local orchis_state; orchis_state=$(_state "orchis-gtk-theme")
|
||||
local -a items=()
|
||||
if ! $headless; then
|
||||
local arc_state; arc_state=$(_state "arc-theme")
|
||||
local blackbird_state; blackbird_state=$(_state "blackbird-gtk-theme")
|
||||
local bluebird_state; bluebird_state=$(_state "bluebird-gtk-theme")
|
||||
local breeze_gtk_state; breeze_gtk_state=$(_state "breeze-gtk-theme")
|
||||
local greybird_state; greybird_state=$(_state "greybird-gtk-theme")
|
||||
local numix_gtk_state; numix_gtk_state=$(_state "numix-gtk-theme")
|
||||
local orchis_state; orchis_state=$(_state "orchis-gtk-theme")
|
||||
items+=(
|
||||
"arc-theme" "Arc GTK theme$(_inst arc-theme)" "$arc_state"
|
||||
"blackbird-gtk-theme" "Blackbird GTK theme$(_inst blackbird-gtk-theme)" "$blackbird_state"
|
||||
"bluebird-gtk-theme" "Bluebird GTK theme$(_inst bluebird-gtk-theme)" "$bluebird_state"
|
||||
"breeze-gtk-theme" "Breeze GTK theme (KDE port)$(_inst breeze-gtk-theme)" "$breeze_gtk_state"
|
||||
"greybird-gtk-theme" "Greybird GTK theme$(_inst greybird-gtk-theme)" "$greybird_state"
|
||||
"numix-gtk-theme" "Numix GTK theme$(_inst numix-gtk-theme)" "$numix_gtk_state"
|
||||
"orchis-gtk-theme" "Orchis GTK theme$(_inst orchis-gtk-theme)" "$orchis_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local choices
|
||||
choices=$(_checklist "Desktop Themes (GTK/KDE)" "Select desktop themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"arc-theme" "Arc GTK theme$(_inst arc-theme)" "$arc_state" \
|
||||
"blackbird-gtk-theme" "Blackbird GTK theme$(_inst blackbird-gtk-theme)" "$blackbird_state" \
|
||||
"bluebird-gtk-theme" "Bluebird GTK theme$(_inst bluebird-gtk-theme)" "$bluebird_state" \
|
||||
"breeze-gtk-theme" "Breeze GTK theme (KDE port)$(_inst breeze-gtk-theme)" "$breeze_gtk_state" \
|
||||
"greybird-gtk-theme" "Greybird GTK theme$(_inst greybird-gtk-theme)" "$greybird_state" \
|
||||
"numix-gtk-theme" "Numix GTK theme$(_inst numix-gtk-theme)" "$numix_gtk_state" \
|
||||
"orchis-gtk-theme" "Orchis GTK theme$(_inst orchis-gtk-theme)" "$orchis_state" \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -29,10 +35,6 @@ _cat_themes() {
|
||||
local cleaned; cleaned=$(echo "$choices" | tr -d '"')
|
||||
|
||||
for pkg in $cleaned; do
|
||||
if $headless; then
|
||||
echo "Skipping $pkg (headless mode)"
|
||||
continue
|
||||
fi
|
||||
if ! is_installed "$pkg"; then
|
||||
_run_install "$pkg"
|
||||
else
|
||||
|
||||
@@ -2,25 +2,33 @@
|
||||
# fonts.sh — Fonts
|
||||
|
||||
_cat_fonts() {
|
||||
local bebas_state; bebas_state=$(_state "fonts-bebas-neue")
|
||||
local anon_state; anon_state=$(_state "fonts-anonymous-pro")
|
||||
local verana_state; verana_state=$(_state "fonts-adf-verana")
|
||||
local f3270_state; f3270_state=$(_state "fonts-3270")
|
||||
local liberation_state; liberation_state=$(_state "fonts-liberation")
|
||||
local mscore_state; mscore_state=$(_state "ttf-mscorefonts-installer")
|
||||
local ubuntu_state; ubuntu_state=$(_state "fonts-ubuntu")
|
||||
local recommended_state; recommended_state=$(_state "fonts-recommended")
|
||||
local headless=false
|
||||
_is_headless && headless=true
|
||||
local -a items=()
|
||||
if ! $headless; then
|
||||
local bebas_state; bebas_state=$(_state "fonts-bebas-neue")
|
||||
local anon_state; anon_state=$(_state "fonts-anonymous-pro")
|
||||
local verana_state; verana_state=$(_state "fonts-adf-verana")
|
||||
local f3270_state; f3270_state=$(_state "fonts-3270")
|
||||
local liberation_state; liberation_state=$(_state "fonts-liberation")
|
||||
local mscore_state; mscore_state=$(_state "ttf-mscorefonts-installer")
|
||||
local ubuntu_state; ubuntu_state=$(_state "fonts-ubuntu")
|
||||
local recommended_state; recommended_state=$(_state "fonts-recommended")
|
||||
items+=(
|
||||
"fonts-bebas-neue" "Bebas Neue (display)$(_inst fonts-bebas-neue)" "$bebas_state"
|
||||
"fonts-anonymous-pro" "Anonymous Pro (monospace)$(_inst fonts-anonymous-pro)" "$anon_state"
|
||||
"fonts-adf-verana" "ADF Verana (sans-serif)$(_inst fonts-adf-verana)" "$verana_state"
|
||||
"fonts-3270" "IBM 3270 terminal font$(_inst fonts-3270)" "$f3270_state"
|
||||
"fonts-liberation" "Liberation (MS-compatible)$(_inst fonts-liberation)" "$liberation_state"
|
||||
"ttf-mscorefonts-installer" "Microsoft fonts (EULA required)$(_inst ttf-mscorefonts-installer)" "$mscore_state"
|
||||
"fonts-ubuntu" "Ubuntu font family$(_inst fonts-ubuntu)" "$ubuntu_state"
|
||||
"fonts-recommended" "Debian recommended fonts$(_inst fonts-recommended)" "$recommended_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local choices
|
||||
choices=$(_checklist "Fonts" "Select fonts to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"fonts-bebas-neue" "Bebas Neue (display)$(_inst fonts-bebas-neue)" "$bebas_state" \
|
||||
"fonts-anonymous-pro" "Anonymous Pro (monospace)$(_inst fonts-anonymous-pro)" "$anon_state" \
|
||||
"fonts-adf-verana" "ADF Verana (sans-serif)$(_inst fonts-adf-verana)" "$verana_state" \
|
||||
"fonts-3270" "IBM 3270 terminal font$(_inst fonts-3270)" "$f3270_state" \
|
||||
"fonts-liberation" "Liberation (MS-compatible)$(_inst fonts-liberation)" "$liberation_state" \
|
||||
"ttf-mscorefonts-installer" "Microsoft fonts (EULA required)$(_inst ttf-mscorefonts-installer)" "$mscore_state" \
|
||||
"fonts-ubuntu" "Ubuntu font family$(_inst fonts-ubuntu)" "$ubuntu_state" \
|
||||
"fonts-recommended" "Debian recommended fonts$(_inst fonts-recommended)" "$recommended_state" \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
|
||||
@@ -4,40 +4,41 @@
|
||||
_cat_icons() {
|
||||
local headless=false
|
||||
_is_headless && headless=true
|
||||
local breeze_state; breeze_state=$(_state "breeze-icon-theme")
|
||||
local deepin_state; deepin_state=$(_state "deepin-icon-theme")
|
||||
local ele_state; ele_state=$(_state "elementary-icon-theme")
|
||||
local ele_xfce_state; ele_xfce_state=$(_state "elementary-xfce-icon-theme")
|
||||
local moka_state; moka_state=$(_state "moka-icon-theme")
|
||||
local numix_state; numix_state=$(_state "numix-icon-theme")
|
||||
local numix_c_state; numix_c_state=$(_state "numix-icon-theme-circle")
|
||||
local obsidian_state; obsidian_state=$(_state "obsidian-icon-theme")
|
||||
local papirus_state; papirus_state=$(_state "papirus-icon-theme")
|
||||
local paper_state; paper_state=$(_state "paper-icon-theme")
|
||||
local suru_state; suru_state=$(_state "suru-icon-theme")
|
||||
local -a items=()
|
||||
if ! $headless; then
|
||||
local breeze_state; breeze_state=$(_state "breeze-icon-theme")
|
||||
local deepin_state; deepin_state=$(_state "deepin-icon-theme")
|
||||
local ele_state; ele_state=$(_state "elementary-icon-theme")
|
||||
local ele_xfce_state; ele_xfce_state=$(_state "elementary-xfce-icon-theme")
|
||||
local moka_state; moka_state=$(_state "moka-icon-theme")
|
||||
local numix_state; numix_state=$(_state "numix-icon-theme")
|
||||
local numix_c_state; numix_c_state=$(_state "numix-icon-theme-circle")
|
||||
local obsidian_state; obsidian_state=$(_state "obsidian-icon-theme")
|
||||
local papirus_state; papirus_state=$(_state "papirus-icon-theme")
|
||||
local paper_state; paper_state=$(_state "paper-icon-theme")
|
||||
local suru_state; suru_state=$(_state "suru-icon-theme")
|
||||
|
||||
local kf6_state="OFF"
|
||||
local has_kf6=false
|
||||
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||
kf6_state=$(_state "kf6-breeze-icon-theme")
|
||||
has_kf6=true
|
||||
fi
|
||||
local kf6_state="OFF"
|
||||
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||
kf6_state=$(_state "kf6-breeze-icon-theme")
|
||||
fi
|
||||
|
||||
local items=(
|
||||
"breeze-icon-theme" "Breeze icon theme$(_inst breeze-icon-theme)" "$breeze_state"
|
||||
"deepin-icon-theme" "Deepin icon theme$(_inst deepin-icon-theme)" "$deepin_state"
|
||||
"elementary-icon-theme" "Elementary icon theme$(_inst elementary-icon-theme)" "$ele_state"
|
||||
"elementary-xfce-icon-theme" "Elementary Xfce icons$(_inst elementary-xfce-icon-theme)" "$ele_xfce_state"
|
||||
"moka-icon-theme" "Moka icon theme$(_inst moka-icon-theme)" "$moka_state"
|
||||
"numix-icon-theme" "Numix icon theme$(_inst numix-icon-theme)" "$numix_state"
|
||||
"numix-icon-theme-circle" "Numix Circle icon theme$(_inst numix-icon-theme-circle)" "$numix_c_state"
|
||||
"obsidian-icon-theme" "Obsidian icon theme$(_inst obsidian-icon-theme)" "$obsidian_state"
|
||||
"papirus-icon-theme" "Papirus icon theme$(_inst papirus-icon-theme)" "$papirus_state"
|
||||
"paper-icon-theme" "Paper icon theme$(_inst paper-icon-theme)" "$paper_state"
|
||||
"suru-icon-theme" "Suru icon theme$(_inst suru-icon-theme)" "$suru_state"
|
||||
)
|
||||
if $has_kf6; then
|
||||
items+=("kf6-breeze-icon-theme" "KF6 Breeze icon theme$(_inst kf6-breeze-icon-theme)" "$kf6_state")
|
||||
items=(
|
||||
"breeze-icon-theme" "Breeze icon theme$(_inst breeze-icon-theme)" "$breeze_state"
|
||||
"deepin-icon-theme" "Deepin icon theme$(_inst deepin-icon-theme)" "$deepin_state"
|
||||
"elementary-icon-theme" "Elementary icon theme$(_inst elementary-icon-theme)" "$ele_state"
|
||||
"elementary-xfce-icon-theme" "Elementary Xfce icons$(_inst elementary-xfce-icon-theme)" "$ele_xfce_state"
|
||||
"moka-icon-theme" "Moka icon theme$(_inst moka-icon-theme)" "$moka_state"
|
||||
"numix-icon-theme" "Numix icon theme$(_inst numix-icon-theme)" "$numix_state"
|
||||
"numix-icon-theme-circle" "Numix Circle icon theme$(_inst numix-icon-theme-circle)" "$numix_c_state"
|
||||
"obsidian-icon-theme" "Obsidian icon theme$(_inst obsidian-icon-theme)" "$obsidian_state"
|
||||
"papirus-icon-theme" "Papirus icon theme$(_inst papirus-icon-theme)" "$papirus_state"
|
||||
"paper-icon-theme" "Paper icon theme$(_inst paper-icon-theme)" "$paper_state"
|
||||
"suru-icon-theme" "Suru icon theme$(_inst suru-icon-theme)" "$suru_state"
|
||||
)
|
||||
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||
items+=("kf6-breeze-icon-theme" "KF6 Breeze icon theme$(_inst kf6-breeze-icon-theme)" "$kf6_state")
|
||||
fi
|
||||
fi
|
||||
|
||||
local choices
|
||||
@@ -51,10 +52,6 @@ _cat_icons() {
|
||||
local cleaned; cleaned=$(echo "$choices" | tr -d '"')
|
||||
|
||||
for pkg in $cleaned; do
|
||||
if $headless; then
|
||||
echo "Skipping $pkg (headless mode)"
|
||||
continue
|
||||
fi
|
||||
if ! is_installed "$pkg"; then
|
||||
_run_install "$pkg"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user