How to Install Xfce Desktop on Fedora

Install the Xfce desktop group using `dnf` and switch to the Xfce session at the login screen.

Why you want Xfce on Fedora

You upgraded to a newer Fedora release and GNOME feels too heavy for your aging laptop. Or you are running a headless server and suddenly need a lightweight GUI for remote administration. You want Xfce. You know it is stable, fast, and respects your hardware. The problem is you do not want to wipe your existing GNOME installation, and you are worried that installing a second desktop environment will break your display manager or leave orphaned packages behind.

Installing a secondary desktop on Fedora is safe. The package manager treats desktop environments as modular groups. You can run GNOME and Xfce side by side. The system will not delete your current setup. You only need to know how to request the right packages and how to tell the login screen which session to load.

How desktop groups actually work

Fedora packages desktop environments as metapackages. A metapackage does not contain actual binaries. It contains a dependency list that points to every component required for a functional desktop. When you request the Xfce group, dnf reads that list and pulls in the window manager, the panel, the file manager, the settings daemon, and the default applications. The transaction resolves dependencies automatically. It installs missing libraries and leaves your existing GNOME packages untouched.

The display manager handles session switching. GDM reads session definition files from /usr/share/wayland-sessions/ and /usr/share/xsessions/. Each desktop environment drops a .desktop file in those directories. GDM parses the files and builds the gear menu you see at the login screen. Selecting a session tells GDM which environment variables to export and which compositor or window manager to launch. Your home directory stays the same. Your configuration files stay the same. Only the graphical stack changes.

Reboot before you debug. Half the time the symptom is gone.

Install the Xfce package group

Open a terminal and run the group installation command. The @ symbol tells dnf to treat the argument as a package group rather than a single package.

sudo dnf groupinstall "Xfce"
# Requests the full Xfce desktop group
# dnf resolves all dependencies automatically
# --refresh forces a metadata check to avoid stale repo data

The full group includes productivity tools, media players, and extra utilities. If you only want the core desktop stack, request the minimal variant instead.

sudo dnf groupinstall "Xfce Minimal"
# Installs only the window manager, panel, and file manager
# Skips office suites, media players, and extra utilities
# Reduces disk usage and dependency footprint

Run dnf upgrade --refresh after the installation completes. This is the normal weekly maintenance command. It updates the metadata cache and pulls in any security patches that arrived while the group was installing. Do not confuse this with dnf system-upgrade. The refresh flag updates packages within the current release. The system-upgrade command crosses major Fedora releases.

Switch sessions at the login screen

Log out of your current session. The GDM login screen will appear. Click your username. Look for the gear icon in the bottom-right corner. A menu will list every desktop environment that dropped a session file in the system directories. Select Xfce Session or Xfce (X11) depending on your preference. Enter your password. The system will launch the Xfce stack.

The gear menu remembers your last choice for that user. If you want to switch back to GNOME, click the gear again and select GNOME. You can toggle between them indefinitely. The system does not require a reboot. It only requires a clean session logout.

If the gear menu does not appear, your GDM configuration might be overriding the default session list. Check /etc/gdm/custom.conf. Look for a line starting with WaylandEnable= or AutomaticLoginEnable=. Comment out automatic login if it is active. Automatic login bypasses the session selector entirely.

Verify the desktop is running correctly

Open a terminal inside Xfce and check the environment variable that tracks the active desktop.

echo $XDG_CURRENT_DESKTOP
# Prints X-Cinnamon or Xfce depending on the active stack
# Confirms the session launched the correct compositor
# Helps troubleshoot theme and icon fallback issues

You can also verify that the core daemons are active. Xfce relies on a few background services to manage panels, power, and notifications.

systemctl --user status xfce4-panel xfce4-session
# Shows recent log lines AND state in one view
# Always check status before restarting a user service
# Confirms the panel and session manager are running

If the panel fails to load, run journalctl -xeu xfce4-panel to read the actual error. The x flag adds explanatory text and the e flag jumps to the end. Most sysadmins type journalctl -xeu <unit> muscle-memory style. Read the output before guessing. The error usually points to a missing theme, a broken plugin, or a permission issue in ~/.config/xfce4/.

Common pitfalls and what the error looks like

SELinux runs in enforcing mode by default on Fedora. Xfce is fully compatible with that policy. You only run into problems when you manually move configuration files or change ownership on directories inside your home folder. If the panel refuses to start and you see Permission denied in the logs, restore the correct contexts.

restorecon -Rv ~/.config/xfce4
# Recursively restores default SELinux labels
# -v prints every file that gets relabeled
# Fixes permission denials caused by manual file moves

SELinux denials show up in journalctl -t setroubleshoot with a one-line summary. Read those before disabling SELinux. Disabling the policy masks the real problem and leaves your system exposed.

If you decide to remove Xfce later, use the group removal command. It reverses the metapackage dependencies.

sudo dnf groupremove "Xfce"
# Removes packages installed by the Xfce group
# Leaves shared libraries intact if other packages need them
# Safer than manually deleting files in /usr

Do not edit files in /usr/lib/. Those ship with the package. Edit /etc/ for user modifications. Manual file edits drift across updates. Package manager transactions stay consistent.

If GDM fails to start Xfce and drops you to a text console, check the display manager service first.

systemctl status gdm
# Shows whether GDM crashed or is waiting for input
# Confirms the display manager is still running
# Helps decide whether to restart GDM or fix the session

Run journalctl -xe to read the actual error before guessing. Half the time the symptom is a missing driver or a broken X11/Wayland fallback. Trust the package manager. Manual file edits drift, snapshots stay.

Choose the right desktop strategy

Use Xfce when you need a lightweight, stable desktop that respects limited RAM and CPU cycles. Use GNOME when you want a modern, gesture-driven interface with deep accessibility and Wayland-first design. Use KDE Plasma when you need granular customization and hardware-accelerated compositing. Use a tiling window manager like i3 or sway when you prefer keyboard-driven workflows and zero panel overhead. Stay on the default GNOME if you only deviate from the defaults occasionally and want the smoothest upstream experience.

Where to go next