Things I Do After Installing Fedora Workstation:¶
Updating the system:¶
Installing some useful missing apps:¶
GNOME Tweaks to add maximize and minimize buttons to the apps window:¶
How to:
open GNOME Tweaks, then go to Windows → Titlebar Buttons, and switch on Maximize and Minimize.
Adw-gtk3 to make GTK 3 apps consistent with GTK 4/ Libadwaita apps:¶
How to:
open GNOME Tweaks, then go to Appearance → Styles → Legacy Applications , and select Adw-gtk3 or Adw-gtk3-dark from the menu.
Brave Web Browser: Secure & Private by Design¶
What is config-manager?
config-manager is a DNF plugin that simplifies adding, enabling, disabling, and removing repositories via command-line commands.
-
Install the core plugins to enable the 'config-manager' command:
-
Add the official Brave repository so that DNF can find the package:
-
Install Brave Browser:
Why add the Brave repository?
Installing via the official repository ensures your browser updates automatically alongside your system updates, keeping your browser secure and up-to-date.
Install Codecs and Microsoft Fonts¶
Fedora includes only open-source licenses software in their official repositories, and it doesn’t ship with proprietary codecs (needed for MP 3 audio or MP 4/H.264 video playback) or Microsoft fonts by default.
To fix that, we need add the RPM Fusion repositories first, then we could easily install the needed codecs and fonts:
-
Add RPM Fusion Repositories:
-
Enable Cisco OpenH264: Fedora uses the OpenH264 library by default for web video (like WebRTC), but the repository needs to be explicitly enabled.
Why do I need to enable this explicitly?
H.264 video decoding is patented and requires royalty payments. Fedora, being 100% open-source, cannot distribute it or pay these fees.
The Solution: Cisco has generously agreed to pay the licensing fees for everyone, but there is a legal catch: You must download the binary directly from Cisco, not from Fedora.
By running the command above, you are simply telling dnf to fetch this files from Cisco's servers, keeping Fedora legally safe and your videos playing smoothly.
Then use the following command to install the openH264 library:
- Enable GUI Support (AppStream):
By default, enabling RPM Fusion makes packages available in the terminal (
dnf). To make them appear in graphical stores like GNOME Software or KDE Discover (with icons, screenshots, and descriptions), you need to install the AppStream metadata.
- Upgrade to Full FFmpeg
Fedora ships with a limited version called ffmpeg-free. While it works for basic tasks, it often causes version mismatches and lacks support for many common formats.
For a stable experience, it is highly recommended to swap it with the full version provided by RPM Fusion.
- Install Additional GStreamer Codecs
While FFmpeg handles the backend, many GUI applications (like the default Videos app or Totem) rely on the GStreamer framework. To ensure they can play all restricted formats:
sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
-
Enable Hardware Acceleration for Intel integrated GPUs:
-
Install Microsoft fonts:
Obsidian: The Best Note Taking App¶
- Ensure Flathub repository is enabled:
Geary: Lightweight GNOME Email Client¶
Gnome Extension Manager: The Best Way to Browse, Install and Manage GNOME Shell Extensions¶
List of extensions I use:
- AppIndicator and KStatusNotifierItem Support: Adds system tray icons support to the top panel.
- GSConnect: To get notifications from my Android phone, share clipboard between my phone and my computer, and remote control my PC from my phone.
- Clipboard Manager: Like its name says, a clipboard manager for GNOME (saves text you copy so you don't lose it).
- Gtk4 Desktop Icons NG (DING): Allows me adding my files and apps to the desktop.
- Tiling Assistant: Brings Windows 11 style Snap Assistant to GNOME.
- Fedora Linux Update Indicator: To get a notification when new system updates are available.
Install Visual Studio Code¶
-
import The Microsoft GPG key:
-
Add the VS Code repository:
- Install the VS Code package:
print("x")