How to Switch Between Multiple Desktop Environments on Fedora

Switch Fedora desktop environments by selecting a session type via the gear icon on the login screen.

You installed a new desktop and the login screen hasn't changed

You ran the install command for KDE or XFCE and rebooted. The login screen still looks exactly like GNOME. You click your user, type the password, and land back in GNOME. Or worse, the screen goes black and returns you to the login prompt immediately. You aren't stuck. The session selector is hiding, the display manager needs a restart to notice the new files, or a configuration conflict is killing the session before it draws the first pixel.

Fedora separates the desktop environment from the display server and the login manager. A desktop environment provides the panels, file manager, and settings tools. The display server handles drawing pixels and input events. The login manager asks for your password and launches the session. Switching environments means telling the login manager to read a different session file and start a different set of processes. The session files live in /usr/share/wayland-sessions/ and /usr/share/xsessions/. The login manager reads these to populate the menu. If you install a new environment, the files appear, but the login manager might not reload until you restart it.

What's actually happening under the hood

Think of the login screen as a receptionist. The receptionist holds a list of available rooms. When you install a desktop environment, the package drops a new card on the receptionist's desk describing the room. The receptionist doesn't check the desk continuously. You have to tap the receptionist on the shoulder to make them look at the new card. That tap is restarting the display manager.

Fedora uses GDM as the default display manager. GDM parses the session files and builds the gear menu you see at the login screen. Each .desktop file in the session directories defines a session name, an icon, and the command to run when you select it. When you choose a session and enter your password, GDM executes the command defined in that file. The command starts the session manager for that desktop, which then launches the shell, panels, and daemons.

If the session fails to start, GDM catches the error and returns you to the login screen. This is the login loop. The loop usually means a configuration file in your home directory is corrupted, or a required dependency is missing. The error message lives in the journal, not on the screen.

Install and switch desktop environments

Here's how to install a full desktop group and make it available at the login screen. Fedora packages desktops as groups. Groups ensure you get the core workspace plus the recommended applications, themes, and utilities that make the desktop usable.

sudo dnf group install "KDE Plasma Workspaces" --refresh
# group install pulls the full desktop group, including recommended apps and themes
# --refresh forces dnf to check for updated metadata before calculating dependencies
# This prevents stale repo data from causing dependency resolution failures

Convention aside: dnf group install is safer than dnf install kde-plasma-workspace. Installing only the core workspace package leaves you without a file manager, settings tool, or terminal emulator. The group definition includes all the pieces you need to actually use the system.

After the install completes, the session files are in place. If you are already at the login screen, GDM might not show the new option yet. Restart GDM to force it to re-read the session directories.

sudo systemctl restart gdm
# Restarting GDM reloads the session list without killing user sessions on other TTYs
# This is the standard way to refresh the login menu after installing a new desktop

Restart the display manager before blaming the desktop. The session list often caches.

Now log out of your current session. At the login screen, click your username. Look for the gear icon in the bottom-right corner. Click the gear and select the new desktop environment. Enter your password. The system will start the new session.

If you installed KDE, you might notice the login screen changed to SDDM. KDE often sets SDDM as the default display manager during installation. SDDM is the display manager designed for Plasma. If you prefer GDM, switch back by enabling the GDM service.

sudo systemctl enable --now gdm
# enable --now starts the service immediately and ensures it starts on boot
# This overrides SDDM if it was set as the default during KDE installation

Convention aside: systemctl enable --now is the standard way to switch services. Don't just start the service. Enable it so the change persists across reboots. Fedora uses systemctl presets to manage defaults, but manual enablement takes precedence.

Verify the session is running

Don't trust the wallpaper. The wallpaper can be shared between environments. Check the environment variables to confirm which desktop is active.

echo $XDG_CURRENT_DESKTOP
# This variable tells you which desktop environment is active in the current shell
# Output like KDE or GNOME confirms the session started correctly
echo $XDG_SESSION_TYPE
# This variable shows whether you are running on Wayland or X11
# Wayland is the default for most desktops on Fedora

Check $XDG_CURRENT_DESKTOP before filing a bug. The variable tells the truth, the wallpaper does not.

Common pitfalls and error recovery

Login loop after switching

If the screen goes black and returns to the login prompt, your session is crashing. The cause is usually a corrupted configuration file in ~/.config or ~/.local. Desktop environments store settings in these directories. If a setting is malformed, the session manager fails to start.

Check the journal for the error. GDM logs session failures.

journalctl -xeu gdm
# -x adds explanatory text for common errors
# -e jumps to the end of the log
# -u filters for the gdm unit to isolate display manager issues
# Look for lines containing "Failed to start session" or "gnome-session-binary"

You might see an error like gnome-session-binary[1234]: WARNING: Could not parse desktop file /usr/share/wayland-sessions/plasma.desktop. This points to a missing or broken session file. Or you might see org.gnome.Shell: Extension ... caused an error. This points to a bad extension.

The fastest recovery is to isolate the configuration. Move your config directory aside and log in again. The desktop will generate fresh defaults.

mv ~/.config ~/.config.bak
# Moving the config directory forces the DE to generate fresh defaults
# This isolates corruption without deleting your data permanently
# You can restore specific files from .bak later if needed

Backup ~/.config before nuking it. You can restore your browser bookmarks later.

If the login loop persists after moving ~/.config, check disk space. A full root partition prevents session managers from creating temporary files and locks.

df -h /
# Check available space on the root partition
# Less than 1GB free can cause session failures and package manager errors

Gear icon missing

If the gear icon is missing from the login screen, GDM might be configured to hide it, or the session files are missing. Verify the files exist.

ls /usr/share/wayland-sessions/ /usr/share/xsessions/
# List session files to verify the desktop environment installed correctly
# Each .desktop file here corresponds to an option in the login menu

If the files are present, check the GDM custom configuration. Some users disable the session menu in /etc/gdm/custom.conf.

# /etc/gdm/custom.conf
[daemon]
# Uncommenting the line below hides the session selection menu
# Uncomment this line to restore the gear icon
# WaylandEnable=false

Convention aside: Config files in /etc/ are user-modified. Files in /usr/lib/ ship with the package. Edit /etc/. Never edit /usr/lib/. Package updates overwrite /usr/lib/ and destroy your changes.

Wayland vs X11 conflicts

Some desktop environments prefer Wayland, some prefer X11. GNOME defaults to Wayland. KDE supports both. If you select a Wayland session but your hardware or drivers only support X11, the session will fail.

Check your graphics driver status. Proprietary NVIDIA drivers on older kernels might not support Wayland. If you see a black screen, try the X11 variant of the session. The gear menu usually lists both KDE Plasma (Wayland) and KDE Plasma (X11). Select the X11 option.

If the X11 option is missing, the package might not be installed. Install the X11 session package.

sudo dnf install plasma-workspace-session-x11
# Install the X11 session package for KDE if only Wayland is available
# This adds the X11 option to the login menu

When to use each desktop environment

Use GNOME when you want a streamlined workflow with minimal configuration and strong touchpad gestures. Use KDE Plasma when you need granular control over every pixel, window behavior, and system setting. Use XFCE when you are running older hardware or prefer a traditional desktop layout with low resource usage. Use a tiling window manager when you want keyboard-driven workflow and zero visual clutter. Stay on the default Workstation image if you only need one desktop and want the most tested configuration.

Where to go next