# Fedora Post-Install Script A comprehensive post-installation script for Fedora Linux, designed to automate the setup of a personalized development and productivity environment. ## Features This script automates the following tasks: * **System Optimization**: * Configures `/etc/dnf/dnf.conf` for faster downloads (parallel downloads, keep cache). * Updates the system and installs prerequisites. * **Fonts**: * Installs Microsoft Core Fonts. * Downloads and installs MesloLGS Nerd Fonts (for Powerlevel10k). * **Repositories**: * Enables RPM Fusion (Free and Non-Free) repositories. * Adds Flathub remote for Flatpak support. * Enables CachyOS Copr repositories for optimized kernels. * **Software Installation**: * **DNF Packages**: `gnome-tweaks`, `steam`, `lutris`, `btop`, `fastfetch`, `distrobox`, and more. * **Flatpaks**: Discord, Flatseal, Mission Center, PeaZip, Bottles, BambuStudio, LibreOffice (Collabora), and many others. * **Kernel**: Installs the CachyOS kernel and addons (scx-scheds, ananicy-cpp) for performance improvements. * **CLI Tools**: Installs LinuxToys and Starship prompt. * **GNOME Customization**: * Installs `gnome-extensions-cli` via `pipx`. * Automatically installs a curated list of GNOME extensions (Dash to Dock, Blur My Shell, Caffeine, etc.). * **Shell Configuration**: * Configures `~/.bashrc` to initialize Starship. * Applies the Gruvbox Rainbow preset for Starship. ## Prerequisites * **OS**: Fedora Linux (Workstation recommended). * **Permissions**: The script requires `sudo` privileges to install packages and modify system files. * **Internet Connection**: Required to download packages and repositories. ## Usage 1. **Clone the repository:** ```bash cd Fedora-postInstall-Script ``` 2. **Make the script executable:** ```bash chmod +x postinstall.sh ``` 3. **Run the script:** ```bash ./postinstall.sh ``` *Note: You will be prompted for your `sudo` password at the beginning. The script includes a keep-alive mechanism to prevent sudo from timing out during long operations.* ## Customization You can easily customize the script by editing the arrays at the top of the relevant sections in `postinstall.sh`: * **`DNF_PACKAGES`**: Add or remove DNF packages. * **`FLATPAK_PACKAGES`**: Add or remove Flatpak applications. * **`GNOME_EXTENSIONS`**: Add or remove GNOME extensions (use the `extension-id` format). ## Disclaimer This script modifies system configuration files and installs third-party repositories (RPM Fusion, Copr). While it is designed to be safe and idempotent, please review the code before running it on a production machine. Always back up important data.