Fedora 39 After Install Guide

This getting started guide will help quickly set up Fedora 39 Workstation after a fresh install. This is my personal guide that has been revised through several Fedora releases and thoroughly vetted by the Linux community.

The instructions here may seem familiar for those that referenced the Fedora 38 Guide. Most instructions remain identical to past versions. I personally test these commands on my laptop and desktop. This guide is intended for the Fedora Workstation edition. The commands will work on the different desktop spins such as KDE and Budgie. Other Fedora editions such as Silverblue are not compatible.

Fedora is a very popular Linux distro for good reason. It is a favorite amongst developers and end users alike. Its also my current and preferred distro.

Current Stable Release

Fedora 39 Workstation and other Spins were released as stable on November 7, 2023.

How To Use This Guide

Open a command line, a la Terminal, by pressing the Super key and typing Terminal. Copy the commands and paste into the Terminal. Pasting in the Terminal requires Ctrl + Shift + V or right click and select paste.

Tweak the Update Process

Before installing updates, consider adding the following DNF flag (DNF is the package management system that handles installing and updating software). These will enable a maximum of 10 parallel downloads. This can speed up the download process.

Some guides will recommend adding fastest mirror, but this can actually cause slower downloads as the server selected may have inadequate bandwidth. Similarly, Delta RPMs are enabled by default.

sudo nano /etc/dnf/dnf.conf

Copy and paste the following line into dnf.conf.


Update the System

Linux distros have frequent updates, patches, and feature upgrades. Its always important to keep software up to date for security reasons but its even more important with a fresh install. If its been a while since the distro was released, some of the packages may be feeling a little exposed. Get them up to date before doing anything else.

sudo dnf -y upgrade --refresh

Reboot after updating.

Update Firmware

Some manufacturers support device firmware and UEFI updates on Linux. The following commands will find devices with firmware, search for possible firmware updates, and install the updates. These updates can patch security bugs and improve performance.

sudo fwupdmgr get-devices 
sudo fwupdmgr refresh --force 
sudo fwupdmgr get-updates 
sudo fwupdmgr update

Enable RPM Fusion

RPM Fusion offers packages that cannot be offered in the official Fedora repos due to various reasons, such as non free or proprietary licensing. These instructions are kindly borrowed from RPM Fusion. An RPM is also available that will enable these repos. This command enables free and non free repos.

sudo dnf install -y 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

Update the system before installing the tainted free and tainted non free repos. The tainted free repo provides DVD playback support. Tainted non free contains non FOSS software and hardware drivers.

sudo dnf upgrade --refresh
sudo dnf -y groupupdate core
sudo dnf install -y rpmfusion-free-release-tainted
sudo dnf install -y rpmfusion-nonfree-release-tainted 
sudo dnf install -y dnf-plugins-core

Flatpak and Snap

With Fedora 38 and newer releases, the full Flathub repo is available for Flatpaks when you choose the option to Enable Third Party Repositories. This can be done when initially opening the Software Center. Otherwise, Fedora includes a curated Flathub repo with far fewer options.

Snap support is easily enabled as well. Many Snap packages also have Flatpak counterparts. Consider evaluating Snapcraft to see if the redundancy is necessary.

sudo dnf install -y snapd
sudo ln -s /var/lib/snapd/snap /snap # for classic snap support
sudo reboot now


VLC handles most multimedia, but I still prefer to add additional codec support whenever possible.

For DVD playback, install the libdvdcss package. Requires the previously mentioned tainted free repo.

 sudo dnf install -y libdvdcss 

The following command will adds packages for gstreamer enabled applications. This enables playback of multimedia files. Names like bad and ugly refer to patent and licensing status.

sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel

sudo dnf install lame\* --exclude=lame-devel

sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin

OpenH264 is used for H.264/MPEG-4 media playback. Adding this can enhance your web browsing experience. Enable OpenH264 support in Firefox by adding the repo and installing the plugin.

sudo dnf config-manager --set-enabled fedora-cisco-openh264
sudo dnf install -y gstreamer1-plugin-openh264 mozilla-openh264

After installing OpenH264, open Firefox and navigate to Menu > Add-ons and themes > Plugins. Enable the OpenH264 plugin . Verify the plugin is working correctly.

Run a system update again with support for additional multimedia codecs this time.

sudo dnf group upgrade --with-optional Multimedia

Enable Power Percentage

If you’re a mobile user relying on a battery, its helpful to know exactly how much is left. This command displays the battery percentage next to the battery.

gsettings set org.gnome.desktop.interface show-battery-percentage true

You can also enable this by opening Settings then Power and scrolling to the bottom. Click to enable Show Battery Percentage.

Improved Fonts

If you’re happy with the default fonts on Fedora, then carry on. These are the default fonts on Pop!_OS.

sudo dnf install -y fira-code-fonts 'mozilla-fira*' 'google-roboto*'

After installing, open Gnome Tweaks to tweak the fonts. If you haven’t installed Gnome Tweaks, its necessary to do so before proceeding.

sudo dnf install -y gnome-tweaks gnome-extensions-app

Open Gnome Tweaks and adjust each font individually. Most modern screens are LCD and will benefit from enabling Subpixel Antialiasing.

Installing Microsoft TrueType fonts can improve compatibility and stability of Microsoft Office generated files, including those in Microsoft 365. Follow these commands to install the fonts.

sudo dnf install curl cabextract xorg-x11-font-utils fontconfig

sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

Install Apps via Command Line

Many of these applications are found in the Software Center. If you’re move comfortable installing software in a graphical point and click environment, skip down to Install via Software Center.

Software installations can be stacked together to save time and effort. For example, if you wish to install VLC and GIMP, the command can be executed as sudo dnf install -y install vlc gimp .

Instructions to install the Flatpak versions have been added. It is only necessary to install via dnf or Flatpak but not both.

Archive tools open compressed files.

 sudo dnf install -y unzip p7zip p7zip-plugins unrar 

Audacity is an excellent audio editor.

sudo dnf install -y audacity 
flatpak install flathub org.audacityteam.Audacity

Bitwarden is an open source password manager akin to LastPass or 1Pass. It integrates with autofill on Android. It syncs passwords across Android, Linux, ,iOS, OS X, and Windows. Bitwarden can be installed through AppImage, DEB, Flatpak, RPM, and Snap. DEB and RPM packages do not auto update. CLI Tools are available along with browser extensions. The Flatpak version is an unofficial release.

flatpak install flathub com.bitwarden.desktop

sudo snap install bitwarden

Dropbox is a cloud storage service that works across multiple platforms.

sudo dnf install -y dropbox nautilus-dropbox 
flatpak install flathub com.dropbox.Client

Geary is a simple to use email client

sudo dnf install -y geary
flatpak install flathub org.gnome.Geary

GIMP or GNU Image Manipulation Program is an open source photo editor often touted as the alternative to its proprietary counterpart.

sudo dnf install -y gimp 
flatpak install flathub org.gimp.GIMP

Gnome Tweak Tool makes it easy to modify the system and accompanying Gnome Extensions helps to manage installed extensions.

sudo dnf install -y gnome-tweaks gnome-extensions-app

qBittorrent is designed to be similar to µTorrent, a popular Windows Bittorrent client.

sudo dnf install -y qbittorrent 
flatpak install flathub org.qbittorrent.qBittorrent

Simplenote is a free note taking app developed by Automattic (the WordPress people). Simplenote syncs across virtually everything and supports AppImage, DEB, and RPM. Part of the appeal of Simplenote is markdown support but the other cool thing is WordPress support. Simplenote can be tied to a WordPress account for easy posting. Available Flatpak or Snap.

flatpak install flathub com.simplenote.Simplenote

Spotify is a music streaming service with mobile apps available as well.

flatpak install flathub com.spotify.Client

Standard Notes is a lot like Simplenote. Its free. Its open source. Its crazy cross platform. If the Automattic/Wordpress relationship makes you uncomfortable or maybe you just don’t need it, try Standard Notes instead. Standard Notes has one big advantage over Simplenote: extensions. Yes, the extensions do cost but they effectively turn Standard Notes into a mini office suite with support for markdown, rich text, LaTeX, and HTML to backup support for Dropbox, Google Drive, and OneDrive.

flatpak install flathub org.standardnotes.standardnotes

Steam is a gaming platform. I’m not a gamer but for this is the place to download games.

sudo dnf install -y steam
flatpak install flathub com.valvesoftware.Steam

Tutanota is a privacy focused email service.

flatpak install flathub com.tutanota.Tutanota

VLC is a popular media player capable of playing just about anything.

sudo dnf install -y vlc 
flatpak install flathub org.videolan.VLC

OBS Studio captures, records, and streams live video.

sudo dnf install -y obs-studio 
flatpak install flathub com.obsproject.Studio

GParted is a partition management utility. Gnome Disks is preinstalled on Fedora with similar functionality. GParted is a personal preference.

sudo dnf install -y gparted 

Open Gnome Tweaks to tweak the fonts.

Install via Software Center

Fedora ships with the Gnome Software Center as the primary home for installing applications. Gnome Software is relatively easy to use with software categories.

Gnome Software Center in Fedora 38

Upon first use, a prompt appears at the top to enable Third Party Software Repositories. This option was also available in the initial Welcome screen. The option is additionally available in the hamburger menu (the three stacked lines) in the upper right corner. Select that menu and choose Software Repositories.

Fedora 39 Repos
Enable Third Party Repositories in Fedora 39

Scroll down to find Fedora Third Party Repositories. This option enables useful repos like Google Chrome, Nvidia Drivers, Steam, and more.

Explore the categories at the bottom to discover different software. The magnifying glass in the top left opens the search function. The Software Center showcases “Editor’s Choice” titles. Many of them appear to be popular Linux titles.

Fedora 39 Software
Software package page

Clicking a software title will open a page with screenshots, a summary of the software, version information, and the option to install. The source menu located under the Install button displays different places or ways to install the software.

Fedora 39 Sources

For Geary, I selected Fedora Linux. Installing from Fedora Linux uses the RPM package. Using a distro’s own package format like RPM is often the best way to install the software with the smallest footprint and fastest load times. Software can also be installed from Flatpak in Gnome Software Center. When in doubt, install from the default source.


I recommend using Firefox. End of story. Its a free and open source browser from a company that respects standards. For a Chromium based browser, consider Brave, Opera, or Vivaldi. Chrome is also easily available after enabling Third Party Repositories. Microsoft has released its Chromium based Edge browser for Linux as well though it may not be quite feature complete compared to the Windows version.

Brave is a privacy focused browser known for its advertising crypto called BAT.

sudo dnf install dnf-plugins-core

sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/brave-browser.repo

sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc

sudo dnf install brave-browser

Chromium is the open source browser project that Google Chrome builds on.

sudo dnf install -y chromium

OR if you want to install full blown Google-ized Chrome. If you want to install a different version, change the package from -stable to -beta or -unstable. Note: if you previously enabled Third Party Repositories, you can safely skip installing fedora-workstation-repositories below.

sudo dnf install fedora-workstation-repositories
sudo dnf config-manager --set-enabled google-chrome
sudo dnf install -y google-chrome-stable

Non Repo Software 

AppImageLauncher is an AppImage management utility. It makes it easier to track which AppImages have been installed on your system, helps to integrate them, and allows the user to easily remove them. It is available for download as an AppImage, DEB, RPM, and Tarball.

Try a secure email service like Protonmail or Tutanota. Gmail, Outlook, and other free email services offer tons of storage. In exchange, they mine your data to show you ads. Secure email services encrypt your data so they are unable to read it. Tutanota offers a free AppImage and Flatpak desktop client while Protonmail enables IMAP with a paid plan.


Many Gnome applications are available as Flatpaks now. Fedora even defaults to Flatpak in Gnome Software. Check out the list of Best Flatpaks for more options.


Snap has become a popular option for packaging Linux applications as well. I’m not a huge gamer but Urban Terror is a great online FPS.

Snaps do not display in Gnome Software. Consult Snapcraft to find more.


I don’t recommend installing more than one Gnome Extension at a time to ensure compatibility and reliability. While they can enhance the Gnome experience and improve desktop customization, installing too many extensions can also adversely effect system performance.

Dash to Dock

Dash to Dock converts the bottom dock style bar into a proper application dock. It can be tweaked to autohide, extend to the edges, and move sides.


GSConnect allows notification syncing so that phone calls, messages, and app notifications will all appear on your desktop. Phone battery life is also displayed. It goes beyond just notifications though.

Text messages can be responded to or even started from the desktop. It also opens up file transfers between devices. While I like Google Messages for RCS and web access, it doesn’t compare to the features GSConnect offers.

GSConnect works with KDE Connect Android app. Before I go any further: Do not install KDE Connect on the Gnome Desktop Environment. It will interfere with GSConnect. GSConnect is the Gnome implementation of KDE Connect. The KDE Connect Android app works with both desktop programs.

Change the Desktop Environment

Fedora uses Gnome by default with several other desktop environment (DE) spins available. These DEs are still available after installing Fedora. Installing multiple DEs can cause conflicts with key managers and themes.

Available desktop environments can be found with this command:

dnf grouplist -v

The command will yield a list similar to this:

  • Fedora Custom Operating System (custom-environment)
  • Minimal Install (minimal-environment)
  • Fedora Server Edition (server-product-environment)
  • Fedora Workstation (workstation-product-environment)
  • Fedora Cloud Server (cloud-server-environment)
  • KDE Plasma Workspaces (kde-desktop)
  • Xfce Desktop (xfce-desktop)
  • LXDE Desktop (lxde-desktop)
  • LXQt Desktop (lxqt-desktop)
  • Cinnamon Desktop (cinnamon-desktop)
  • MATE Desktop (mate-desktop)
  • Sugar Desktop Environment (sugar-desktop)
  • Deepin Desktop (deepin-desktop)
  • Development and Creative Workstation (developer-workstation)
  • Web Server (web-server-environment)
  • Infrastructure Server (infrastructure-server-environment)
  • Basic Desktop (basic-desktop-environment)

Using the package name from the list above, install the desktop enviroment with a simple dnf install substituting kde-desktop-environment with the preferred DE.

sudo dnf install @kde-desktop

DEs can be switched at the login screen or alternatively, with the Desktop Switcher tool.

sudo dnf -y install switchdesk switchdesk-gui

Open the Desktop Switcher and select the preferred DE.

Discover more from Hacking The Hike

Subscribe to get the latest posts to your email.

4 thoughts on “Fedora 39 After Install Guide”

  1. Please don’t recommend updating live from a running desktop. This is the single most dangerous way to update. I have seen it leave systems broken multiple times. If anything in the update process happens to cause the terminal app or the desktop to crash (that’s a very wide “attack surface”), the update process will be killed in the middle, which is a difficult situation to recover from.

    Please recommend updating the system using the default graphical tools – GNOME Software in Workstation, Discover in KDE. These do an “offline update”, where the system downloads the updates, reboots to a minimal environment and applies the updates, then reboots back to the regular system. Yes, this is slower and less convenient, but it is *much* safer. If you really can’t live with reboots, an option that’s less safe than offline updates but much safer than updating within a running desktop is to go to a VT (ctrl-alt-f3), log in, and run the update there. A console on a VT is much less likely to somehow be crashed by an update than a terminal app in a desktop. Optionally, you can run the update inside tmux or screen, and then attach to it from a desktop terminal to monitor the progress, if you like.

  2. Neat, this article becomes uselessly GnomeCentric about halfway down. And this recommended the wrong audio editor; Tenacity is the preferred editor because Audacity did that oops a few years ago after selling out to Muse.

    Also, login screens are nothing but bloat. Consider something like Ly or TBSM for a really streamlined login.

    Snaps are the devil, and should never be recommended under any circumstances. I don’t deign Flatpak, but I’m never going to use them.

    Dear Reader: Never use or assume a -y. Ever. This is an insane practice. Always read prompts and check that you’re sure. Unless you want to erase most of your root directory with a mistyped rm command.

    The GNU Image Manipulation Program is quaint and worthless (And needs a better Cheat Commando name), having stalled to death somewhere in the 2.99 series. Use Krita instead. And instead of proprietary software such as Spotify or Dropbox, remember that open source solutions exist, such as Nuclear/Funkwhale or NextCloud.

    And if your desktop environment requires you to install an extra tool to tweak something as simple as a typeface, throw that in the garbage, as it has gone too far into the padded cell philosophy to be of any use.

    • Ah, the audacity (not the editor, mind you) of some people. Gnome’s too mainstream, Tenacity’s the new black, and login screens are for the uninitiated. And GIMP might as well be a relic of the Stone Age. Krita’s the only brush this Picasso will paint with, while streaming on Nuclear because Spotify’s just too ‘Top 40’. Using Dropbox? How quaint. NextCloud is the cloud of choice for the discerning data hoarder. And if your GUI needs a tool to tweak a font, might as well toss it, right? Because why stop there—car needs keys, might as well crush it. House needs electricity, better burn it down.
      The manifesto of the Arch-Douche of England, decreeing the one true way to compute from atop their throne of discarded UI elements. Maybe, just maybe, people would be more open to your gospel of the digital underground if it didn’t sound like it was being preached by someone who considers ‘user-friendly’ a personal insult.

  3. Excellent resource. Thank you so much.
    This is my first go at Fedora, so excuse me if this all sounds ignorant.

    when I run the command: “sudo dnf group upgrade –with-optional Multimedia” from the guide, I get the error:
    “Last metadata expiration check: 0:39:47 ago on Thu 16 Nov 2023 04:57:27 PM EST.
    No match for group package “gimp-heif-plugin”
    Problem 1: problem with installed package libswscale-free-6.0.1-1.fc39.x86_64
    – package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswscale-free provided by libswscale-free-6.0.1-1.fc39.x86_64 from @System
    – package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from fedora
    – package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswscale-free provided by libswscale-free-6.0.1-1.fc39.x86_64 from updates
    – package ffmpeg-6.0-16.fc39.x86_64 from rpmfusion-free requires ffmpeg-libs(x86-64) = 6.0-16.fc39, but none of the providers can be installed
    – conflicting requests
    Problem 2: ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free does not belong to a distupgrade repository
    – conflicting requests
    – problem with installed package libavcodec-free-6.0.1-1.fc39.x86_64
    – package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0.1-1.fc39.x86_64 from @System
    – package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0-11.fc39.x86_64 from fedora
    – package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0.1-1.fc39.x86_64 from updates
    – problem with installed package firefox-119.0.1-1.fc39.x86_64
    – package ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0-11.fc39.x86_64 from fedora
    – package ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0.1-1.fc39.x86_64 from updates
    – package ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0.1-1.fc39.x86_64 from @System
    (try to add ‘–allowerasing’ to command line to replace conflicting packages or ‘–skip-broken’ to skip uninstallable packages)”


Leave a Reply