Cover Image for Fedora 40 Post Installation Steps

Fedora 40 Post Installation Steps

posted by

Chaitanya

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

https://www.boomaga.org/

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