72 lines
2.9 KiB
Markdown
72 lines
2.9 KiB
Markdown
# 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. **Run script directly**
|
|
```bash
|
|
curl -fsSL https://gitea.schantli.ca/jschantli/Fedora-PIS/raw/branch/main/postinstall.sh | sh
|
|
```
|
|
|
|
1. **Clone the repository:**
|
|
```bash
|
|
git clone https://gitea.schantli.ca/jschantli/Fedora-PIS.git
|
|
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.
|