If there is a single article category I cannot stand, it is that of “the 10 things to do after installing [INSERT DISTRO HERE]”. They are blatantly naive articles, that give the unexperienced user a lot of terrible suggestions. The user in question follows religiously those points, and then the distro is broken, often irreparably.

For example, many Fedora guides suggest Fedy as a third-party installation manager. What could go possibly wrong with that, right? The problem with Fedy is that all the repositories it adds are terrible. They will bring a lot of issues, and broken dependencies due to their unproper maintainance. In place of Fedy, it is really better to just pick up your common sense left, and get all your software from official sources, or well-maintained repositories. The risk to break Fedora is real, despite it being a rock-solid OS with a wonderful QA and recent software.

So, I’ll try to remedy to the lack of a good Fedora starting point. Let’s try to offer something really valid for new users, the 10 things to do after installing Fedora Workstation. For real.

Little disclaimer: this guide talks about Fedora Workstation, the GNOME desktop edition, which at the date of the article is on version 33. If you use one of the spins, this guide will work as long as you modify something (jump the parts related to GNOME Software for example, or using KDE software store (Discover)).

1. Update Fedora

A new version of Fedora is released every 6 months. Tipically, new versions are released at the end of April and October. This guarantees an optimal stability: kernel and other critical packages are rolling-release, while other fundamental packages see only security patches or occasional upgrades. Fedora Workstation (the defaul edition) runs the GNOME desktop environment. It is updated every six months together with the new Fedora version. Therefore, you will expect changes in GNOME funcionalities only when you upgrade to a new major version.

After installed, you need to update Fedora. Since the system can be months old, we must use a different command:

sudo dnf upgrade --best --refresh --allowerasing 
sudo dnf distro-sync

These commands may be used only after installation, and it’s not strictly necessary to run them often. They force the system to upgrade to the latest version, refreshing metadata, choosing the best package versions, and removing/downgrading eventually uneeded packages. This last part is reserved to the distro-sync command.

After doing that, it’s important to restart the system to apply the just installed updates. Not restarting now is not advised.

There are two ways to regularly update a Fedora system.

The first method is to check and install updates with the GNOME Software store. It’s a graphical-based method, very intuitive and comfortable.

If you want more feedback, or if you prefer the terminal, you just run

sudo dnf upgrade

In every case, update Fedora regularly. You’re welcomed to update it at least once a week, and restart to apply the just installed updates. Fedora will keep the latest three kernel versions installed, in case you needed to fallback to a previous one. This can be done in GRUB, during boot. This is NOT intended as a permanent solution, since older kernels suffer from grave vulnerabilities.

2. Install RPMFusion

Fedora is a Linux distribution that ships free software only (except needed firmware; that said, it will never be run on the CPU). For licensing reasons, programs infringing licenses cannot be shipped, nor with non-free licenses. Despite thousands of packages being in Fedora, this limitation is probably restrictive to many users (me included), that would like to use open source programs with licensing problems or other reasons (for example VLC and MPV, which include non-exactly-free codecs). I sometimes hear that Fedora cannot read mp3, this was true years ago, but now it is bullshit. However, this kind of issues are completely solved by RPMFusion. RPMFusion is an external repository, I would say it is THE external repository you would ever need on Fedora. It is divided into two repositories, the free one that contains free software with licensing issues, and the nonfree one which contains, for example, proprietary Nvidia drivers for your video card. The official website is this one. This repository, differently from many PPAs or AUR packages, its strictly maintained by Fedora maintainers and tested to work properly with the main system. It’s some kind of a “semi-official extension” of Fedora.

I kindly suggest to install the free RPMFusion repository with the command

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

The nonfree repo instead, it’s destined to users that need to install Nvidia proprietary drivers. You can install it with:

https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

If you enabled nonfree repo and you want to install Nvidia drivers, install the following package

sudo dnf install akmod-nvidia

and then restart to see the driver working.

What you should NOT do, is going to Nvidia website and download their drivers. Those are broken and completely unsuited for the fast upgrading pace of Fedora. Doing so, you will almost certainly break your Fedora.

Once enabled, you can simply install all the software they contain with the same dnf commands as explained in the next section.

3. Install some software with dnf

Fedora distributes thousands of packages. In its repository you can find all the main software you will need. The main method is with the package manager dnf. It is a powerful tool, despite being a bit slow, especially for people that come from Debian-based distros or from Arch Linux. The second method is through the GNOME Software. Just search for your software and click on “install”. This is the GUI method. I personally find it rather good and comfortable, but I still prefer the terminal. You will not be disappointed.

We have already seen that the ugprade is made with dnf upgrade. To install software you must use dnf install <package_name> To find package names you can use dnf search <search_string>. That way, package name will be searched inside the repositories.

For example, searching mpv with dnf search mpv, you get the output:

================================== Corrispondenza esatta per Name: mpv ===================================

mpv.x86_64 : Movie player playing most video formats and DVDs
================================ Name & Summary delle corrispondenze: mpv ================================
gnome-mpv.x86_64 : A simple GTK+ frontend for mpv
mpv-libs.x86_64 : Dynamic library for Mpv frontends
mpv-libs-devel.x86_64 : Development package for libmpv
mpv-mpris.x86_64 : MPRIS plugin for mpv
perl-Devel-Dumpvar.noarch : Pure-OO reimplementation of dumpvar.pl
vdr-mpv.x86_64 : A mpv player plugin for VDR
xt7-player-mpv.noarch : Qt/Gambas gui to mpv media player
===================================== Name delle corrispondenze: mpv =====================================
bumpversion.noarch : Version-bump your software with a single command
perl-Dumpvalue.noarch : Screen dump of Perl data
=================================== Summary delle corrispondenze: mpv ====================================
celluloid.x86_64 : A simple GTK+ frontend for mpv
deepin-movie.x86_64 : Deepin movie based on mpv
smplayer.x86_64 : A graphical frontend for mplayer and mpv

You can then install the powerful media-player with sudo dnf install mpv. Alternatively, you can install celluloid, a media-player based on mpv with a nicer GUI.

A list of programs I kindly suggest is the following:

  • ffmpeg: adds codec support to various softwares;
  • gimp: photo editing sofware. If you search gimp with dnf search it’s possible to find all the optional plugins;
  • kdenlive: video editing software;
  • audacity-freeworld: version of Audacity with all the codecs from RPMFusion;
  • chromium-freeworld: Chromium version with all the codecs from RPMFusion;
  • blender: 3D modeling and video editing software;
  • git: VCS done right;
  • keepassxc: wonderful local password manager;
  • transmission: a torrent client;
  • telegram-desktop: Fedora’s telegram version;
  • evolution-spamassassin: a complete e-mail manager, with spamassassin filter;
  • darktable: nice RAW editor for photos;
  • calibre: e-book reader;
  • tilix and tilix-nautilux: a terminal that can split horizontally or vertically;

and so on.

Uninstalling packages happens with the command dnf remove <package_name>. To get a list of all installed packages, just run dnf list --installed. Replacing the flag --installed with --all will print the complete list of available packages.

4. Enable flatpaks for proprietary programs you eventually need

Flatpak is an innovative open-source packaging technology, or a platform to create and distribute Linux applications. To make it short, it allows to install programs in a separate manner from the underlying operating system, inside a sandbox, that is able to isolate those programs from the OS.

At the momeny it’s still an experimental technology, it suffers from many issues, some security issues (application update policy entirely depend by the package owner, and not by the maintainers from the distribution, libraries out of date with unfixed vulnerabilities), some other usability issues (it uses more disk space, doesn’t properly support command-line, programs inside the sandbox can have less funcionalities, and so on). dnf and the main repository are virtually always preferred as the install method. However, flatpaks are great for proprietary software such as Microsoft Teams, Skype, Spotify, Discord and so on. They will be installed separately from the OS. You can also configure the sandbox with this in a second moment.

Flatpak “store” is the official website flathub.org. Following the instructions on the website, you enable the repository with the command

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

which will install flathub’s repository for all the system’s users. If you wish to install it for your user exclusively, it’s sufficient to postpone the --user flag, namely

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --user

If you’re not sure what to do, I advice you to use the flag --user, because this will never require sudo privileges to run. If you installed the repository with the flag, you should remember to put it everytime you run the command flatpak, or to choose the corresponding method to install a flatpak in the GNOME Software store (choose “user”, not “system”), in the top-right button.

To install flatpak software you can also go on flathub.org, find your software, and click “install”. It will download a file. Double-click on it, and install it with the GNOME store.

The classic way is with the console. Run flatpak install <flatpak_name> and eventually add --user flag. For example, if you wish to install Spotify you can run

flatpak install org.spotify.Client

it will install Spotify as a flatpak with all necessary flatpak dependencies. There are two ways to get the package name:

  • using flatpak search <search_string>;
  • going to flathub.org, searching your favourite program, and looking for the last part of the link.

Both methods are valid.

A program I kindly advice to install via flatpak is Steam (com.valvesoftware.Steam). Steam needs ancient libraries which are not properly provided by the recent versions of Fedora. Steam will benefit from the flatpak older libraries.

To update flatpaks in your system (do it at least once a week), you can use GNOME Software or flatpak update, eventually adding --user flag. Removal of packages is done by flatpak remove <flatpak_name>.

5. Some other goodies

Some applications using Qt framework, for example telegram-desktop, will suffer from clipboard issues and other things when running GNOME. To solve this, add the following line in /etc/environment,

QT_QPA_PLATFORM=xcb

and restart the system.

If you wish, you can install pulseeffects to enable audio quality improvements on the startup. To do so, just follow this part of the wonderful install script from Tobias Wolfshappen, an expert Fedora user.

It’s sufficient to add to ~/.config/autostart/pulseeffects-service.desktop the following content:

Name=PulseEffects
Comment=PulseEffects Service
Exec=pulseeffects --gapplication-service
Icon=pulseeffects
StartupNotify=false
Terminal=false
Type=Application

This will enable pulseeffects service at startup.

To get a superior audio quality, in the same way let’s create the file ~/.config/pulse/daemon.conf and put inside it the following:

default-sample-format = float32ne
default-sample-rate = 48000
alternate-sample-rate = 44100
resample-method = speex-float-10
high-priority = yes
nice-level = -18
realtime-scheduling = no
realtime-priority = 9
rlimit-rtprio = 9
avoid-resampling = yes

This way, you will get a better audio quality at the next reboot.

Another improvement is the antialiasing quality of system fonts. Execute gsettings set org.gnome.settings-daemon.plugins.xsettings antialiasing 'rgba' to set it from greyscale to rgba. This will work on GNOME only.

6. Get in touch with Fedora community

Fedora offers the chance to get in touch with the community (or simply, ask questions and require assistance) through many channels. I will briefly remind some of them:

Community is warm and welcoming. There are many channels dedicated to off-topic, such as Blue Hat. There are many other initiatives, and I invite you to check them out.

7. There’s no other point

The things to do after installing Fedora shouldn’t necessary be 10.

Additional tips

  • Here you can find out how to upgrade Fedora version.
  • Podman is a valid docker alternative. Here some interesting articles, and here the Arch Wiki page. Fedora natively supports only Podman, and docker is not fully supported on it. Podman can be used to fully replace docker with the same commands.
  • Despite snap exising on repositories, it’s not completely supported on Fedora and has many issues. It’s always better to prefer flatpak instead of snap.
  • If we want to declare a hierarchy when choosing a source to install a program from, it’s the following order: official repository -> RPMFusion -> Flatpak -> COPR (they are very similar to Ubuntu PPAs) -> anything else.
  • It’s possible to add a dock on GNOME installing gnome-tweaks and gnome-shell-extension-dash-to-dock, rebooting the system, launching Tweaks and enabling the extension. It’s possible to configure it too, on Tweaks.

This was the end of the “list”, hope you found it useful. The rest is up to you, your curiosity and your tastes. I wish you good work and have fun on Fedora!