Files
starburst/v2/debian-minimal.sh
2025-11-10 13:51:05 +01:00

48 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# Colors + logging same pattern
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[0;33m'
CYAN='\033[0;36m'; GRAY='\033[0;37m'; BOLD='\033[1m'; RESET='\033[0m'
[ ! -t 1 ] && RED='' GREEN='' YELLOW='' CYAN='' GRAY='' BOLD='' RESET=''
color_red() { printf '%b' "$RED"; }
color_green() { printf '%b' "$GREEN"; }
color_yellow() { printf '%b' "$YELLOW"; }
color_cyan() { printf '%b' "$CYAN"; }
color_gray() { printf '%b' "$GRAY"; }
color_reset() { printf '%b' "$RESET"; }
LOGFILE="${LOGFILE:-/tmp/debian-minimal.log}"
exec > >(tee -a "$LOGFILE") 2>&1
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
OS="${DETECTED_OS:-debian}"
DE="${SELECTED_DE:-none}"
##########################
# Helper functions
##########################
install_packages() { sudo apt update; sudo apt install -y --no-install-recommends "$@"; }
is_package_installed() { dpkg -s "$1" &>/dev/null; }
color_yellow; echo "Starting minimal setup..."; color_reset
# Create user directories
mkdir -p "$HOME"/{.bin,.fonts,.icons,.themes,DATA} "$HOME/.local/share/"{icons,themes,applications} "$HOME/.config/"{autostart,gtk-{3.0,4.0},variety,fish,neofetch}
# Install essential tools
install_packages wget curl nano fastfetch lolcat bash-completion starship alacritty hwinfo lshw man-db tree xdg-user-dirs rsync time bat chrony unzip chromium
# Optionally handle fonts
FONT_DIR="$HOME/.local/share/fonts"
mkdir -p "$FONT_DIR"
curl -L "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/RobotoMono.zip" -o "/tmp/RobotoMono.zip"
unzip -oq "/tmp/RobotoMono.zip" -d "$FONT_DIR"
fc-cache -fv
# Enable basic services
sudo systemctl enable chrony
sudo systemctl enable fstrim.timer
color_green; echo "Minimal setup completed."; color_reset