mirror of
https://github.com/stornic56/debianito-post-install.git
synced 2026-07-16 05:49:49 +00:00
clean TUI core
- Stripped forced-scrollbar hack from _menu and _checklist - Eliminated TUI_ANCHO_REFORZADO overflow across 9 files - Removed redundant _inst() function globally - Added dynamic list height calculation for checklists - Introduced Desktop & Display menu (Option 12) - Fixed non-free-firmware false positive in repo detection - Restored terminal transparency for apt/vainfo output"
This commit is contained in:
@@ -19,26 +19,28 @@ _cat_design() {
|
||||
local scribus_state; scribus_state=$(_state "scribus")
|
||||
local shotcut_state; shotcut_state=$(_state "shotcut")
|
||||
items+=(
|
||||
"audacity" "Audio editor/recorder$(_inst audacity)" "$audacity_state"
|
||||
"ardour" "Digital audio workstation$(_inst ardour)" "$ardour_state"
|
||||
"blender" "3D modeling/animation suite$(_inst blender)" "$blender_state"
|
||||
"gimp" "Image editor (Photoshop alternative)$(_inst gimp)" "$gimp_state"
|
||||
"handbrake" "Video transcoder (DVD ripper)$(_inst handbrake)" "$handbrake_state"
|
||||
"inkscape" "Vector graphics editor$(_inst inkscape)" "$inkscape_state"
|
||||
"kdenlive" "Video editor (KDE)$(_inst kdenlive)" "$kdenlive_state"
|
||||
"krita" "Digital painting/illustration$(_inst krita)" "$krita_state"
|
||||
"obs-studio" "Screen recording/streaming$(_inst obs-studio)" "$obs_state"
|
||||
"openshot-qt" "Video editor (simple)$(_inst openshot-qt)" "$openshot_state"
|
||||
"scribus" "Desktop publishing (DTP)$(_inst scribus)" "$scribus_state"
|
||||
"shotcut" "Video editor (cross-platform)$(_inst shotcut)" "$shotcut_state"
|
||||
"audacity" "Audio editor/recorder" "$audacity_state"
|
||||
"ardour" "Digital audio workstation" "$ardour_state"
|
||||
"blender" "3D modeling/animation" "$blender_state"
|
||||
"gimp" "Image editor" "$gimp_state"
|
||||
"handbrake" "Video transcoder" "$handbrake_state"
|
||||
"inkscape" "Vector graphics editor" "$inkscape_state"
|
||||
"kdenlive" "Video editor (KDE)" "$kdenlive_state"
|
||||
"krita" "Digital painting" "$krita_state"
|
||||
"obs-studio" "Screen recording" "$obs_state"
|
||||
"openshot-qt" "Simple video editor" "$openshot_state"
|
||||
"scribus" "Desktop publishing" "$scribus_state"
|
||||
"shotcut" "Cross-platform video editor" "$shotcut_state"
|
||||
)
|
||||
fi
|
||||
local ffmpeg_state; ffmpeg_state=$(_state "ffmpeg")
|
||||
items+=("ffmpeg" "Multimedia framework (CLI)$(_inst ffmpeg)" "$ffmpeg_state")
|
||||
items+=("ffmpeg" "Multimedia framework (CLI)" "$ffmpeg_state")
|
||||
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Multimedia & Design" "Select multimedia and design tools${SCROLL_HINT}:" \
|
||||
$TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA "${items[@]}")
|
||||
$TUI_ALTO $TUI_ANCHO $lista_alto "${items[@]}")
|
||||
clear
|
||||
|
||||
[ -z "$choices" ] && return
|
||||
|
||||
+17
-16
@@ -21,26 +21,27 @@ _cat_dev() {
|
||||
local jdk_desc; jdk_desc=$(_any_jdk_installed_desc)
|
||||
local jdk_state; jdk_state=$(_any_jdk_state)
|
||||
items+=(
|
||||
"apache2" "Apache web server$(_inst apache2)" "$apache_state"
|
||||
"build-essential" "C/C++ build tools (gcc, make)$(_inst build-essential)" "$build_state"
|
||||
"certbot" "Let's Encrypt TLS certificates$(_inst certbot)" "$certbot_state"
|
||||
"docker" "Docker + docker-compose$(_inst docker.io)" "$docker_state"
|
||||
"mariadb-server" "MariaDB database server$(_inst mariadb-server)" "$mariadb_state"
|
||||
"netcat-openbsd" "TCP/IP networking utility$(_inst netcat-openbsd)" "$netcat_state"
|
||||
"nginx" "Nginx web server$(_inst nginx)" "$nginx_state"
|
||||
"openssh-server" "SSH server$(_inst openssh-server)" "$ssh_state"
|
||||
"openssl" "OpenSSL cryptography toolkit$(_inst openssl)" "$openssl_state"
|
||||
"postgresql" "PostgreSQL database server$(_inst postgresql)" "$pg_state"
|
||||
"python3-pip" "Python 3 pip + venv + dev$(_inst python3-pip)" "$pip_state"
|
||||
"redis-server" "Redis key-value store$(_inst redis-server)" "$redis_state"
|
||||
"sqlite3" "SQLite database engine$(_inst sqlite3)" "$sqlite_state"
|
||||
"jellyfin" "Jellyfin Media Server (Web GUI on port 8096)$(_inst jellyfin)" OFF
|
||||
"apache2" "Apache web server" "$apache_state"
|
||||
"build-essential" "C/C++ build tools (gcc, make)" "$build_state"
|
||||
"certbot" "Let's Encrypt TLS certificates" "$certbot_state"
|
||||
"docker" "Docker + docker-compose" "$docker_state"
|
||||
"mariadb-server" "MariaDB database server" "$mariadb_state"
|
||||
"netcat-openbsd" "TCP/IP networking utility" "$netcat_state"
|
||||
"nginx" "Nginx web server" "$nginx_state"
|
||||
"openssh-server" "SSH server" "$ssh_state"
|
||||
"openssl" "OpenSSL cryptography toolkit" "$openssl_state"
|
||||
"postgresql" "PostgreSQL database server" "$pg_state"
|
||||
"python3-pip" "Python 3 pip + venv + dev" "$pip_state"
|
||||
"redis-server" "Redis key-value store" "$redis_state"
|
||||
"sqlite3" "SQLite database engine" "$sqlite_state"
|
||||
"jellyfin" "Jellyfin Media Server (Web GUI on port 8096)" OFF
|
||||
"openjdk-dev-env" "Adoptium Temurin JDK (17, 21, 25 LTS)${jdk_desc}" "${jdk_state}"
|
||||
)
|
||||
|
||||
local TUI_ANCHO_REFORZADO=$((TUI_ANCHO + 6))
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Development & Servers" "Select development tools and servers${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO_REFORZADO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Development & Servers" "Select development tools and servers${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -13,14 +13,14 @@ _cat_download() {
|
||||
local qbitnox_state; qbitnox_state=$(_state "qbittorrent-nox")
|
||||
local tr_cli_state; tr_cli_state=$(_state "transmission-cli")
|
||||
items1+=(
|
||||
"aria2" "Multiprotocol downloader (CLI)$(_inst aria2)" "$aria2_state"
|
||||
"yt-dlp" "Video downloader CLI$(_inst yt-dlp)" "$ytdlp_state"
|
||||
"aria2" "Multiprotocol downloader (CLI)" "$aria2_state"
|
||||
"yt-dlp" "Video downloader CLI" "$ytdlp_state"
|
||||
)
|
||||
items2+=(
|
||||
"deluged" "BitTorrent daemon/server$(_inst deluged)" "$deluged_state"
|
||||
"mktorrent" "Torrent metainfo creator (CLI)$(_inst mktorrent)" "$mktorrent_state"
|
||||
"qbittorrent-nox" "BitTorrent WebUI/CLI$(_inst qbittorrent-nox)" "$qbitnox_state"
|
||||
"transmission-cli" "BitTorrent client (CLI)$(_inst transmission-cli)" "$tr_cli_state"
|
||||
"deluged" "BitTorrent daemon/server" "$deluged_state"
|
||||
"mktorrent" "Torrent metainfo creator (CLI)" "$mktorrent_state"
|
||||
"qbittorrent-nox" "BitTorrent WebUI/CLI" "$qbitnox_state"
|
||||
"transmission-cli" "BitTorrent client (CLI)" "$tr_cli_state"
|
||||
)
|
||||
if ! $headless; then
|
||||
local filezilla_state; filezilla_state=$(_state "filezilla")
|
||||
@@ -30,26 +30,29 @@ _cat_download() {
|
||||
local tr_gtk_state; tr_gtk_state=$(_state "transmission-gtk")
|
||||
local tr_qt_state; tr_qt_state=$(_state "transmission-qt")
|
||||
items1+=(
|
||||
"filezilla" "FTP/SFTP client (GUI)$(_inst filezilla)" "$filezilla_state"
|
||||
"youtubedl-gui" "GUI for yt-dlp$(_inst youtubedl-gui)" "$ytdlp_gui_state"
|
||||
"filezilla" "FTP/SFTP client (GUI)" "$filezilla_state"
|
||||
"youtubedl-gui" "GUI for yt-dlp" "$ytdlp_gui_state"
|
||||
)
|
||||
items2+=(
|
||||
"deluge" "BitTorrent client (GTK)$(_inst deluge)" "$deluge_state"
|
||||
"qbittorrent" "BitTorrent client (Qt)$(_inst qbittorrent)" "$qbit_state"
|
||||
"transmission-gtk" "BitTorrent client (GTK)$(_inst transmission-gtk)" "$tr_gtk_state"
|
||||
"transmission-qt" "BitTorrent client (Qt)$(_inst transmission-qt)" "$tr_qt_state"
|
||||
"deluge" "BitTorrent client (GTK)" "$deluge_state"
|
||||
"qbittorrent" "BitTorrent client (Qt)" "$qbit_state"
|
||||
"transmission-gtk" "BitTorrent client (GTK)" "$tr_gtk_state"
|
||||
"transmission-qt" "BitTorrent client (Qt)" "$tr_qt_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local TUI_ANCHO_REFORZADO=$((TUI_ANCHO + 6))
|
||||
local item_count1=${#items1[@]}
|
||||
local lista_alto1=$((item_count1 > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count1))
|
||||
local choices1 choices2=""
|
||||
|
||||
choices1=$(_checklist "Downloaders" "Select download tools:" $TUI_ALTO $TUI_ANCHO_REFORZADO $TUI_ALTO_LISTA \
|
||||
choices1=$(_checklist "Downloaders" "Select download tools:" $TUI_ALTO $TUI_ANCHO $lista_alto1 \
|
||||
"${items1[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
choices2=$(_checklist "Torrent Clients" "Select torrent clients:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
local item_count2=${#items2[@]}
|
||||
local lista_alto2=$((item_count2 > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count2))
|
||||
choices2=$(_checklist "Torrent Clients" "Select torrent clients:" $TUI_ALTO $TUI_ANCHO $lista_alto2 \
|
||||
"${items2[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -21,23 +21,24 @@ _cat_fetch() {
|
||||
local -a items=()
|
||||
|
||||
if [ "$fetch_pkg" = "fastfetch" ]; then
|
||||
items+=("fastfetch" "System info fetcher$(_inst fastfetch)" "$fetch_state")
|
||||
items+=("fastfetch" "System info fetcher" "$fetch_state")
|
||||
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||
items+=("hyfetch" "Neofetch with pride flags$(_inst hyfetch)" "$hyfetch_state")
|
||||
items+=("hyfetch" "Neofetch with pride flags" "$hyfetch_state")
|
||||
fi
|
||||
fi
|
||||
items+=("linuxlogo" "Linux logo + system info$(_inst linuxlogo)" "$linuxlogo_state")
|
||||
items+=("linuxlogo" "Linux logo + system info" "$linuxlogo_state")
|
||||
if [ "$fetch_pkg" = "neofetch" ]; then
|
||||
items+=("neofetch" "System info fetcher$(_inst neofetch)" "$fetch_state")
|
||||
items+=("neofetch" "System info fetcher" "$fetch_state")
|
||||
if [ "$DEBIAN_CODENAME" = "trixie" ]; then
|
||||
items+=("hyfetch" "Neofetch with pride flags$(_inst hyfetch)" "$hyfetch_state")
|
||||
items+=("hyfetch" "Neofetch with pride flags" "$hyfetch_state")
|
||||
fi
|
||||
fi
|
||||
items+=("screenfetch" "System info (BSD/Linux)$(_inst screenfetch)" "$screenfetch_state")
|
||||
items+=("screenfetch" "System info (BSD/Linux)" "$screenfetch_state")
|
||||
|
||||
local TUI_ANCHO_REFORZADO=$((TUI_ANCHO + 6))
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Fetch Tools" "Select system info tools:" $TUI_ALTO $TUI_ANCHO_REFORZADO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Fetch Tools" "Select system info tools:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -140,22 +140,22 @@ _cat_internet() {
|
||||
local mullvadbrowser_state; mullvadbrowser_state=$(_state "mullvad-browser")
|
||||
local protonvpn_state; protonvpn_state=$(_state "protonvpn")
|
||||
items+=(
|
||||
"chromium" "Chromium web browser$(_inst chromium)" "$chromium_state"
|
||||
"dillo" "Lightweight graphical browser$(_inst dillo)" "$dillo_state"
|
||||
"epiphany-browser" "GNOME web browser$(_inst epiphany-browser)" "$epiphany_state"
|
||||
"falkon" "KDE web browser (QtWebEngine)$(_inst falkon)" "$falkon_state"
|
||||
"chromium" "Chromium web browser" "$chromium_state"
|
||||
"dillo" "Lightweight graphical browser" "$dillo_state"
|
||||
"epiphany-browser" "GNOME web browser" "$epiphany_state"
|
||||
"falkon" "KDE web browser (QtWebEngine)" "$falkon_state"
|
||||
"firefox" "Firefox from Mozilla (replaces ESR)" "$firefox_state"
|
||||
"firefox-esr" "Firefox ESR (official Debian + locale auto)" "$firefox_esr_state"
|
||||
"floorp" "Firefox-based browser (extrepo)$(_inst floorp)" "$floorp_state"
|
||||
"konqueror" "KDE file manager / web browser$(_inst konqueror)" "$konqueror_state"
|
||||
"librewolf" "Privacy-focused Firefox fork (extrepo)$(_inst librewolf)" "$librewolf_state"
|
||||
"floorp" "Firefox-based browser (extrepo)" "$floorp_state"
|
||||
"konqueror" "KDE file manager / web browser" "$konqueror_state"
|
||||
"librewolf" "Privacy-focused Firefox fork (extrepo)" "$librewolf_state"
|
||||
"palemoon" "Classic Firefox-derived browser (extrepo)" "$palemoon_state"
|
||||
"privacybrowser" "Privacy-focused web browser$(_inst privacybrowser)" "$privacybrowser_state"
|
||||
"qutebrowser" "Keyboard-driven browser (Qt)$(_inst qutebrowser)" "$qutebrowser_state"
|
||||
"thunderbird" "Email client$(_inst thunderbird)" "$thunderbird_state"
|
||||
"torbrowser-launcher" "Tor Browser launcher$(_inst torbrowser-launcher)" "$torbrowser_state"
|
||||
"mullvad-browser" "Mullvad privacy browser$(_inst mullvad-browser)" "$mullvadbrowser_state"
|
||||
"protonvpn" "ProtonVPN client$(_inst protonvpn)" "$protonvpn_state"
|
||||
"privacybrowser" "Privacy-focused web browser" "$privacybrowser_state"
|
||||
"qutebrowser" "Keyboard-driven browser (Qt)" "$qutebrowser_state"
|
||||
"thunderbird" "Email client" "$thunderbird_state"
|
||||
"torbrowser-launcher" "Tor Browser launcher" "$torbrowser_state"
|
||||
"mullvad-browser" "Mullvad privacy browser" "$mullvadbrowser_state"
|
||||
"protonvpn" "ProtonVPN client" "$protonvpn_state"
|
||||
)
|
||||
fi
|
||||
local elinks_state; elinks_state=$(_state "elinks")
|
||||
@@ -164,15 +164,17 @@ _cat_internet() {
|
||||
local tailscale_state; tailscale_state=$(_state "tailscale")
|
||||
local mullvad_state; mullvad_state=$(_state "mullvad-vpn")
|
||||
items+=(
|
||||
"elinks" "Text-mode web browser$(_inst elinks)" "$elinks_state"
|
||||
"riseup-vpn" "Riseup VPN client$(_inst riseup-vpn)" "$riseupvpn_state"
|
||||
"w3m" "Text-mode browser + deps (w3m-img)$(_inst w3m)" "$w3m_state"
|
||||
"tailscale" "Zero-config VPN & mesh networking$(_inst tailscale)" "$tailscale_state"
|
||||
"mullvad-vpn" "Mullvad VPN client (WireGuard)$(_inst mullvad-vpn)" "$mullvad_state"
|
||||
"elinks" "Text-mode web browser" "$elinks_state"
|
||||
"riseup-vpn" "Riseup VPN client" "$riseupvpn_state"
|
||||
"w3m" "Text-mode browser + deps (w3m-img)" "$w3m_state"
|
||||
"tailscale" "Zero-config VPN & mesh networking" "$tailscale_state"
|
||||
"mullvad-vpn" "Mullvad VPN client (WireGuard)" "$mullvad_state"
|
||||
)
|
||||
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Internet" "Select browsers, email, and VPN tools${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Internet" "Select browsers, email, and VPN tools${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -70,8 +70,10 @@ _cat_office() {
|
||||
)
|
||||
fi
|
||||
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Office & Productivity" "Select office applications${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Office & Productivity" "Select office applications${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
|
||||
|
||||
@@ -9,14 +9,15 @@ _cat_players() {
|
||||
local mpv_state; mpv_state=$(_state "mpv")
|
||||
local vlc_state; vlc_state=$(_state "vlc")
|
||||
items+=(
|
||||
"mpv" "Lightweight media player$(_inst mpv)" "$mpv_state"
|
||||
"vlc" "VLC media player$(_inst vlc)" "$vlc_state"
|
||||
"mpv" "Lightweight media player" "$mpv_state"
|
||||
"vlc" "VLC media player" "$vlc_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local TUI_ANCHO_REFORZADO=$((TUI_ANCHO + 6))
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Media Players" "Select media players:" $TUI_ALTO $TUI_ANCHO_REFORZADO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Media Players" "Select media players:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -11,11 +11,11 @@ _cat_programming() {
|
||||
local nano_state; nano_state=$(_state "nano")
|
||||
local emacs_state; emacs_state=$(_state "emacs")
|
||||
items+=(
|
||||
"vim" "Classic terminal editor$(_inst vim)" "$vim_state"
|
||||
"neovim" "Modern vim fork$(_inst neovim)" "$neovim_state"
|
||||
"hx" "Helix modal editor (Rust)$(_inst hx)" "$hx_state"
|
||||
"nano" "Simple terminal editor$(_inst nano)" "$nano_state"
|
||||
"emacs" "Extensible editor / IDE$(_inst emacs)" "$emacs_state"
|
||||
"vim" "Classic terminal editor" "$vim_state"
|
||||
"neovim" "Modern vim fork" "$neovim_state"
|
||||
"hx" "Helix modal editor (Rust)" "$hx_state"
|
||||
"nano" "Simple terminal editor" "$nano_state"
|
||||
"emacs" "Extensible editor / IDE" "$emacs_state"
|
||||
)
|
||||
if ! $headless; then
|
||||
local vimgtk_state; vimgtk_state=$(_state "vim-gtk3")
|
||||
@@ -29,19 +29,20 @@ _cat_programming() {
|
||||
codium_state="ON"
|
||||
fi
|
||||
items+=(
|
||||
"vim-gtk3" "Vim with GTK3 GUI$(_inst vim-gtk3)" "$vimgtk_state"
|
||||
"kate" "KDE advanced text editor$(_inst kate)" "$kate_state"
|
||||
"mousepad" "Xfce text editor$(_inst mousepad)" "$mousepad_state"
|
||||
"gedit" "GNOME text editor$(_inst gedit)" "$gedit_state"
|
||||
"geany" "Lightweight IDE$(_inst geany)" "$geany_state"
|
||||
"gnome-text-editor" "GNOME modern text editor$(_inst gnome-text-editor)" "$gte_state"
|
||||
"vscodium" "VS Code open-source (extrepo)$(_inst codium)" "$codium_state"
|
||||
"vim-gtk3" "Vim with GTK3 GUI" "$vimgtk_state"
|
||||
"kate" "KDE advanced text editor" "$kate_state"
|
||||
"mousepad" "Xfce text editor" "$mousepad_state"
|
||||
"gedit" "GNOME text editor" "$gedit_state"
|
||||
"geany" "Lightweight IDE" "$geany_state"
|
||||
"gnome-text-editor" "GNOME modern text editor" "$gte_state"
|
||||
"vscodium" "VS Code open-source (extrepo)" "$codium_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local TUI_ANCHO_REFORZADO=$((TUI_ANCHO + 6))
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Programming Applications" "Select editors and IDEs${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO_REFORZADO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Programming Applications" "Select editors and IDEs${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -9,8 +9,8 @@ _cat_security() {
|
||||
local wireshark_state; wireshark_state=$(_state "wireshark")
|
||||
local zenmap_state; zenmap_state=$(_state "zenmap")
|
||||
items+=(
|
||||
"wireshark" "Network protocol analyzer (GUI)$(_inst wireshark)" "$wireshark_state"
|
||||
"zenmap" "Network scanner GUI (Nmap frontend)$(_inst zenmap)" "$zenmap_state"
|
||||
"wireshark" "Network protocol analyzer (GUI)" "$wireshark_state"
|
||||
"zenmap" "Network scanner GUI (Nmap frontend)" "$zenmap_state"
|
||||
)
|
||||
fi
|
||||
local tcpdump_state; tcpdump_state=$(_state "tcpdump")
|
||||
@@ -18,15 +18,16 @@ _cat_security() {
|
||||
local ufw_state; ufw_state=$(_state "ufw")
|
||||
local clamav_state; clamav_state=$(_state "clamav")
|
||||
items+=(
|
||||
"tcpdump" "Command-line packet analyzer$(_inst tcpdump)" "$tcpdump_state"
|
||||
"fail2ban" "Brute-force protection daemon$(_inst fail2ban)" "$fail2ban_state"
|
||||
"ufw" "Uncomplicated firewall$(_inst ufw)" "$ufw_state"
|
||||
"clamav" "Antivirus engine (ClamAV)$(_inst clamav)" "$clamav_state"
|
||||
"tcpdump" "Command-line packet analyzer" "$tcpdump_state"
|
||||
"fail2ban" "Brute-force protection daemon" "$fail2ban_state"
|
||||
"ufw" "Uncomplicated firewall" "$ufw_state"
|
||||
"clamav" "Antivirus engine (ClamAV)" "$clamav_state"
|
||||
)
|
||||
|
||||
local TUI_ANCHO_REFORZADO=$((TUI_ANCHO + 6))
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Security & Networking" "Select security and networking tools${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO_REFORZADO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Security & Networking" "Select security and networking tools${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -11,8 +11,8 @@ _cat_software_centers() {
|
||||
de_type=$(_detect_desktop_type)
|
||||
local sc_choice
|
||||
sc_choice=$(_menu "Software Centers" "Choose a software store to install:" 12 65 2 \
|
||||
"gnome-software" "Software Center for GNOME$(_inst gnome-software)" \
|
||||
"plasma-discover" "Software manager for Plasma$(_inst plasma-discover)" \
|
||||
"gnome-software" "Software Center for GNOME" \
|
||||
"plasma-discover" "Software manager for Plasma" \
|
||||
)
|
||||
[ -z "$sc_choice" ] && return
|
||||
|
||||
|
||||
@@ -49,24 +49,24 @@ _cat_general() {
|
||||
local wine_state; wine_state=$(_state "wine")
|
||||
local nvme_state; nvme_state=$(_state "nvme-cli")
|
||||
items+=(
|
||||
"btop" "Resource monitor (fancy top)$(_inst btop)" "$btop_state"
|
||||
"compress" "Compression tools (zip, unrar, 7z)$(_inst zip)" "$compress_state"
|
||||
"cpufetch" "CPU info fetcher$(_inst cpufetch)" "$cpufetch_state"
|
||||
"cpu-x" "CPU-X (alternative to CPU-Z)$(_inst cpu-x)" "$cpu_x_state"
|
||||
"curl-wget" "HTTP transfer tools (curl, wget)$(_inst curl)" "$curl_wget_state"
|
||||
"extrepo" "External repository manager$(_inst extrepo)" "$extrepo_state"
|
||||
"flatpak" "Flatpak sandbox + Flathub$(_inst flatpak)" "$flatpak_state"
|
||||
"fwupd" "Firmware update daemon$(_inst fwupd)" "$fwupd_state"
|
||||
"htop" "Interactive process viewer$(_inst htop)" "$htop_state"
|
||||
"inxi" "System information tool$(_inst inxi)" "$inxi_state"
|
||||
"kvm" "QEMU/KVM virtualization$(_inst virt-manager)" "$kvm_state"
|
||||
"lshw" "List hardware details$(_inst lshw)" "$lshw_state"
|
||||
"mc" "Midnight Commander (file manager)$(_inst mc)" "$mc_state"
|
||||
"nala" "APT frontend (parallel downloads)$(_inst nala)" "$nala_state"
|
||||
"ncdu" "Disk usage analyzer (ncurses)$(_inst ncdu)" "$ncdu_state"
|
||||
"nvme-cli" "NVMe SSD health monitoring$(_inst nvme-cli)" "$nvme_state"
|
||||
"tmux" "Terminal multiplexer$(_inst tmux)" "$tmux_state"
|
||||
"wine" "Windows compatibility layer$(_inst wine)" "$wine_state"
|
||||
"btop" "Resource monitor (fancy top)" "$btop_state"
|
||||
"compress" "Compression tools (zip, unrar, 7z)" "$compress_state"
|
||||
"cpufetch" "CPU info fetcher" "$cpufetch_state"
|
||||
"cpu-x" "CPU-X (alternative to CPU-Z)" "$cpu_x_state"
|
||||
"curl-wget" "HTTP transfer tools (curl, wget)" "$curl_wget_state"
|
||||
"extrepo" "External repository manager" "$extrepo_state"
|
||||
"flatpak" "Flatpak sandbox + Flathub" "$flatpak_state"
|
||||
"fwupd" "Firmware update daemon" "$fwupd_state"
|
||||
"htop" "Interactive process viewer" "$htop_state"
|
||||
"inxi" "System information tool" "$inxi_state"
|
||||
"kvm" "QEMU/KVM virtualization" "$kvm_state"
|
||||
"lshw" "List hardware details" "$lshw_state"
|
||||
"mc" "Midnight Commander (file manager)" "$mc_state"
|
||||
"nala" "APT frontend (parallel downloads)" "$nala_state"
|
||||
"ncdu" "Disk usage analyzer (ncurses)" "$ncdu_state"
|
||||
"nvme-cli" "NVMe SSD health monitoring" "$nvme_state"
|
||||
"tmux" "Terminal multiplexer" "$tmux_state"
|
||||
"wine" "Windows compatibility layer" "$wine_state"
|
||||
)
|
||||
if ! $headless; then
|
||||
local alacritty_state; alacritty_state=$(_state "alacritty")
|
||||
@@ -81,23 +81,24 @@ _cat_general() {
|
||||
local psensor_state; psensor_state=$(_state "psensor")
|
||||
local timeshift_state; timeshift_state=$(_state "timeshift")
|
||||
items+=(
|
||||
"alacritty" "GPU-accelerated terminal$(_inst alacritty)" "$alacritty_state"
|
||||
"conky" "System monitor for desktop$(_inst conky)" "$conky_state"
|
||||
"corectrl" "AMD GPU control (CoreCtrl)$(_inst corectrl)" "$corectrl_state"
|
||||
"doublecmd-gtk" "Dual-panel file manager (GTK)$(_inst doublecmd-gtk)" "$dcgtk_state"
|
||||
"doublecmd-qt" "Dual-panel file manager (Qt)$(_inst doublecmd-qt)" "$dcqt_state"
|
||||
"gnome-disk-utility" "Disk management GUI$(_inst gnome-disk-utility)" "$disks_state"
|
||||
"gparted" "GNOME partition editor$(_inst gparted)" "$gparted_state"
|
||||
"hardinfo" "Graphical system profiler$(_inst hardinfo)" "$hardinfo_state"
|
||||
"kitty" "GPU-based terminal emulator$(_inst kitty)" "$kitty_state"
|
||||
"psensor" "Hardware temperature monitor$(_inst psensor)" "$psensor_state"
|
||||
"timeshift" "System restore snapshots$(_inst timeshift)" "$timeshift_state"
|
||||
"alacritty" "GPU-accelerated terminal" "$alacritty_state"
|
||||
"conky" "System monitor for desktop" "$conky_state"
|
||||
"corectrl" "AMD GPU control (CoreCtrl)" "$corectrl_state"
|
||||
"doublecmd-gtk" "Dual-panel file manager (GTK)" "$dcgtk_state"
|
||||
"doublecmd-qt" "Dual-panel file manager (Qt)" "$dcqt_state"
|
||||
"gnome-disk-utility" "Disk management GUI" "$disks_state"
|
||||
"gparted" "GNOME partition editor" "$gparted_state"
|
||||
"hardinfo" "Graphical system profiler" "$hardinfo_state"
|
||||
"kitty" "GPU-based terminal emulator" "$kitty_state"
|
||||
"psensor" "Hardware temperature monitor" "$psensor_state"
|
||||
"timeshift" "System restore snapshots" "$timeshift_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local TUI_ANCHO_REFORZADO=$((TUI_ANCHO + 6))
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "System Tools" "Select system utilities to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO_REFORZADO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "System Tools" "Select system utilities to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -13,17 +13,19 @@ _cat_cursors() {
|
||||
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"
|
||||
"bibata-cursor-theme" "Bibata cursors" "$bibata_state"
|
||||
"breeze-cursor-theme" "Breeze cursors (KDE)" "$breeze_state"
|
||||
"chameleon-cursor-theme" "Chameleon cursors" "$chameleon_state"
|
||||
"dmz-cursor-theme" "DMZ cursors" "$dmz_state"
|
||||
"xcursor-themes" "X11 base cursors" "$xcursor_state"
|
||||
"oxygencursors" "Oxygen cursors (KDE legacy)" "$oxygen_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Cursor Themes" "Select cursor themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Cursor Themes" "Select cursor themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -14,18 +14,20 @@ _cat_themes() {
|
||||
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"
|
||||
"arc-theme" "Arc GTK theme" "$arc_state"
|
||||
"blackbird-gtk-theme" "Blackbird GTK theme" "$blackbird_state"
|
||||
"bluebird-gtk-theme" "Bluebird GTK theme" "$bluebird_state"
|
||||
"breeze-gtk-theme" "Breeze GTK theme (KDE port)" "$breeze_gtk_state"
|
||||
"greybird-gtk-theme" "Greybird GTK theme" "$greybird_state"
|
||||
"numix-gtk-theme" "Numix GTK theme" "$numix_gtk_state"
|
||||
"orchis-gtk-theme" "Orchis GTK theme" "$orchis_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Desktop Themes (GTK/KDE)" "Select desktop themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Desktop Themes (GTK/KDE)" "Select desktop themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -15,19 +15,21 @@ _cat_fonts() {
|
||||
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"
|
||||
"fonts-bebas-neue" "Bebas Neue (display)" "$bebas_state"
|
||||
"fonts-anonymous-pro" "Anonymous Pro (monospace)" "$anon_state"
|
||||
"fonts-adf-verana" "ADF Verana (sans-serif)" "$verana_state"
|
||||
"fonts-3270" "IBM 3270 terminal font" "$f3270_state"
|
||||
"fonts-liberation" "Liberation (MS-compatible)" "$liberation_state"
|
||||
"ttf-mscorefonts-installer" "Microsoft fonts (EULA required)" "$mscore_state"
|
||||
"fonts-ubuntu" "Ubuntu font family" "$ubuntu_state"
|
||||
"fonts-recommended" "Debian recommended fonts" "$recommended_state"
|
||||
)
|
||||
fi
|
||||
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Fonts" "Select fonts to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Fonts" "Select fonts to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -24,25 +24,27 @@ _cat_icons() {
|
||||
fi
|
||||
|
||||
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"
|
||||
"breeze-icon-theme" "Breeze icon theme" "$breeze_state"
|
||||
"deepin-icon-theme" "Deepin icon theme" "$deepin_state"
|
||||
"elementary-icon-theme" "Elementary icon theme" "$ele_state"
|
||||
"elementary-xfce-icon-theme" "Elementary Xfce icons" "$ele_xfce_state"
|
||||
"moka-icon-theme" "Moka icon theme" "$moka_state"
|
||||
"numix-icon-theme" "Numix icon theme" "$numix_state"
|
||||
"numix-icon-theme-circle" "Numix Circle icon theme" "$numix_c_state"
|
||||
"obsidian-icon-theme" "Obsidian icon theme" "$obsidian_state"
|
||||
"papirus-icon-theme" "Papirus icon theme" "$papirus_state"
|
||||
"paper-icon-theme" "Paper icon theme" "$paper_state"
|
||||
"suru-icon-theme" "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")
|
||||
items+=("kf6-breeze-icon-theme" "KF6 Breeze icon theme" "$kf6_state")
|
||||
fi
|
||||
fi
|
||||
|
||||
local item_count=${#items[@]}
|
||||
local lista_alto=$((item_count > TUI_ALTO_LISTA ? TUI_ALTO_LISTA : item_count))
|
||||
local choices
|
||||
choices=$(_checklist "Icon Themes" "Select icon themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
choices=$(_checklist "Icon Themes" "Select icon themes to install${SCROLL_HINT}:" $TUI_ALTO $TUI_ANCHO $lista_alto \
|
||||
"${items[@]}" \
|
||||
)
|
||||
clear
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
# themes.sh — Customization submenu dispatcher
|
||||
|
||||
_cat_customization() {
|
||||
local TUI_ANCHO_REFORZADO=$((TUI_ANCHO + 6))
|
||||
local sub
|
||||
sub=$(_menu "Customization System" "Select type:" $TUI_ALTO $TUI_ANCHO_REFORZADO $TUI_ALTO_LISTA \
|
||||
sub=$(_menu "Customization System" "Select type:" $TUI_ALTO $TUI_ANCHO $TUI_ALTO_LISTA \
|
||||
"1" "Desktop Themes (GTK/KDE)" \
|
||||
"2" "Icon Themes" \
|
||||
"3" "Cursor Themes" \
|
||||
|
||||
Reference in New Issue
Block a user