Adding a script to install my packages in Bazzite (Atomic Fedora). This is a WIP and is not done.
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.conffor faster downloads (parallel downloads, keep cache). - Updates the system and installs prerequisites.
- Configures
- 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.
- DNF Packages:
- GNOME Customization:
- Installs
gnome-extensions-cliviapipx. - Automatically installs a curated list of GNOME extensions (Dash to Dock, Blur My Shell, Caffeine, etc.).
- Installs
- Shell Configuration:
- Configures
~/.bashrcto initialize Starship. - Applies the Gruvbox Rainbow preset for Starship.
- Configures
Prerequisites
- OS: Fedora Linux (Workstation recommended).
- Permissions: The script requires
sudoprivileges to install packages and modify system files. - Internet Connection: Required to download packages and repositories.
Usage
-
Clone the repository:
git clone https://gitea.schantli.ca/jschantli/Fedora-PIS.git cd Fedora-postInstall-Script -
Make the script executable:
chmod +x postinstall.sh -
Run the script:
./postinstall.shNote: You will be prompted for your
sudopassword 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 theextension-idformat).
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.