The Fedora Linux starter pack: everything you need for a smooth experience
I like Fedora Linux.
It’s the Linux distro that stopped my habit of distro-hopping. Big deal? Ooh, big deal!
It’s stable in day-to-day use, ships with up-to-date software, and the software selection is adequate out of the box.
It also ships with a fresh Linux kernel version1, resulting in a good experience even on modern hardware.
I’ve been happily using it for about 4 years at this point, both on personal and work computers.
However, every time I recommend it to my friends, family and colleagues, I have to mention a few things that a new Fedora Linux user might want to do first so that the experience is as smooth as possible.
If it weren’t for those aspects, Fedora would be pretty much perfect.
Set up RPM Fusion
There are some packages that are not available on Fedora by default, likely as a result of copyright laws, lawyers and Red Hat (IBM) not having the appetite to fight it out in the courts.
This is why RPM Fusion exists:
RPM Fusion provides software that the Fedora Project or Red Hat doesn’t want to ship.
The installation instructions are here, and I personally prefer this one-liner setup:
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
This step is a prerequisite to the next one.
Enable hardware accelerated video playback
This is the part where I blame lawyers.
To have a good chance at smoothly playing back videos in a browser or using VLC, you have to do a few extra steps, because someone fucked up.
Check this guide for up-to-date information.
Switch to the full version of ffmpeg
:
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
AMD GPU users:
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
Intel GPU users (Broadwell and newer, 2014+):
sudo dnf install intel-media-driver
Old Intel GPU users (Ivy Bridge and older, <=2013):
sudo dnf install libva-intel-driver
NVIDIA GPU users: good luck.2
You can verify the enabled profiles using vainfo
.
Here’s the output on my machine before completing the steps (AMD GPU).
Note the lack of H.264 and HEVC profiles.
me@mymachine:~$ vainfo
Trying display: wayland
libva info: VA-API version 1.21.0
libva info: Trying to open /usr/lib64/dri-nonfree/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_21
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Mesa Gallium driver 24.1.7 for AMD Radeon 780M (radeonsi, gfx1103_r1, LLVM 18.1.6, DRM 3.57, 6.10.8-200.fc40.x86_64)
vainfo: Supported profile and entrypoints
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSlice
VAProfileNone : VAEntrypointVideoProc
Here’s what it looks like after the tweaks are applied.
me@mymachine:~$ vainfo
Trying display: wayland
libva info: VA-API version 1.21.0
libva info: Trying to open /usr/lib64/dri-nonfree/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_21
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Mesa Gallium driver 24.1.7 for AMD Radeon 780M (radeonsi, gfx1103_r1, LLVM 18.1.6, DRM 3.57, 6.10.8-200.fc40.x86_64)
vainfo: Supported profile and entrypoints
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSlice
VAProfileNone : VAEntrypointVideoProc
Enable Flathub
This step is only necessary if you did not enable third-party repositories during the inital setup of your Fedora Linux installation.
Setting up Flathub is just one command:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Check the Flathub setup instructions for Fedora for up-to-date info.
🇪🇪 Specific to Estonia: ID card support
Estonia has an ID Card system (Eesti ID kaart), and the desktop application is also officially supported on Linux. Ubuntu Linux.
To use the ID card in Fedora, you’ll need to install the necessary packages:
sudo dnf install -y open-eid
Firefox users will need to make sure that the Web eID extension is installed. If it wasn’t installed with the above command, you can also get it here.
The desktop application used for opening and digitally signing documents, DigiDoc4, has a bad habit of breaking sometimes due to changes. Luckily there exists an unofficial version of DigiDoc4 as a Flatpak and it’s available on Flathub.
It’s mentioned in the official open-eid/linux-installer repo as well, which lends some credibility (plus I know the person that built it).
As of 2024-10-14, ID card works on Firefox and the DigiDoc4 client from the Fedora official repository does not crash and burn.
GNOME: fix the “Alt+Tab” behaviour
GNOME is a great desktop environment, but it, too, has its quirks.3
If you’re used to “Alt+Tab” keyboard shortcut simply switching windows, then you’ll have to tweak it in settings.
- Open “Settings”
- Navigate to “Keyboard”
- Click on “View and Customize shortcuts”
- Use the search bar to:
- disable “Switch applications” shortcut
- set the “Switch windows” shortcut to “Alt+Tab”
Here’s what it looks like on GNOME 46.
GNOME: minimize, maximize buttons on windows
By default, you’ll only see the “Close” button on windows, but it is possible to also show minimize and maximize buttons.
Install GNOME tweaks with sudo dnf install -y gnome-tweaks
.
Open it, navigate to Windows
, and toggle Maximize
and Minimize
settings.
GNOME: app status indicators
Some apps, such as Solaar, like to run in the background and show you a status indicator on your taskbar. This functionality is not present on GNOME by default, but you can easily fix it with the AppIndicator and KStatusNotifierItem Support extension.
GNOME: corner tiling
As of GNOME 46, you cannot do corner tiling out of the box. The best you can do is split windows horizontally, which is fine for single ultra-wide monitor setups. There are situations where corner tiling comes in really handy.
The best solution I have found so far seems to be the Tiling Assistant extension. It’s configurable and will probably suit your workflow well.
At the time of writing, it does have a few small but annoying enough bugs that are a show-stopper for me, but compared to other solutions this one at least works.
Optional: disable SELinux
There are two types of people: those that swear by SELinux, and those that swear due to SELinux.
If you’re running into weird issues and you don’t know why, then see if SELinux is to blame.
I run into issues with SELinux every time I try to move files around with rsync
, resulting in a simple
rsync -aAXv source/ destination/
command becoming rsync -aAXv --filter='-x security.selinux' source/ destination/
.
It’s frustrating.
To fix this, I simply disable SELinux. Open up /etc/selinux/config
, find the line SELINUX=enforcing
and change it to
SELINUX=disabled
.
You’ll need to restart your machine for it to take effect.
Don’t use ZFS
ZFS is a great filesystem, but not on distros that ship new kernel versions.
This is due to OpenZFS needing to be built against the Linux kernel, and new kernel releases often break compatibility. Those breakages may lead to your ZFS pools not being imported at boot as a result.
You can use ZFS if you use LTS kernels built by someone else, or if you simply don’t update your system, but I don’t recommend either approach.
Use a different distribution, such as Debian, if you really need to use ZFS daily.
If you don’t care for ZFS but like data integrity checks, snapshots and don’t use a lot of disks in an array, then
btrfs
is totally fine.
Don’t use NVIDIA GPU-s
I’ve never had a good experience with the open source driver nouveau
, and the proprietary drivers are a headache and
break things.
This might be about to change, but I’ll believe it when I see it.
Conclusion
I hope that this has made your Fedora Linux experience just a little bit better.
Here’s to hoping that IBM does not fuck up Fedora Linux. My expectations are low.
If you have any other tips to share then please contact me! You can find the contact details below.
-
one thing that I appreciate with Fedora is that the kernel versions are ever-so-slightly lagging behind the likes of Arch Linux, meaning that you’ll be less likely to hit any kernel bugs, and yet you don’t have to worry about being too far behind (like on Ubuntu or Debian). ↩︎
-
no, seriously, I wish you all the luck in the world. I have never managed to have a good experience with NVIDIA on Linux. I’ve completely given up. ↩︎
-
use whatever desktop environment floats your boat, I don’t judge! ↩︎
Subscribe to new posts via the RSS feed.
Not sure what RSS is, or how to get started? Check this guide!
You can reach me via e-mail or LinkedIn.
If you liked this post, consider sharing it!