Updated Fedora Workstation install
October 13, 2024
Overview
This post will cover my installation of Fedora Workstation with the KDE Plasma desktop. There will be a list of programs to be installed and where they are installed from. I typically use Flatpak for, what I consider, non-system applications. I also look at how often the Flatpak is updated compared to a yum repository that may be available.
Installer
The default Fedora Workstation installer uses Gnome as the desktop. I used Gnome for many years, but recently tried KDE and am very happy with it. Fedora does offer a spin of their Workstation OS that uses KDE Plasma as the desktop. The installer has a very efficient graphical installer with a sane set of default applications installed. I like the default swap on zram option also. The installer defaults to the BTRFS filesystem, and it is very easy to add encryption if you prefer (which I do). Simply walk through the steps in the installer, reboot, and you’re good to go.
Initial configuration
I find myself doing very minimal customization in KDE Plasma. I did default to dark mode in settings. I also had to change my mouse pointer and scrolling speed a little to get a better feel. Since I’m using a laptop, I also customized the power management settings some to enable different performance profiles based on power source battery level. I also highly recommend taking a look at the options under advanced power settings.
Coming from Arch Linux, I’m accustom to seeing all of the mount options listed in /etc/fstab
. I noticed some seemed to be missing on the Fedora install, but it turned out not to be the case. If you just run # mount
, it will list all of the mounts along with all of the mount options actually in use. If you installed to an SSD, you want to make sure the fstrim timer is enabled. It should be enabled by default, but you can check by running # systemctl list-timers
.
Sometimes I run virtual machines if I need Windows or want to experiment with some other Linux distributions. With BTRFS being a CoW filesystem, you may want to specifically disable CoW for the folder(s) storing your VM images. This can be done as follows:
- Create new subvolume
# btrfs subvolume create ~/VMs
- Change ownership
# chown -R user:user ~/VMs
- Disable CoW
# chattr +C ~/VMs
You can confirm that CoW is disabled by using the lsattr
command. You can now store your VM images in this subvolume. The subvolume will be auto-mounted since it was created as a nested subvolume under the @home subvolume.
I typically create one additional nested subvolume called Workspace. I create it under my home directory and use it for storing any files that I may not want included in regularly scheduled snapshots of my root and home subvolumes.
Applications
This is just going to be a list of applications that I typically use along with the source I use for installing them. Some of these programs are installed as flatpaks from the flathub repository. The flathub website provides instructions for installing the repository. I occasionally use AppImage files. When I do, I store them in ~/AppImages
and just launch them manually when needed. There are applications such as Gear Lever that do a good job at integrating App Images into the system.
KDE Plasma comes with a very capable set of applications. I find the applications to be much more powerful than many of the Gnome versions, and I personally like the KDE application better. The Discover application in KDE allows you to easily enable other repositories for software installation. I made sure to enable Flathub. You can even enable Snap packages if you choose.
DNF
- cockpit
# systemctl enable --now cockpit.socket
- apps: podman, selinux, machines
- gimp
- snapper (setup specifics described in my NAS post)
- vim
- wireguard-tools
Flathub
- arduino 2.0
- calibre
- discord
- draw.io
- freecad
- github desktop
- kicad
- ONLYOFFICE
- Prusa slicer
- vlc
Snap
- Todoist (appimage doesn’t work on Fedora KDE; Snap is only other official source)
App Image
- System76 keyboard configuration
RPM file
- proton mail desktop app
- proton vpn (instructions on Proton’s site)
Specific repositories
- 1Password
- RPM file will add yum repository for automatic updates
- Brave
- VirtualBox
- Repository file can be found at the bottom of this page
- Save the repository in the appropriate directory, then add it with
# dnf config-manager --add-repo /etc/yum.repos.d/virtualbox.repo
- The following programs will then need to be installed with DNF:
- kernel-devel
- kernel-devel-matched
- virtualbox-x.x
- virtualbox-guest-additions
- Install extension pack
- Add user to vboxusers group with
# usermod -aG vboxusers user
- VSCode
- Instructions for adding the yum repository
- Setting Window -> Title Bar Style to “custom” mimics the Windows title bar and matches the current theme color
Node
Zsh shell and Oh My Zsh
I prefer using the Zsh shell over the Bash shell. Fortunately, that is easy to switch. Simply install the Zsh shell with # dnf install zsh
. Use $ chsh -l
to list the available shells (Fedora may prompt you to install a package), then use chsh -s
to set a new shell. In my case, that new shell is /usr/bin/zsh
. You’ll need to log out and back in to finalize the shell change. When you first run the Zsh shell, it will prompt you for configuration. I typically just let it create a blank .zsh file since I’m going to install Oh My Zsh anyway. Oh My Zsh is an excellent framework that can be used with the Zsh shell. The install script can be found on the project’s website. There are many themes and plugins that can be used to extend Oh My Zsh. A plugin that I am particularly fond of is Zsh syntax highlighting. The full list of plugins that I use is: git, volta, vscode, dnf, copyfile, cp, rsync, zsh-syntax-highlighting. One of my favorite themes is Powerlevel10k.
Other misc items
- If you have plans to work with devices such as Arduino and ESPHome, be sure to add your user to the “dialout” group to allow direct access to the serial ports. This can be done with
# usermod -a -G dialout username
. - If you want to run scripts that need to send emails, postfix can be setup to send to external email address as described in my NAS post.
- Be sure to backup the LUKS header as a safety precaution. The Arch Wiki has fairly good instructions for this.
- I did run in to some brightness issues with the screen on my ThinkPad T14 Gen3 AMD laptop. The screen would stay fairly dim even on max brightness. I found a solution in the Arch forums. Essentially, I had to edit the power-profiles-daemon.service to add the —block-action option.
Conclusion
As you can tell, this is a somewhat random collection of information. I know everyone’s system is setup differently, but maybe providing some details on my system will be helpful to someone or spark some ideas. If nothing else, it serves as an excellent reference for me.