Fedora 40 Post Installation Steps
posted by
on
Fedora: A Solid Foundation for Consistency
I rely on Fedora as the bedrock for my workstation, home, and lab computers, aiming for a unified and efficient environment. This post outlines the essential post-installation steps I've refined over multiple Fedora releases (34-40), from initial setup to fine-tuning. While Fedora's rapid release cycle makes it challenging to provide a timeless guide, these procedures have proven adaptable and should serve as a valuable starting point for future users.
Note: These steps are based on Fedora 40 and 39, but their core principles should remain relevant in subsequent versions.
Let's dive into the setup process!
List of Taskt - Overview
system update
dual boot (optional)
update-grub entries
edit grub timeout
mask systemd-oomd
Add software repo - rpm fusion, Flathub
setting up CUDA for Nvidia GPUs
Making changes to dnf / making it faster
adding some font lib
command line utilities
default Shell
enable ssh
SSH Security
containers
NodeJS & Bun
installing dev tools
dropdown Terminal
Setting up Printer
Install OpenTabletDriver
install Stacer
install Spotube
Update system
After installing every Linux distro, the first thing is to update your system.
sudo dnf update -y
Mask systemd-oomd
I'll never be able to justify the existence of such an aggressive OOM strategy in an operating system. While it may have been added with good intentions (to keep your system from running out of memory for OS-critical tasks), it's a nuisance in half. I'd recommend keeping it masked if you don't want your resource-heavy programs to be terminated randomly.
sudo systemctl mask system-oomd
Flathub
A lot of applications are packaged as Flatpaks in Fedora. Especially if you switch to something like Fedora Silverblue or Kinoite, everything is a Flatpak. It's enabled by default in Fedora, only that you must add Flathub as a source of Flatpak apps. (Flathub gives you access to Discord, Signal, Telegram, etc.)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak update
Make dnf faster
Unlike apt zypper or Pacman, dnf doesn't look for the fastest mirror to download packages from by default. You've to explicitly tell it to do so.
Add the following lines to your /etc/dnf/dnf.conf file. (Edit with sudo)
fastestmirror=True
# change this number to 5 or 10 if you don't have a very fast
# internet connection
max_parallel_downloads=20
defaultyes=True
sudo dnf install dnf5 dnf5-plugins
Install extra sound and video packages
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf groupupdate sound-and-video
Install additional drivers and libraries
sudo dnf install rpmfusion-free-release-tainted libdvdcss
Install extra firmware utilities
sudo dnf install rpmfusion-nonfree-release-tainted
sudo dnf install \*-firmware
Improved fonts
Fedora maintainers have a strict policy of shipping only free and open-source material with the distro. For this, you may miss out on some proprietary fonts used on many websites. Luckily you can enable them with this fedora community package or copr package.
sudo dnf install mscore-fonts-all -y
Installing Nvidia Diver
NVIDIA Auto Installer for Fedora Linux
I use a package called nvautoinstall - NVIDIA Auto Installer for Fedora Linux, A CLI tool that lets you install proprietary NVIDIA drivers much more easily on Fedora Linux (32 or above and Rawhide)
github repo -https://github.com/gridhead/nvidia-auto-installer-for-fedora-linux
Installation
If you use Fedora Linux (32 or above and Rawhide) - you can install NVIDIA Auto Installer for Fedora by enabling my COPR repository. Simply execute the following commands in succession to install the tool.
dnf install dnf-plugins-core -y
dnf copr enable t0xic0der/nvidia-auto-installer-for-fedora -y
dnf install nvautoinstall -y
sudo nvautoinstall rpmadd
This mode enables the RPM Fusion NVIDIA drivers repository.
sudo nvautoinstall driver
This mode simply installs the NVIDIA drivers. Enabling the RPM Fusion NVIDIA drivers repository is mandatory before doing this.
sudo nvautoinstall nvrepo
This mode enables the official NVIDIA repository for CUDA software.
sudo nvautoinstall plcuda
This mode installs only the CUDA support software. Enabling the RPM Fusion NVIDIA drivers and NVIDIA official repository, and installing the basic drivers are mandatory before doing this.
sudo nvautoinstall ffmpeg
This mode installs only the FFMPEG acceleration. Enabling the RPM Fusion NVIDIA drivers repository and installing the basic drivers are mandatory before doing this.
sudo nvautoinstall vulkan
This mode installs only the Vulkan renderer. Enabling the RPM Fusion NVIDIA drivers repository and installing the basic drivers are mandatory before doing this.
sudo nvautoinstall vidacc
This mode installs only the VDPAU/VAAPI acceleration. Enabling the RPM Fusion NVIDIA drivers repository and installing the basic drivers are mandatory before doing this.
sudo nvautoinstall getall
This mode installs all the above packages. (Not been implemented yet)
sudo nvautoinstall cheksu
This mode allows you to check the current user privilege level. You can use this tool effectively only when you have logged in as a root or sudo user.
sudo nvautoinstall compat
This mode allows you to check your hardware and host compatibility. The tool would check your hardware and host and tell if your device is supported by the tool or not.
sudo nvautoinstall primec
This mode allows you to toggle the PRIME offloading to render all display elements using the discrete card. This has only been tested on the Workstation variant of Fedora Linux.
sudo nvautoinstall --version
This mode shows the tool version and exits out.
sudo nvautoinstall --help
This mode shows the help message and exits out.
Command Line Utilities
Which ones to install? Well, that's up to you. I prefer btop for monitoring the system and Nvidia-smi to check the GPU usage over time.
sudo dnf install -y btop
To run Nvidia-smi in a loop:
# refereshes every 1-second watch -n 1.0
nvidia-smi
Or you can use nvtop
sudo dnf install -y nvtop
Default Shell
The default shell on most Linux distros is bash and Fedora is no exception here. I prefer fish shell.
sudo dnf install fish
using chsh -s to search and chsh - l to set the defeat shell
Enable night light
You should know if you've never used this thing yet on other operating systems. You'll appreciate it in the long run. On Gnome: go to Settings> Displays > Night Light and set it up. On KDE, you can search for Night Light and it'll show you the appropriate setting.
Display Scaling
Fedora for somewhat reason doesn't support fractional scaling for Gnome. If you have a high-resolution display, your best bet is to change the font scaling from the Tweaks app above. Goto Tweaks > Fonts > Scaling Factor and pick an appropriate value. The default is 1.00. Depending on your screen resolution, choose the one that you find most comfortable.
On KDE, you can do that from Settings > Hardware > Display Configuration > Global Scale.
Extras (advanced)
You better know what you're doing before you run anything in this section! :P
Enable SSH
sudo dnf install -y openssh-server
sudo systemctl start sshd.service sudo systemctl enable sshd.service
SSH Security
If you're planning to expose your system to be connected from external networks via SSH, you may want to harden the security of your system. You can follow this guide from CTT.
Containers
Fedora being the upstream for RHEL, prefers that you use Podman instead of Docker. However, you can install both and get your work done.
sudo dnf install -y podman
Javascript runtime
NodeJS
If you need it!
sudo dnf install node -v # shows version when installed
sudo dnf install yarn -v # shows version when installed
developer.fedoraproject.org/tech/languages/..
Bun JS runtime
to install bun
curl -fsSL https://bun.sh/install | bash
Installing dev tools
Visual Studio Code
Visual Studio Code (VS Code): VS Code is a free source code editor developed by Microsoft, used and popular for its extension availability for all sorts of tasks.
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null
sudo dnf check-update
sudo dnf install code
Zed
Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. It's also open source.
curl https://zed.dev/install.sh | sh
Dropdown Terminals
Install guake(Gnome). The keyboard binding to enable it is F12. (Make sure you launch it first after installing.)
sudo dnf install guake
I usually run btop on guake, so that even if I close the Terminal app, it keeps running and I can check it anytime with an F12 press.
Installing system themes and plugins
install Gnome Tweaks and Extension Manager from the app installer
System theme
Install Whitesure GTK theme
git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git --depth=1
./install.sh -l
./tweaks.sh -F
install Whtesure icon theame
git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git
./install.sh -a -b
install Whitesure Wallpaper
git clone https://github.com/vinceliuice/WhiteSur-wallpapers.git
install apple_cursor
https://github.com/ful1e5/apple_cursor
boomaga
If you have a non-duplex printer you can use Boomaga for manual duplex printing
sudo dnf install boomaga
Install OpenTabletDriver for Using Graphic tablet
https://github.com/OpenTabletDriver/OpenTabletDriver
Install Stacer
Stacer is open-source tool for system optimization and monitoring
sudo dnf install stacer
Install Spotube
flatpak install com.github.KRTirtho.Spotube
List of Some Important Applications
Ardour
OBS
Hydrogen
LMMS
FreeCad
KiCad
Backups
Scribus
Kdenlive
Krita
blender
handbrake
upscale
Inkscape
cura
prusa slicer
drawio
Xournal++
Fragments
insomnia
podman
easy effect