April 2024 saw the release of 2 very popular Linux distros — Fedora 40 and Ubuntu 24.04 LTS. As everyone knows, Fedora is a rolling release and Ubuntu 24.04 is a long-term support version. Both use the latest version of GNOME — GNOME 46. Be your own judge, and you are welcome to choose the distro that suits your purpose. You won't go wrong with either of them.
I completed reinstalling my laptop with Fedora 40 and just thought of sharing my workflow of setting up Fedora with you. Most of these work for Ubuntu as well.
Step 1: Install the OS
Download the OS from the links below and create an installation disk. Follow the on-screen instructions and install the OS using the installation disk.
Fedora Workstation — https://fedoraproject.org/workstation/download
Ubuntu 24.04 — https://ubuntu.com/download/desktop
Step 2: Improvements
If any software update window pops up, please install the updates and restart the computer.
Set Hostname
The default hostname of the system after installing the OS would be fedora
. You can change it with the following. Replace <hostname>
with the hostname of your choice. It is recommended to restart the PC after this step.
sudo hostnamectl set-hostname <hostname>
Configure DNF
Fedora 40 uses DNF as its package manager. It provides secure package management and lets you query and fetch packages, install and uninstall them using automatic dependency resolution. Ubuntu users might be familiar with its alternative — APT.
DNF searches for packages and downloads them from various mirrors. It may not be using the fastest mirror and may take way more time to download packages. Its performance could be improved as follows:
Open the following file using the nano
command:
sudo nano /etc/dnf/dnf.conf
Add the following to the end of the file:
# Added for speed:
fastestmirror=True
max_parallel_downloads=10
defaultyes=True
keepcache=True
These are DNF configuration changes which will help you speed up installing software. The full reference of the DNF configuration is available here — https://dnf.readthedocs.io/en/latest/conf_ref.html. If required, include other config changes as well.
Add Flathub
Like DNF, Flatpak is another package manager supported by both Fedora and Ubuntu. It is a utility for software deployment that offers a sandbox environment. This allows the users to install and run applications, keeping them isolated from the rest of the system. This makes it more secure and takes away the worries about dependencies/libraries required to run the software. Flatpak uses many online repositories, and FlatHub is one such repository that distributes the applications to Flatpak users.
Add the FlatHub repo to Flatpak using the following:
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Update your system
The first thing to do after installing the OS and setting up the repositories is to update your system. Use the following command to update the system. When prompted, enter your password. Use apt
instead of dnf
on Ubuntu.
sudo dnf update
Step 3: Essential configuration and software
The first software I would install on any Linux PC would be Timeshift. It is a backup tool that allows capturing the snapshot of the system. You can install it using the software application or use the following command to do it.
sudo dnf install timeshift -y
Once the tool is installed, take a backup before installing any other software. Make sure you choose all files when configuring backups.
Install both Free and Non-Free RPM Fusion
RPM Fusion provides software that the Fedora Project or Red Hat doesn't want to ship. Download and install both the free and non-free versions of RPM fusion from here — https://rpmfusion.org/Configuration.
Install media codecs
Fedora does not come with all the required media codecs pre-installed. Install the media codecs using the following:
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf groupupdate sound-and-video
Install DnfDragora
dnfdragora is a DNF frontend, based on rpmdragora from Mageia. Install it using the following:
sudo dnf install dnfdragora
Install git
Usually git
comes pre-installed in Fedora. Run the following to ensure it is installed.
sudo dnf install git
Install Bitwarden
I, personally, use Bitwarden as my password manager and that would be one of the first software that I would install as it helps me with all the passwords to log in to other apps and services easily.
Step 4: Install required software
Install from Flatpak
As much as possible, I install all the software I need as Flatpak. In the home directory, create a new folder — setup
and create a new file — install_from_
file.sh
. Open the setup
folder in terminal and open the file using nano
.
sudo nano install_from_file.sh
You can add all the Flatpak that you need to install in this shell script.
e.g. If you need to install gimp
and vlc
, the shell script will be as follows:
#!/bin/bash
flatpak install gimp -y
flatpak install vlc -y
The -y
flag will automatically respond yes
whenever the installer raises a user prompt. If you want more control, remove the flag and manually approve each prompt. You can search flatpak for packages using:
flatpak search <package name>
Once you have all the packages listed in the file, we must run the script to install them.
Make the script executable using the following:
sudo chmod +x install_from_file.sh
Execute the file:
sudo ./install_from_file.sh
This will install all the packages one by one. If flatpak identifies more than one package with the name we mentioned, it will prompt you to choose which one to install. Select the one you require when prompted.
Installing using this script saves a lot of time searching for the packages and installing them as I already have a backup of the install_from_file.sh
readily available. Keep the contents of this file in your Google Drive or email it to yourself for later use. Whenever I reinstall the OS, I use the backup of the script to install all my tools.
Software worth mentioning
Some notable software I, personally, use from flatpak are listed below:
PyCharm as my Python editor
Meld for comparing files and folders
Tick Tick as a Todoist alternative
Discord
Bluemail as my email client
VLC
Gimp for editing images
Reaper for audio editing
Rawtherapee for editing RAW images
MarkText as my Markdown editor
Obsidian for organising my notes
Joplin and Simplenote for all the text that I need to sync across other devices
Artha as a dictionary tool
XMind for mind mapping
Bleachbit for system cleanup
Missioncenter as a system resource monitoring tool.
Krita for drawing
Other Software
Install VS Code
Download RPM from https://code.visualstudio.com/download and install VS Code. If you are already using VS Code on any other machine, sync the extensions by logging in using GitHub or Microsoft account.
Install JRE
Run the following to install JRE
sudo dnf install java-openjdk
Install Node.js
Install Node.js and NPM using the following commands:
sudo dnf install nodejs
sudo dnf install npm
Verify the installation using the following commands:
node -v
npm -v
Install .Net SDK
Use the following to install .Net SDK
sudo dnf install dotnet-sdk-8.0 -y
Install Microsoft Edge
Personally, I use Edge and Firefox for most of my browsing needs. Firefox comes pre-installed with Fedora. If you wish, you can download and install edge by following the steps below:
Download RPM from Microsoft and install — https://www.microsoft.com/en-us/edge/business/download?form=MA13FJ
Login to browser profiles so that all the bookmarks and extensions are synchronised
Login to each extension that requires a login.
Extensions
Install Gnome Tweaks from the software centre and enable the minimise and maximise buttons.
Install Extensions Manager from Flatpak. It is also available here — https://flathub.org/apps/com.mattjakeman.ExtensionManager
Some notable extensions are listed below:
Dash to Dock
Blur my Shell
Clipboard Indicator
Coverflow Alt-Tab
Caffeine
Custom accent colors
User Themes
- Set theme to custom accent colors
Other miscellaneous tweaks
Connect your online accounts
If you want to access your Google Drive like a mounted disk on your system, add it from the settings. It also syncs your calendar with the built-in Calendar app.
If the browser window did not pop up to login to google account, it is because the control centre is broken. Run the following:
WEBKIT_DISABLE_COMPOSITING_MODE=1 gnome-control-center
Setup Clocks
If you want to keep track of the time at a different location, add it to the built-in clock app.
Install themes and Icons
Use DnfDragora to install themes and Icon packs, and use the tweaks app to choose them.
Conclusion
Hardening a Linux system is already covered here — https://hashnode.com/post/clqf5dl9g000108ib52dhfayi
Add a custom wallpaper of your choice and enjoy using Fedora 40.
Shout-outs and courtesy notes
Photo by Jan Huber on Unsplash for the cover picture background.