- Shell 73.6%
- Lua 26.4%
|
|
||
|---|---|---|
| fastfetch | Add fastfetch/config.jsonc | |
| ghostty | Update ghostty/config | |
| newsboat | Update newsboat/config | |
| nvim | Upload files to "nvim/lua/plugins" | |
| complete-fedora-setup.sh | Update complete-fedora-setup.sh | |
| readme.md | Update readme.md | |
Fedora Post-Installation Setup Script
Overview
This script automates the setup process for a multi-purpose Fedora 41 system. It installs and configures various tools and utilities for development, data science, and gaming, along with system optimizations and appropriate GPU drivers.
Note: This script is specifically tailored for Fedora 42, although some parts might work on other versions. The WineHQ repository URL is currently hardcoded for Fedora 41.
Features
- System Updates: Updates all system packages to the latest versions.
- Repository Setup:
- Enables RPM Fusion (Free and Non-Free) repositories.
- Enables COPR repositories for:
- Lazygit (
atim/lazygit) - CachyOS Kernel (
bieszczaders/kernel-cachyos) - CachyOS Kernel Addons (
bieszczaders/kernel-cachyos-addons)
- Lazygit (
- Adds the WineHQ repository (for Fedora 41).
- GPU Driver Setup:
- Detects NVIDIA, AMD, or Intel GPUs.
- NVIDIA: Installs prerequisites, blacklists Nouveau, installs proprietary drivers (
akmod-nvidia, CUDA tools, VAAPI driver, settings), configures GRUB, and regenerates initramfs. - AMD: Installs necessary Mesa drivers, firmware, power management tools (
tuned,corectrl), configures VAAPI, and applies Mesa gaming optimizations. - Intel: Installs necessary Mesa drivers, media driver, and configures VAAPI.
- System Optimization:
- Enables
fstrim.timerfor SSDs. - Installs improved fonts and applies better font rendering configuration.
- Enables
- Development & Utilities: Installs Zsh, Git, Curl, Wget, Neovim, Ripgrep, Node.js/npm, Lazygit, Flatseal, GCC/G++, Make, CMake, Btop, Bat, fd-find, fzf, ag, Filezilla, Thunderbird.
- Python & Data Science:
- Installs Python 3 build/packaging tools.
- Creates a virtual environment (
~/python_env). - Installs core data science libraries (NumPy, Pandas, SciPy, Scikit-learn, Matplotlib, Seaborn, Jupyter[Lab], Plotly, Requests, BeautifulSoup4, OpenCV, etc.).
- Installs additional libraries (Dask, XGBoost, LightGBM, Statsmodels, Dash, SQLAlchemy, PyMongo, PySpark, Sktime, Eli5, SHAP).
- Installs R.
- Gaming Utilities:
- Installs WineHQ (staging branch) and Wine Mono.
- Installs Steam, Lutris, MangoHud, GOverlay.
- Builds and installs Winetricks from source.
- Installs GameMode, Gamescope, and Vulkan tools.
- Configures GameMode with GPU-specific optimizations.
- Media Player: Replaces Dragon Player (if installed) with Haruna Media Player.
- Flatpak Applications: Installs DBeaver, ProtonPlus, and Notesnook from Flathub.
- Shell Configuration:
- Installs Oh My Zsh.
- Installs plugins:
zsh-autosuggestions,zsh-syntax-highlighting,fast-syntax-highlighting,zsh-autocomplete. - Configures
.zshrcwith the "jonathan" theme and correct plugin load order. - Adds Python virtual environment to PATH in
.zshrc. - Sets Zsh as the default shell for the user.
- Neovim Configuration: Installs the LazyVim starter configuration for Neovim (backs up existing config).
- CachyOS Kernel: Installs the CachyOS kernel and addons if the corresponding COPR repositories were enabled successfully.
⚠️ Disclaimer ⚠️
This script performs system-wide changes and installs numerous packages using sudo. Review the script carefully to understand what it does before executing it. While it includes checks and backups for some configurations, unforeseen issues can occur.
It is strongly recommended to back up your important data before running this script. Use it at your own risk.
Prerequisites
- A running instance of Fedora 41.
- An active internet connection.
- A user account with
sudoprivileges. - Sufficient disk space for downloads and installations.
Usage
- Download the script: Save the script content to a file, for example,
fedora-setup.sh. - Make it executable:
chmod +x fedora-setup.sh - Run the script:
The script will prompt for your./fedora-setup.shsudopassword when needed. Some steps (like changing the default shell) might require interactive password entry.
Post-Installation Steps
CRITICAL: A system reboot is required after the script complete
```bash
sudo reboot
```
This is necessary for:
-
Loading the correct graphics driver (especially for NVIDIA, allowing akmod to build).
-
Applying kernel parameter changes (Nouveau blacklisting).
-
Starting/restarting system services correctly.
-
Setting Zsh as the default shell.
-
Applying the CachyOS kernel (if installed and selected in GRUB).
After Reboot:
-
(NVIDIA Users): Allow several minutes for the akmod service to build the NVIDIA kernel module. You can monitor its status with sudo systemctl status akmods and check logs with sudo journalctl -u akmods -b. Verify the driver is loaded with lsmod | grep nvidia.
-
(CachyOS Kernel Users): If the CachyOS kernel was installed, select it from the GRUB boot menu.
-
Zsh: Your default shell should now be Zsh. Verify the Oh My Zsh setup and ensure no "unhandled ZLE widget" errors appear.
-
Python: To use the installed data science libraries, activate the virtual environment:
source ~/python_env/bin/activateYou can deactivate it later using deactivate.
-
Backups: Remember that this script does not configure system backups. Implement a backup strategy for your important data.
Customization
You can modify the script before running it:
-
Package Lists: Add or remove packages from the *_PACKAGES or *_LIBS arrays in the relevant sections.
-
Flatpaks: Modify the FLATPAK_APPS array.
-
Oh My Zsh: Change the theme or the list of plugins in the ZSH_PLUGINS array (remembering the load order requirement