Things to do after installing Fedora 39 Workstation

Karol Stefan Danisz
13 min readNov 3, 2023

--

A brief tutorial on configuring a secure and reliable operating system.

This guide is aimed at users who have an intermediate-level of technical knowledge. It is intended for those who are interested in transitioning from Microsoft Windows to a safer, more open, and stable operating system. The information provided below is based solely on my personal experience and is intended to serve as a suggestion. It’s important to think for yourself, conduct your own research, and enjoy the process.

Welcome to Linux—welcome to freedom!

The Fedora installation process is straightforward and doesn’t require guidance, even for less knowledgeable users. You can refer to the official documentation for more information. I strongly encourage you to use disk encryption during the partitioning process to help secure your data.

After installing Fedora, remember to enable third-party repositories on the first boot configuration.

Configure DNF Package Manager

The first step is to open the dnf configuration using the following command:

sudo nano /etc/dnf/dnf.conf

To enable parallel downloads in DNF, add the following line to the bottom of your /etc/dnf/dnf.conf file:

max_parallel_downloads=10

Add the following to configure the fastest mirror:

fastestmirror=True
deltarpm=True

The good idea is to run a DNF upgrade, and you will notice first the DNF package manager is now determining the fastest mirrors in the output. Additionally, to ensure you have the latest packages after the fresh installation, run the following command in your terminal:

sudo dnf upgrade --refresh

After the first upgrade, it’s a good idea to reboot your PC:

sudo reboot

Enable the DNF autoupdate

sudo dnf install dnf-automatic -y

Default configuration only downloads, but do not apply any of the packages. In order to change or add any configurations, open the .conf file as the root user (or using sudo) from a terminal window.

sudo nano /etc/dnf/automatic.conf

Once you are ready with a configuration, enable the autorun:

sudo systemctl enable --now dnf-automatic.timer

Reduce the Systemd timeout for services

To lower the Systemd waiting timeout, edit the following configuration file:

sudo nano /etc/systemd/system.conf

change the value in seconds to 15s:

DefaultTimeoutStartSec=15s
DefaultTimeoutStopSec=15s

Firmware Updates

To verify if your hardware manufacturer provides a customized firmware package for Linux systems, follow these steps to attempt installation. Although availability cannot be guaranteed, checking is still recommended.

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

Enable the RPM Fusion repositories

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

Optionally, enable the non-free repository:

sudo dnf install \
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

The first time you attempt to install packages from these repositories, the dnf utility prompts you to confirm the signature of the repositories. Confirm it.

Enable the Appstream data for the RPM Fusion:

sudo dnf group update core

Get yourself some juice!

Here are some essential apps that I use on a daily basis. You can research them online and decide whether to install them with DNF, via Flatpak, or not at all. Alternatively, you can trust me and execute the command as is. Please note that while the Fedora RPM repo may be slightly behind Flathub, the packages such as GIMP and Inkscape are often more lightweight from RPM. Ultimately, the choice is up to you.

sudo dnf install mc bpytop inxi ncdu tmux neofetch gnome-tweaks syncthing qbittorrent keepassxc gimp inkscape -y

Enable Syncthing autorun

Syncthing is a free and open-source file synchronization program that allows users to keep files in sync across multiple devices. The program operates on a peer-to-peer network, meaning that files are transferred directly between devices without relying on a central server. Syncthing is available for most major operating systems, including Windows, macOS, Linux, and Android.

It is important to enable Syncthing to run as a service so that it starts automatically when the system boots up, and continues to run even when the user is not logged in. This ensures that files remain in sync at all times, without requiring manual intervention.

sudo systemctl enable --now syncthing@[user].service

replace [user] with your username

To access the Syncthing web UI, simply navigate to http://localhost:8384 in your web browser. For more information on how to use Syncthing, refer to the official documentation.

Do it right with LibreOffice

LibreOffice is a free and open-source office suite that provides a range of tools for document editing, spreadsheet management, and presentation creation. The program is available for most major operating systems, including Windows, macOS, and Linux.

Remove .rpm instances to avoid mess and conflicts

sudo dnf remove libreoffice*

Installing LibreOffice via Flathub means that you will always have the latest release of the software available.

flatpak install flathub org.libreoffice.LibreOffice

Reinstall the module for locale and language aids to work properly with LibreOffice

flatpak install --reinstall runtime/org.freedesktop.Platform.Locale/x86_64/23.08

TIP: Don’t forget to set the correct locale in the LibreOffice settings; otherwise, you risk incorrect formatting of documents and measurements.

Install some Flatpak goodies

Flathub is an open-source platform that provides a centralized repository for distributing and managing flatpaks, which are the package units used in Flatpak application bundles. It allows developers to upload their flatpaks and makes them available for users to install on any system that supports Flatpak.

Let’s enable the Flathub repository:

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

Take a moment to review which apps you would like to install.

Extensions Manager

The Extension Manager is a tool for managing GNOME Shell extensions, allowing users to customize the appearance and functionality of their desktop environment.

flatpak install flathub com.mattjakeman.ExtensionManager

Telegram Desktop

Telegram Desktop is a fast and secure messaging app that enables users to send text messages, make voice and video calls, and share files with other Telegram users. The app supports end-to-end encryption for added security and offers a range of features, including chat groups, channels, and bots.

flatpak install flathub org.telegram.desktop

Joplin

Joplin is a free, open-source note-taking app with end-to-end encryption. It supports Markdown formatting, file attachments, and tagging, and is available on Windows, macOS, Linux, and mobile devices.

flatpak install flathub net.cozic.joplin_desktop

Looking for an alternative? Check Notesnook and MarkText.

OnlyOffice Desktop

OnlyOffice Desktop is a free and open-source office suite that provides a range of tools for document editing, spreadsheet management, and presentation creation. The program offers full compatibility with Microsoft Office formats, making it a popular alternative for users who want to avoid the cost of proprietary software.

flatpak install flathub org.onlyoffice.desktopeditors

Bottles

Bottles is a free and open-source application that allows users to run Windows software on Linux and macOS operating systems. It does this by creating a virtual environment where Windows programs can be installed and run without the need for a full Windows installation.

flatpak install flathub com.usebottles.bottles

Pika Backup

Pika Backup is an open-source backup utility that allows users to easily create and manage backups of their files and directories.

flatpak install flathub org.gnome.World.PikaBackup

Pulsar

A Community-led hyper-hackable text editor. Pulsar aims to not only reach feature parity with the original Atom, but to bring Pulsar into the 21st century by updating the underlying architecture, and supporting modern features.

flatpak install flathub dev.pulsar_edit.Pulsar

Remmina

Remmina is a free and open-source remote desktop client for Linux that allows users to connect to and control remote computers from a local system.

flatpak install flathub org.remmina.Remmina

FreeTube

FreeTube is a privacy-focused YouTube client for desktop that allows users to watch and download YouTube videos without ads or tracking.

flatpak install flathub io.freetubeapp.FreeTube

OnionShare

OnionShare is a free, open-source tool that allows users to securely and anonymously share files or host websites over the Tor network. By creating a temporary, encrypted Tor hidden service, OnionShare enables the sender and recipient to bypass traditional methods of file sharing, such as email attachments or cloud-based services, ensuring privacy and security.

flatpak install flathub org.onionshare.OnionShare

Install AppImage Launcher

Integrate AppImages into your application launcher with one click and manage, update, and remove them from there. Double-click AppImages to open them without having to make them executable first.

AppImageLauncher plays well with other applications managing AppImages, for example, app stores. However, it doesn’t depend on any of those and can run completely standalone.

wget https://github.com/TheAssassin/AppImageLauncher/releases/download/continuous/appimagelauncher-2.2.0-gha111.d9d4c73.x86_64.rpm
sudo dnf install ./appimagelauncher-2.2.0-gha111.d9d4c73.x86_64.rpm

Applications for Linux without installation: appimage.github.io

Settings in the graphical interface

When launching GNOME 45 Settings, it is highly recommended to go through all available sections and explore various settings. Don’t hesitate to experiment with different options and determine which ones require modification or customization. Don’t be intimidated, as it’s not as challenging as it may seem. Just keep an open mind and be willing to learn. One of the first things you may consider is enabling ‘Remote Desktop’. This is useful if you need to access your graphical desktop from remote locations. You can make additional changes in the ‘Sharing’ settings according to your needs. If you run multiple computers on your network or want to personalize your machine name, it’s also recommended to change the device name.

If you don’t require ‘Remote Login’ access, it’s recommended not to enable this option. Enabling remote login allows you to access your computer over SSH protocol, which may not be necessary for all users. If you’re not familiar with SSH and how it works, it’s best to leave this option disabled.

Check out the various settings in the ‘Settings’ Gnome App, as there are many options you may want to customize to your liking. Some of the settings you might want to adjust include the desktop appearance, privacy, power, region and language, users, keyboard layouts, and shortcuts. Ultimately, it’s up to your personal preference and needs.

GNOME Appearance

The Vanilla appearance of Gnome 45 desktop

Gnome is one of the two most popular Linux user environments, and it is known for its solid workflow. It suits my preference for a close-to-vanilla setup. However, users migrating from Windows may necessitate some learning, which can be mitigated by the use of certain extensions. We typically use the We10x icon theme, GNOME Tweaks, and the following extensions for this:

A customized version with a Windows-like look and feel

Dash to Panel, ArcMenu, Desktop Icons NG and LibreOffice with tabbed user interface

Additional configuration

In this section, I’ll go over some extra settings and apps that aren’t strictly necessary but can greatly improve your system’s user experience, usability, and privacy.

Windows fonts

To begin, make sure that you have the required packages installed on your system. Most systems already have these packages, but you can install them by running the following command in the terminal:

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

Once you have the required packages, you can proceed to download and install the Microsoft Core Fonts package. Simply run the following command in the terminal:

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

After the installation process completes, you should receive a message confirming that the Microsoft Fonts have been successfully installed.

Instead of using the first method, you can also copy the fonts directory directly from your Windows instance to a new directory /home/[username]/.fonts, with [username] replaced by your actual username. I prefer this method because it offers better cross-platform compatibility, especially if you frequently work with text documents created on Windows.

Vivaldi

Choosing a web browser is a personal decision that depends on individual preferences. Personally, I prefer to use Vivaldi, a feature-rich browser with a user-friendly interface. However, it’s important to note that Vivaldi is a closed-source program, which may be a trade-off for some users.

Go to Vivaldi website and download, then install the RPM package, or do the following:

wget https://downloads.vivaldi.com/stable/vivaldi-stable-6.2.3105.54-1.x86_64.rpm
sudo apt install ./vivaldi-stable-6.2.3105.54-1.x86_64.rpm

At the time of writing, version v6.2.3105.54-1 is the latest release.

Tor service and Tor browser

The Tor network is free and open-source software that enables anonymous communication on the internet by encrypting and routing traffic through a network of relays run by volunteers worldwide. The Tor network provides several features that make it a popular choice for privacy-conscious users, including:

  • Anonymous browsing: Tor hides your IP address and online activity from anyone trying to track your movements online, including your internet service provider (ISP), advertisers, or government agencies.
  • Access to blocked content: Tor allows you to bypass censorship and access content that may be blocked in your region or by your ISP.
  • Enhanced security: Tor’s encryption and routing help protect against certain types of online attacks, such as man-in-the-middle attacks and some forms of malware. Onion services are websites or services hosted on the Tor network that are only accessible through the Tor browser. Discovering onion services can be beneficial to your privacy because they provide an additional layer of anonymity. When you access an onion service, your connection is encrypted and routed through the Tor network, making it difficult for anyone to trace your activity back to your physical location or IP address. By utilizing the Tor network and onion services, you can take control of your online privacy and browse the web with confidence.

Let’s install the Tor network and Tor Browser:

sudo dnf install tor
sudo systemctl enable --now tor

After executing the above commands, the Tor Network will run as a service on your system. This setup allows you to use the Tor Network as a proxy with various applications in your system. It not only helps to anonymize your online activities but also lets you bypass certain regional restrictions. For a deeper understanding and to explore more advanced configurations, refer to the official Tor documentation.

You can also install the Tor Browser, which is made specifically to safeguard your privacy and anonymity online, to further strengthen your online anonymity. Install the Tor Browser launcher by running the command line:

flatpak install flathub com.github.micahflee.torbrowser-launcher

It’s important for you to understand that the Tor Network service (which we previously configured to run on your system) and the Tor Browser serve different functions. Despite the fact that they both make use of the Tor Network, the Tor Browser is a standalone browser that has been set up for privacy and can be used without the Tor service installed on your computer. The Tor Network service we set up, on the other hand, enables other applications on your system to send their traffic through the Tor network, giving them access to the internet anonymously. Although they complement one another, they are not interdependent. Using the Tor Browser would be sufficient if you are just browsing the internet and want to protect your privacy. The system-wide Tor service can be used to anonymize traffic coming from other applications at that point.

ZeroTier

ZeroTier is a software-defined networking tool that allows users to create virtual Ethernet networks and connect devices, servers, and containers to these networks regardless of their physical location or network configuration. It offers secure end-to-end encrypted communication over the internet, making it a useful tool for remote teams, gaming, and IoT devices. ZeroTier is available for a wide range of platforms including Windows, macOS, Linux, Android, and iOS, and can be used for both personal and commercial purposes.

To install ZeroTier, simply execute the command below:

curl -s https://install.zerotier.com | sudo bash

For further information on configuring and using your ZeroTier network, visit the official ZeroTier documentation.

ztncui

ztncui is a web-based user interface for the ZeroTier network controller (ZTNC) API, which allows users to manage ZeroTier networks and devices. It provides a graphical interface for adding, deleting, and managing networks and devices, as well as viewing network statistics and device information. It is designed to be used alongside the ZeroTier network virtualization service, which allows users to create and manage virtual networks that can be accessed securely over the internet.

To manage a virtual network with over 25 devices, it is recommended to install the ztncui controller on a dedicated Debian/Ubuntu server. However, if you have fewer devices in your virtual network, you can use the controller provided by ZeroTier, Inc. This controller can be accessed after logging in on their official website.

Tabby

Tabby is an infinitely customizable cross-platform terminal app for local shells, serial, SSH and Telnet connections. You can download the latest release from: github.com/Eugeny/tabby/releases

wget https://github.com/Eugeny/tabby/releases/download/v1.0.200/tabby-1.0.200-linux-x64.rpm
sudo dnf install ./tabby-1.0.200-linux-x64.rpm

At the time of writing, version v1.0.200 is the latest release.

NoMachine

NoMachine is a remote desktop software that allows users to access and control their computer or server from anywhere, using any device. It offers a secure and high-performance remote desktop experience with features such as file transfer, screen sharing, and virtual desktops. NoMachine supports various platforms including Windows, Linux, macOS, Android, and iOS.

wget https://download.nomachine.com/download/8.8/Linux/nomachine_8.8.1_1_x86_64.rpm
sudo dnf install ./nomachine_8.8.1_1_x86_64.rpm

At the time of writing, version v8.8.1 is the latest release.

Waydroid

Waydroid is a compatibility layer that enables running Android applications natively on a GNU/Linux distribution. Unlike traditional Android emulators, Waydroid does not rely on virtualization technology or emulation. Instead, it leverages the Linux container technology to provide a lightweight and efficient solution for running Android apps on desktop Linux. This allows users to seamlessly integrate Android apps into their Linux workflow without compromising performance or security.

Waydroid can be installed from the official package repository.

sudo dnf install waydroid
sudo systemctl enable --now waydroid-container

After installing, launch Waydroid from the applications menu and proceed with the initialization by pasting these URLs in the OTA fields:

System OTA: https://ota.waydro.id/system

Vendor OTA: https://ota.waydro.id/vendor

During the initialization process, you can select between two types of Android: VANILLA and GAPPS. The VANILLA option refers to a basic Android system with no pre-installed apps or services, whereas the GAPPS option includes pre-installed Google apps and services such as Google Play Store, Google Maps, and Gmail. Your preference and needs will determine which of these two options you choose. You can select VANILLA if you prefer a more minimalist approach or do not require Google apps and services. If you rely on Google services, the GAPPS option is preferable.

If you’ve decided to use the GAPPS version of Waydroid, you’ll need to get it certified. The certification process is described in the following link: https://docs.waydro.id/faq/google-play-certification

Conclusion

In conclusion, setting up Fedora after installation can greatly enhance its usability and performance. This guide has provided practical steps and recommended tools to get started. While the configurations and applications mentioned are based on personal preferences, they offer a solid foundation for most users. Remember to always stay updated with the latest from the Fedora community and adjust your setup as your needs evolve. By following these steps, you ensure a smoother, more efficient Fedora experience.

Welcome to Fedora!

--

--

Karol Stefan Danisz

Versatile consultant bridging IT, marketing, and finance. Empowering businesses with technology in a changing world