Fedora is a leading-edge Linux distribution. Unlike Debian or Ubuntu, its repositories contain fairly recent versions of most software. It is thus well-suited for desktop use, which is the scenario envisaged here.
To update the operating system and installed software, run the following command:
sudo dnf upgrade --refresh
Always reboot your computer after installing updates, as not all programs can be relaunched automatically. If programs are not relaunched, they will remain on their current versions and will not benefit from updated libraries.
Firmware updates are distributed via the Linux Vendor Firmware Service (LVFS). To check for updates, run:
sudo fwupdmgr refresh
To install any available updates:
sudo fwupdmgr update
You will be prompted to reboot to finish the installation process. Firmware updates are issued by hardware vendors to fix bugs and correct security flaws. You should regularly check for firmware updates in addition to regular software updates.
Sometimes, not all of the required dictionaries are installed, especially if your language is set to a non-US variant of English. As I am British, I would like my software to check for spelling errors using British English dictionaries, which can be installed using the following command:
sudo dnf install langpacks-en_GB
To find the correct package for your language, click
here.
This is important for the next step.
Fedora comes with nano and Vim preinstalled, both of which are horrible editors. Thankfully, you can install a sane editor like micro from the Fedora repositories using one of these commands:
# for X11 (XFCE etc.)
sudo dnf install micro xclip xsel
# for Wayland (GNOME, KDE etc.)
sudo dnf install micro wl-clipboard
xclip/xsel and wl-clipboard allow micro to integrate with the system clipboard.
SELinux (Security-Enhanced Linux) is a complex security module for the Linux kernel. It is installed and enabled out-of-the-box on Fedora and other distributions in the Red Hat family. Its job is to restrict the behaviour and system access of various programs using security profiles, which are shipped alongside software packages.
While this is a nice idea, in practice security profiles are often incorrect or become outdated over time, leading to AVC denial alerts and program crashes. On Fedora especially, it is best to just disable SELinux and avoid installing programs of questionable origin. If you are running Fedora or another RHEL-style distribution on a production server, you can isolate network-facing processes using Bubblewrap, which is much easier to use than SELinux.
To disable SELinux, open /etc/selinux/config as root and change the SELinux entry from enforcing to disabled.
sudo micro /etc/selinux/config
Then reboot your computer.
Fedora's repositories contain only open source software. However, some important software is distributed only under proprietary or restricted licenses. Without these programs and libraries, you may experience multimedia playback failure or degraded performance.
RPM Fusion is a well-known third party project that provides such software. You can enable the repositories using the commands below.
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install rpmfusion-free-release-tainted
sudo dnf install rpmfusion-nonfree-release-tainted
Warning: NVIDIA graphics cards are not as well-supported as AMD or Intel cards on Linux. Consider disabling Secure Boot before proceeding in order to avoid having to self-sign kernel modules.
You will need to install the proprietary driver corresponding to your model. If you don't know which model you have, you can use the following command:
/sbin/lspci | grep -e VGA
If you are on a laptop with hybrid ("Optimus") graphics, try this command instead:
/sbin/lspci | grep -e 3D
Next, install any available updates using dnf and then reboot if your system was not up-to-date.
If your GPU was made in 2014 or later, install the driver using this command:
sudo dnf install akmod-nvidia
After the installation has completed, wait until this command...
modinfo -F version nvidia
...displays an output similar to this...
440.64
...and NOT this!
modinfo: ERROR: Module nvidia not found.
Then reboot your computer.
These instructions apply to (current) GeForce, Quadro and Tesla models. This excludes Legacy GeForce 600/700 (and older) series cards.
While it is possible to install the proprietary NVIDIA driver on older cards, you may face problems when using the new Wayland sessions. If you want to proceed anyway, and your GPU is a Kepler model released between 2012 and 2014, install xorg-x11-drv-nvidia-470xx and akmod-nvidia-470xx instead of akmod-nvidia. All older cards are no longer supported by NVIDIA.
The following commands will install many common codecs, required for playback of certain types of media files. This includes support for hardware-accelerated encoding and decoding.
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1
sudo dnf group install multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
For Intel (Gen 6+/Skylake+) users:
sudo dnf install intel-media-driver
For older Intel:
sudo dnf install libva-intel-driver
For AMD users:
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
sudo dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686
sudo dnf swap mesa-vdpau-drivers.i686 mesa-vdpau-drivers-freeworld.i686
For NVIDIA users:
sudo dnf install libva-nvidia-driver.{i686,x86_64}
Some firmware packages are distributed only under proprietary or restricted licenses. To install them, run the following command:
sudo dnf --repo=rpmfusion-nonfree-tainted install "*-firmware"
Some of the default firewall profiles shipped in Fedora permit a degree of exposure which may be unnecessary for a desktop computer.
sudo firewall-cmd --remove-service=mdns --remove-service=ssh --remove-service=samba-client --permanent
sudo firewall-cmd --remove-port=1025-65535/tcp --remove-port=1025-65535/udp --permanent
sudo firewall-cmd --reload
The OpenSSH server, Avahi/mDNS and cups-browsed services should also be disabled if they are not needed:
sudo systemctl mask --now avahi-daemon.socket avahi-daemon sshd cups-browsed
TLP is a tool which can improve your battery life by tweaking certain kernel parameters.
sudo dnf remove tuned tuned-ppd
sudo systemctl mask --now systemd-rfkill.socket systemd-rfkill
sudo dnf install tlp tlp-rdw
sudo systemctl enable --now tlp
Some variants of Fedora ship with a horrible, buggy program called dnfdragora. To stop dnfdragora from starting automatically:
mkdir -p ~/.config/autostart
micro ~/.config/autostart/org.mageia.dnfdragora-updater.desktop
Then paste the following:
[Desktop Entry]
Hidden=true
If you are using X11, you have the option of using nice font rendering. The exact steps vary depending on your desktop environment, but in general you need to ensure that anti-aliasing is enabled, hinting is set to slight and subpixel order is set to RGB.
If you are using Wayland, I'm afraid you're out of luck. The font rendering will be hot garbage no matter what you do.
Copyright © 2025 Indraj Gandham