#!/bin/bash # Fedora New Machine Setup Script # Run as root or with sudo where needed # Logs everything to setup.log set -euo pipefail # Exit on error, undefined vars, pipe failures LOGFILE="$HOME/fedora-setup-$(date +%Y%m%d-%H%M%S).log" exec &> >(tee -a "$LOGFILE") echo "=== Fedora New Machine Setup Started at $(date) ===" # Check if running as root if [[ $EUID -ne 0 ]]; then echo "Run this script with sudo for full functionality." fi echo "Creating mount points..." sudo mkdir -p /mnt/games /mnt/media sudo systemctl daemon-reload echo "Installing RPM Fusion repos..." sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm echo "Adding Signal repo..." sudo dnf config-manager addrepo --from-repofile https://download.opensuse.org/repositories/network:im:signal/Fedora_$(rpm -E %fedora)/network:im:signal.repo echo "Enabling Flatpak..." flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo echo "Upgrading system..." sudo dnf upgrade -y echo "Installing multimedia codecs..." sudo dnf swap ffmpeg-free ffmpeg --allowerasing sudo dnf install -y mozilla-openh264 gstreamer1-plugins-bad-freeworld ffmpeg sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin sudo dnf install -y gstreamer1-plugins-{bad-freeworld,good,base} gstreamer1-plugin-openh264 lame* ffmpeg sudo dnf group install -y multimedia sound-and-video --skip-unavailable echo "Installing common apps..." sudo dnf install -y davfs2 discord git hugo NetworkManager-openvpn openvpn sudo dnf install -y oh-my-posh openrgb qbittorrent screenfetch signal-desktop steam thunderbird echo "Installing Flatpaks..." flatpak install -y flathub org.signal.Signal com.bitwarden.desktop io.missioncenter.MissionCenter io.github.martinrotter.rssguard org.kde.konversation flatpak install -y com.spotify.Client org.kde.konversation io.github.Archeb.opentrace echo "Installing fonts..." sudo dnf install -y cascadia-fonts-all sudo fc-cache -f -v echo "Setting up VS Code repo..." sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo tee /etc/yum.repos.d/vscode.repo > /dev/null <