From d26c1035bad4629d9e207229ab0d860182bc707e Mon Sep 17 00:00:00 2001 From: Yuri Kuit Date: Mon, 6 Jul 2026 12:26:36 +0200 Subject: [PATCH] v3-fedora-renew --- 0-setup-linux.sh | 96 ++++++++++++++++++++++++------------------------ fedora/fedora.sh | 64 ++++++++++++-------------------- 2 files changed, 71 insertions(+), 89 deletions(-) diff --git a/0-setup-linux.sh b/0-setup-linux.sh index d18fc61..9ba7943 100755 --- a/0-setup-linux.sh +++ b/0-setup-linux.sh @@ -1,9 +1,9 @@ #!/bin/bash set -euo pipefail -########################## +#------------------------------------------ # Color helpers (no tput) -########################## +#------------------------------------------ RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' @@ -25,9 +25,9 @@ color_red() { printf '%b' "$RED"; } color_green() { printf '%b' "$GREEN"; } color_reset() { printf '%b' "$RESET"; } -#------------------- +#------------------------------------------ # Script Version 3.0 -#------------------- +#------------------------------------------ echo color_yellow echo "----------------------------------------------------------------" @@ -36,14 +36,14 @@ echo "----------------------------------------------------------------" color_reset echo -########################## +#------------------------------------------ # OS Detection -########################## +#------------------------------------------ echo color_yellow -echo "################################################################" -echo "################### Start OS Detection" -echo "################################################################" +echo "----------------------------------------------------------------" +echo Start OS Detection" +echo "----------------------------------------------------------------" color_reset echo @@ -76,29 +76,29 @@ esac if [[ -n "$OS" ]]; then color_cyan - echo "################################################################################" + echo "----------------------------------------------------------------" echo "Detected OS: $OS ($OS_PRETTY)" echo "Version: $OS_VERSION" - echo "################################################################################" + echo "----------------------------------------------------------------" color_reset else color_red - echo "################################################################################" + echo "----------------------------------------------------------------" echo "ERROR: Unsupported or unknown Linux distribution." echo "Detected: ID=$OS_ID, ID_LIKE=${OS_LIKE:-empty}" - echo "################################################################################" + echo "----------------------------------------------------------------" color_reset exit 1 fi -########################## +#------------------------------------------ # Desktop Environment Detection / Selection -########################## +#------------------------------------------ echo color_yellow -echo "################################################################" -echo "################### Desktop Environment Selection" -echo "################################################################" +echo "----------------------------------------------------------------" +echo " Desktop Environment Selection" +echo "----------------------------------------------------------------" color_reset echo @@ -115,9 +115,9 @@ esac if [[ -n "$DE" ]]; then echo color_cyan - echo "################################################################################" + echo "----------------------------------------------------------------" echo "Detected Desktop Environment: $DE (${DE_RAW})" - echo "################################################################################" + echo "----------------------------------------------------------------" color_reset else echo @@ -142,20 +142,20 @@ else done echo color_cyan - echo "################################################################################" + echo "----------------------------------------------------------------" echo "Selected Desktop Environment: $DE" - echo "################################################################################" + echo "----------------------------------------------------------------" color_reset fi -########################## +#------------------------------------------ # Tiling Window Manager Selection -########################## +#------------------------------------------ echo color_yellow -echo "################################################################" -echo "################### Tiling WM Selection" -echo "################################################################" +echo "----------------------------------------------------------------" +echo " Tiling WM Selection" +echo "----------------------------------------------------------------" color_reset echo @@ -181,19 +181,19 @@ done echo color_cyan -echo "################################################################################" +echo "----------------------------------------------------------------" echo "Selected Tiling WM: $TWM" -echo "################################################################################" +echo "----------------------------------------------------------------" color_reset -########################## +#------------------------------------------ # Installation Level Selection -########################## +#------------------------------------------ echo color_yellow -echo "################################################################" -echo "################### Installation Level Selection" -echo "################################################################" +echo "----------------------------------------------------------------" +echo " Installation Level Selection" +echo "----------------------------------------------------------------" color_reset echo @@ -219,28 +219,28 @@ done echo color_cyan -echo "################################################################################" +echo "----------------------------------------------------------------" echo "Selected Installation Level: $INSTALL_LEVEL" -echo "################################################################################" +echo "----------------------------------------------------------------" color_reset -########################## +#------------------------------------------ # Export selections for OS script -########################## +#------------------------------------------ export DETECTED_OS="$OS" export DETECTED_DE="$DE_RAW" export SELECTED_DE="$DE" export SELECTED_TWM="$TWM" export INSTALL_LEVEL -########################## +#------------------------------------------ # Determine OS script -########################## +#------------------------------------------ case "$OS" in - debian) OS_SCRIPT="./${SCRIPT_VERSION}/debian.sh" ;; - ubuntu) OS_SCRIPT="./${SCRIPT_VERSION}/ubuntu.sh" ;; - arch) OS_SCRIPT="./${SCRIPT_VERSION}/arch.sh" ;; - fedora) OS_SCRIPT="./${SCRIPT_VERSION}/fedora.sh" ;; + debian) OS_SCRIPT="./debian/debian.sh" ;; + ubuntu) OS_SCRIPT="./ubuntu/ubuntu.sh" ;; + arch) OS_SCRIPT="./arch/arch.sh" ;; + fedora) OS_SCRIPT="./fedora/fedora.sh" ;; *) color_red echo @@ -250,9 +250,9 @@ case "$OS" in ;; esac -########################## +#------------------------------------------ # Preflight check & run -########################## +#------------------------------------------ if [[ ! -f "$OS_SCRIPT" ]]; then color_red echo @@ -279,7 +279,7 @@ bash "$OS_SCRIPT" || { echo color_yellow -echo "################################################################" +echo "----------------------------------------------------------------" echo "End Detection" -echo "################################################################" +echo "----------------------------------------------------------------" color_reset diff --git a/fedora/fedora.sh b/fedora/fedora.sh index 6820573..26f7ef6 100755 --- a/fedora/fedora.sh +++ b/fedora/fedora.sh @@ -1,9 +1,9 @@ #!/bin/bash set -euo pipefail -########################## +#------------------------------------------ # Color helpers (printf-safe, no tput) -########################## +#------------------------------------------ RED="\033[0;31m" GREEN="\033[0;32m" YELLOW="\033[0;33m" @@ -24,14 +24,14 @@ say_cyan() { printf "\n"; printf "%b%s%b\n" "$CYAN" "$*" "$RESET"; } say_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; } say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; } -########################## +#------------------------------------------ # Use exported variables from main detection script -########################## +#------------------------------------------ OS="${DETECTED_OS}" DDE="${DETECTED_DE}" -DE="${SELECTED_DE:-none}" -TWM="${SELECTED_TWM:-none}" -INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}" +DE="${SELECTED_DE}" +TWM="${SELECTED_TWM}" +INSTALL_LEVEL="${INSTALL_LEVEL}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo @@ -39,9 +39,9 @@ say_cyan "Starting Fedora setup..." echo say_gray "DE: $DE, TWM: $TWM, Install Level: $INSTALL_LEVEL" -########################## +#------------------------------------------ # Helper functions -########################## +#------------------------------------------ install_packages() { sudo dnf install -y "$@"; } is_package_installed() { rpm -q "$@" &>/dev/null; } @@ -59,32 +59,26 @@ remove_packages() { fi } -########################## +#------------------------------------------ # 0. Ensure base is ready for installation -########################## -installed_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -pkg_dir="packages" - -if [[ ! -d "$pkg_dir" ]]; then - say_red "Directory not found: $pkg_dir" - exit 1 -fi - +#------------------------------------------ if ! command -v curl >/dev/null 2>&1; then say_yellow "curl is not installed. Installing..." install_packages curl fi -########################## +#------------------------------------------ # 1. Update and Enable Repos -########################## +#------------------------------------------ say_cyan "Optimizing DNF for speed..." # 1. Enable fastest mirror (lowest latency) # 2. Increase parallel downloads (allows downloading multiple packages at once) # 3. Set a minimum rate to drop slow mirrors automatically +# $. Set dnf to set YES as default instead of NO sudo dnf config-manager setopt fastestmirror=1 sudo dnf config-manager setopt max_parallel_downloads=20 +sudo dnf config-manager setopt defaultyes=True say_green "DNF optimized. Refreshing metadata..." sudo dnf makecache --refresh @@ -119,21 +113,9 @@ say_gray "Updating the system" echo sudo dnf update -y -########################## -# 2. Fix missing console font -########################## -say_yellow "Fix missing console font" - -if grep -q FONT= /etc/vconsole.conf; then - say_green "Font is already set in /etc/vconsole.conf" -else - say_green "Setting console font in /etc/vconsole.conf" - echo 'FONT=gr737c-8x14' | sudo tee -a /etc/vconsole.conf -fi - -########################## +#------------------------------------------ # 3. Detected OS / DE / TWM info -########################## +#------------------------------------------ say_yellow "Detected OS / Desktop Environment / Tiling Window Manager" echo say_gray "Installing OS-specific packages..." @@ -141,9 +123,9 @@ say_gray "Selected DE: $DE" say_gray "Selected TWM: $TWM" say_gray "Installation Level: $INSTALL_LEVEL" -########################## +#------------------------------------------ # 4. Desktop Environment installation -########################## +#------------------------------------------ case "$DE" in xfce|plasma|gnome) say_yellow "Preparing to install $DE..." @@ -161,9 +143,9 @@ case "$DE" in ;; esac -########################## +#------------------------------------------ # 5. Tiling Window Manager installation -########################## +#------------------------------------------ case "$TWM" in chadwm|hyprland|niri) say_yellow "Installing $TWM..." @@ -181,9 +163,9 @@ case "$TWM" in ;; esac -########################## +#------------------------------------------ # 6. Installation level handling -########################## +#------------------------------------------ case "$INSTALL_LEVEL" in minimal|full|workstation|server) say_cyan "Installation level: $INSTALL_LEVEL"