v3-fedora-renew

This commit is contained in:
2026-07-06 12:26:36 +02:00
parent 86c8d48fc4
commit d26c1035ba
2 changed files with 71 additions and 89 deletions
+48 -48
View File
@@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
set -euo pipefail set -euo pipefail
########################## #------------------------------------------
# Color helpers (no tput) # Color helpers (no tput)
########################## #------------------------------------------
RED='\033[0;31m' RED='\033[0;31m'
GREEN='\033[0;32m' GREEN='\033[0;32m'
YELLOW='\033[0;33m' YELLOW='\033[0;33m'
@@ -25,9 +25,9 @@ color_red() { printf '%b' "$RED"; }
color_green() { printf '%b' "$GREEN"; } color_green() { printf '%b' "$GREEN"; }
color_reset() { printf '%b' "$RESET"; } color_reset() { printf '%b' "$RESET"; }
#------------------- #------------------------------------------
# Script Version 3.0 # Script Version 3.0
#------------------- #------------------------------------------
echo echo
color_yellow color_yellow
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
@@ -36,14 +36,14 @@ echo "----------------------------------------------------------------"
color_reset color_reset
echo echo
########################## #------------------------------------------
# OS Detection # OS Detection
########################## #------------------------------------------
echo echo
color_yellow color_yellow
echo "################################################################" echo "----------------------------------------------------------------"
echo "################### Start OS Detection" echo Start OS Detection"
echo "################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
echo echo
@@ -76,29 +76,29 @@ esac
if [[ -n "$OS" ]]; then if [[ -n "$OS" ]]; then
color_cyan color_cyan
echo "################################################################################" echo "----------------------------------------------------------------"
echo "Detected OS: $OS ($OS_PRETTY)" echo "Detected OS: $OS ($OS_PRETTY)"
echo "Version: $OS_VERSION" echo "Version: $OS_VERSION"
echo "################################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
else else
color_red color_red
echo "################################################################################" echo "----------------------------------------------------------------"
echo "ERROR: Unsupported or unknown Linux distribution." echo "ERROR: Unsupported or unknown Linux distribution."
echo "Detected: ID=$OS_ID, ID_LIKE=${OS_LIKE:-empty}" echo "Detected: ID=$OS_ID, ID_LIKE=${OS_LIKE:-empty}"
echo "################################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
exit 1 exit 1
fi fi
########################## #------------------------------------------
# Desktop Environment Detection / Selection # Desktop Environment Detection / Selection
########################## #------------------------------------------
echo echo
color_yellow color_yellow
echo "################################################################" echo "----------------------------------------------------------------"
echo "################### Desktop Environment Selection" echo " Desktop Environment Selection"
echo "################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
echo echo
@@ -115,9 +115,9 @@ esac
if [[ -n "$DE" ]]; then if [[ -n "$DE" ]]; then
echo echo
color_cyan color_cyan
echo "################################################################################" echo "----------------------------------------------------------------"
echo "Detected Desktop Environment: $DE (${DE_RAW})" echo "Detected Desktop Environment: $DE (${DE_RAW})"
echo "################################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
else else
echo echo
@@ -142,20 +142,20 @@ else
done done
echo echo
color_cyan color_cyan
echo "################################################################################" echo "----------------------------------------------------------------"
echo "Selected Desktop Environment: $DE" echo "Selected Desktop Environment: $DE"
echo "################################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
fi fi
########################## #------------------------------------------
# Tiling Window Manager Selection # Tiling Window Manager Selection
########################## #------------------------------------------
echo echo
color_yellow color_yellow
echo "################################################################" echo "----------------------------------------------------------------"
echo "################### Tiling WM Selection" echo " Tiling WM Selection"
echo "################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
echo echo
@@ -181,19 +181,19 @@ done
echo echo
color_cyan color_cyan
echo "################################################################################" echo "----------------------------------------------------------------"
echo "Selected Tiling WM: $TWM" echo "Selected Tiling WM: $TWM"
echo "################################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
########################## #------------------------------------------
# Installation Level Selection # Installation Level Selection
########################## #------------------------------------------
echo echo
color_yellow color_yellow
echo "################################################################" echo "----------------------------------------------------------------"
echo "################### Installation Level Selection" echo " Installation Level Selection"
echo "################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
echo echo
@@ -219,28 +219,28 @@ done
echo echo
color_cyan color_cyan
echo "################################################################################" echo "----------------------------------------------------------------"
echo "Selected Installation Level: $INSTALL_LEVEL" echo "Selected Installation Level: $INSTALL_LEVEL"
echo "################################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
########################## #------------------------------------------
# Export selections for OS script # Export selections for OS script
########################## #------------------------------------------
export DETECTED_OS="$OS" export DETECTED_OS="$OS"
export DETECTED_DE="$DE_RAW" export DETECTED_DE="$DE_RAW"
export SELECTED_DE="$DE" export SELECTED_DE="$DE"
export SELECTED_TWM="$TWM" export SELECTED_TWM="$TWM"
export INSTALL_LEVEL export INSTALL_LEVEL
########################## #------------------------------------------
# Determine OS script # Determine OS script
########################## #------------------------------------------
case "$OS" in case "$OS" in
debian) OS_SCRIPT="./${SCRIPT_VERSION}/debian.sh" ;; debian) OS_SCRIPT="./debian/debian.sh" ;;
ubuntu) OS_SCRIPT="./${SCRIPT_VERSION}/ubuntu.sh" ;; ubuntu) OS_SCRIPT="./ubuntu/ubuntu.sh" ;;
arch) OS_SCRIPT="./${SCRIPT_VERSION}/arch.sh" ;; arch) OS_SCRIPT="./arch/arch.sh" ;;
fedora) OS_SCRIPT="./${SCRIPT_VERSION}/fedora.sh" ;; fedora) OS_SCRIPT="./fedora/fedora.sh" ;;
*) *)
color_red color_red
echo echo
@@ -250,9 +250,9 @@ case "$OS" in
;; ;;
esac esac
########################## #------------------------------------------
# Preflight check & run # Preflight check & run
########################## #------------------------------------------
if [[ ! -f "$OS_SCRIPT" ]]; then if [[ ! -f "$OS_SCRIPT" ]]; then
color_red color_red
echo echo
@@ -279,7 +279,7 @@ bash "$OS_SCRIPT" || {
echo echo
color_yellow color_yellow
echo "################################################################" echo "----------------------------------------------------------------"
echo "End Detection" echo "End Detection"
echo "################################################################" echo "----------------------------------------------------------------"
color_reset color_reset
+23 -41
View File
@@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
set -euo pipefail set -euo pipefail
########################## #------------------------------------------
# Color helpers (printf-safe, no tput) # Color helpers (printf-safe, no tput)
########################## #------------------------------------------
RED="\033[0;31m" RED="\033[0;31m"
GREEN="\033[0;32m" GREEN="\033[0;32m"
YELLOW="\033[0;33m" 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_gray() { printf "\n"; printf "%b%s%b\n" "$GRAY" "$*" "$RESET"; }
say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; } say_bold() { printf "\n"; printf "%b%s%b\n" "$BOLD" "$*" "$RESET"; }
########################## #------------------------------------------
# Use exported variables from main detection script # Use exported variables from main detection script
########################## #------------------------------------------
OS="${DETECTED_OS}" OS="${DETECTED_OS}"
DDE="${DETECTED_DE}" DDE="${DETECTED_DE}"
DE="${SELECTED_DE:-none}" DE="${SELECTED_DE}"
TWM="${SELECTED_TWM:-none}" TWM="${SELECTED_TWM}"
INSTALL_LEVEL="${INSTALL_LEVEL:-minimal}" INSTALL_LEVEL="${INSTALL_LEVEL}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo echo
@@ -39,9 +39,9 @@ say_cyan "Starting Fedora setup..."
echo echo
say_gray "DE: $DE, TWM: $TWM, Install Level: $INSTALL_LEVEL" say_gray "DE: $DE, TWM: $TWM, Install Level: $INSTALL_LEVEL"
########################## #------------------------------------------
# Helper functions # Helper functions
########################## #------------------------------------------
install_packages() { sudo dnf install -y "$@"; } install_packages() { sudo dnf install -y "$@"; }
is_package_installed() { rpm -q "$@" &>/dev/null; } is_package_installed() { rpm -q "$@" &>/dev/null; }
@@ -59,32 +59,26 @@ remove_packages() {
fi fi
} }
########################## #------------------------------------------
# 0. Ensure base is ready for installation # 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 if ! command -v curl >/dev/null 2>&1; then
say_yellow "curl is not installed. Installing..." say_yellow "curl is not installed. Installing..."
install_packages curl install_packages curl
fi fi
########################## #------------------------------------------
# 1. Update and Enable Repos # 1. Update and Enable Repos
########################## #------------------------------------------
say_cyan "Optimizing DNF for speed..." say_cyan "Optimizing DNF for speed..."
# 1. Enable fastest mirror (lowest latency) # 1. Enable fastest mirror (lowest latency)
# 2. Increase parallel downloads (allows downloading multiple packages at once) # 2. Increase parallel downloads (allows downloading multiple packages at once)
# 3. Set a minimum rate to drop slow mirrors automatically # 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 fastestmirror=1
sudo dnf config-manager setopt max_parallel_downloads=20 sudo dnf config-manager setopt max_parallel_downloads=20
sudo dnf config-manager setopt defaultyes=True
say_green "DNF optimized. Refreshing metadata..." say_green "DNF optimized. Refreshing metadata..."
sudo dnf makecache --refresh sudo dnf makecache --refresh
@@ -119,21 +113,9 @@ say_gray "Updating the system"
echo echo
sudo dnf update -y 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 # 3. Detected OS / DE / TWM info
########################## #------------------------------------------
say_yellow "Detected OS / Desktop Environment / Tiling Window Manager" say_yellow "Detected OS / Desktop Environment / Tiling Window Manager"
echo echo
say_gray "Installing OS-specific packages..." say_gray "Installing OS-specific packages..."
@@ -141,9 +123,9 @@ say_gray "Selected DE: $DE"
say_gray "Selected TWM: $TWM" say_gray "Selected TWM: $TWM"
say_gray "Installation Level: $INSTALL_LEVEL" say_gray "Installation Level: $INSTALL_LEVEL"
########################## #------------------------------------------
# 4. Desktop Environment installation # 4. Desktop Environment installation
########################## #------------------------------------------
case "$DE" in case "$DE" in
xfce|plasma|gnome) xfce|plasma|gnome)
say_yellow "Preparing to install $DE..." say_yellow "Preparing to install $DE..."
@@ -161,9 +143,9 @@ case "$DE" in
;; ;;
esac esac
########################## #------------------------------------------
# 5. Tiling Window Manager installation # 5. Tiling Window Manager installation
########################## #------------------------------------------
case "$TWM" in case "$TWM" in
chadwm|hyprland|niri) chadwm|hyprland|niri)
say_yellow "Installing $TWM..." say_yellow "Installing $TWM..."
@@ -181,9 +163,9 @@ case "$TWM" in
;; ;;
esac esac
########################## #------------------------------------------
# 6. Installation level handling # 6. Installation level handling
########################## #------------------------------------------
case "$INSTALL_LEVEL" in case "$INSTALL_LEVEL" in
minimal|full|workstation|server) minimal|full|workstation|server)
say_cyan "Installation level: $INSTALL_LEVEL" say_cyan "Installation level: $INSTALL_LEVEL"