Fedora is a family of GNU/Linux distributions offering a wide range of editions: server, classic desktops with KDE and with Gnome, atomic editions, spins that offer alternative desktop environments such as COSMIC, and labs, designed for specific use cases. This is due, to a great extent, to the variety of existing desktop environments.

Options

There are several options to try different desktop environments in your computer without having to reinstall the system completely:

  1. Use a Virtual Machine. While this option doesn’t compromise your daily machine, moving all your activity and data to a virtual machine requires commitment and takes a lot of disk space.
  2. Install a system in an external storage, such as a USB drive. Similar to the previous option, with worse performance. If we want to use one of the existing “Live” images we won’t be able to save our work by default.
  3. Install several desktop environments on the same machine, choosing which one to use each time. In this case we would be using our computer, applications and data with no limitations. The downside of this option is a duplication in many applications and subsistems: system settings, file manager, USB devices, sound and networks management,… and this is not very practical.
  4. Switch completely from one desktop environment to another. Same advantages as the previous option, with no duplicates. The downside is that there’s no quick and easy way to quickly go and use the previous desktop environment if we miss something: it’s all or nothing.

Getting Ready

  • This only applies to Fedora’s classic editions, and was written for Fedora 44. If you’re using Fedora Silverblue, Kinoite, or any other atomic desktops, this post won’t be useful to you.
  • To simplify the text, the story goes into switching Gnome for KDE Plasma. Nevertheless, changing between any other two desktop environments is fudamentally the same.
  • As a previous task, I personally go to check those favourite applications I want to keep using no matter what, and I try to install them using sandboxed package formats like Flatpak, AppImage, or Snap, within reason. More about this at the end of the post.
  • Swapping the desktop environment is no joke. Regardless how many reliable and supported methods are available, things can go wrong. Follow this post under your own responsibility and ensure you have backups of your data, or your whole system, in case anything goes wrong.

Temporarily Disable the Display Manager

The first step is to log out from all sessions that are using the desktop environment and switch to one of the text consoles available pressing CTRL+ALT and one of the function keys (F3 usually works). The user to perform this change has to be an administrator of the machine, that is, able to use sudo.

Once logged in it is recommended to temporarily disable the display manager1 to avoid issues going forward. In Fedora this is done by disabling a service called display-manager, which is an alias2 to the actual display manager in use (gdm –Gnome Display Manager–, lightdm –Light Display Manager–, plasmalogin,…):

$ sudo systemctl stop display-manager

Choose and Install the New Desktop Environment

Once the display manager is disabled, search for the desired desktop environment in the official repositories 3:

$ sudo dnf environment list --available *desktop*
Updating and loading repositories:
  ...
  ...
Repositories loaded.
ID                            Name                           Installed
kde-desktop-environment       KDE Plasma Workspaces                 no
xfce-desktop-environment      Xfce Desktop                          no
phosh-desktop-environment     Phosh Desktop                         no
lxde-desktop-environment      LXDE Desktop                          no
lxqt-desktop-environment      LXQt Desktop                          no
cinnamon-desktop-environment  Cinnamon Desktop                      no
mate-desktop-environment      MATE Desktop                          no
sugar-desktop-environment     Sugar Desktop Environment             no
budgie-desktop-environment    Budgie Desktop                        no
cosmic-desktop-environment    COSMIC Desktop                        no
basic-desktop-environment     Basic Desktop                         no
i3-desktop-environment        i3 desktop                            no
miraclewm-desktop-environment Miracle WM Desktop Environment        no
sway-desktop-environment      Sway Desktop                          no

To install KDE, use the value of the column ID prepending a @ symbol as an argument for dnf install:

sudo dnf install @kde-desktop-environment

Optional: Switch Display Managers

Next, we can change the display manager from Gnome Display Manager to the one shipped by the desktop environment we’re installing (if any); in KDE that’s plasmalogin:

sudo systemctl disable gdm.service
sudo systemctl enable plasmalogin.service

By doing this, Fedora automatically restores the alias display-manager, and the graphic environment gets reenabled.4

At this point we’ll have installed the two desktop environments, side by side, and we’ll be able to choose one or another at the login screen. If this is what you want, you can leave the post here and you can even omit the last step, as it is perfectly fine to log in to KDE Plasma using Gnome Display Manager.

Optional: Uninstall the Previous Desktop Environment

If what you want is to replace the desktop environment, then the next step is to uninstall Gnome. If you haven’t done so, switch the display manager to Plasma Login from Gnome Display Manager as seen above.

Change the Release Identity

A critical step at this stage is to change the identity of the release to the one that aligns with the desktop environment we want to use from now on. The release identity is something I saw for the first time with Fedora, and explains a lot of things. Essentially, a Fedora Edition protects the packages of the desktop environment it ships; for example, Fedora Workstation provides and protects Gnome, and Fedora KDE Desktop Edition provides and protects KDE Plasma. The protection is put in place so that no user can uninstall the essential desktop environment’s packages (no sudo or root would help here), either by their own mistake or triggered by a bug in the dependencies of some packages. This means that if you have Fedora Workstation, the release identity won’t allow you to uninstall Gnome completely; if you have Fedora KDE Desktop Edition, you won’t be able to get rid of KDE Plasma completely, and so on. If you’re wondering how to get a Fedora installation with no user interface, the answer is with release identities like Fedora Server.

So, if we want to switch completely and cleanly from Gnome to KDE Plasma starting from a Fedora Workstation installation, we need to turn it into a Fedora KDE Desktop Edition installation by swapping the release identity:

sudo dnf swap fedora-release-identity-workstation fedora-release-identity-kde-desktop

Remove Group and Extra Packages

Once swapped the release identity, Gnome is unprotected and it can be removed:

sudo dnf remove @gnome-desktop
sudo dnf remove gnome-\* 

The last two sentences remove the whole Gnome Desktop group, which contains all the default packages, and any extra Gnome-specific package that we may have installed afterwards.

With this, all is done, we can begin configuring and working with a KDE Plasma desktop.

As one can expect, this doesn’t affect any application that had been installed using Flatpak, AppImage or Snap. That’s why I recommended at the beginning to try to get all our favourite applications in those formats: that way we can completely clean the system from the previous desktop environment without losing those applications that are hard dependencies for us.


  1. The display manager is the program that handles the log in screen and then proceeds to load the designated desktop environment for the authenticated user. If it’s left enabled there can be some resources locked by some of its processes, and get some errors when trying to install components from additional desktop environments. ↩︎

  2. Symbolic link, to be precise. ↩︎

  3. For whatever reason, in Fedora 44 Gnome doesn’t appear in the output of the search command. However, it exists as a group called gnome-desktop (see: sudo dnf group info gnome-desktop). ↩︎

  4. If the graphics environment didn’t get back, re-enable it with sudo systemctl enable display-manager↩︎