You installed Fedora and the desktop isn't what you expected
You booted the Fedora installer, selected "Workstation", and expected KDE Plasma. Instead, you logged in to GNOME. Or you installed a minimal server, ran startx, and got a blank screen. Or you typed sudo dnf install kde and the package manager complained about missing packages, or you installed a massive amount of software you don't need.
KDE Plasma is the desktop environment on the Fedora KDE Spin. On Fedora Workstation, GNOME is the default. You can run KDE Plasma on Workstation, but you need the correct package group, the right display server, and a clear understanding of how Fedora structures KDE packages. Installing the wrong group pulls in games, office suites, and development tools you never asked for. Installing the wrong display server leaves you with a broken compositor.
Run dnf group list before you install. Know what you are pulling in.
What KDE Plasma actually is
KDE Plasma is a modular desktop environment. The name "Plasma" refers to the shell: the panel, the desktop widgets, the system tray, and the window manager. The applications like Dolphin, Kate, and Konsole are separate packages. Fedora packages them in groups so you can install the shell without the bloat, or the full suite if you want everything.
Think of Plasma like a house frame. The frame includes the walls, windows, and roof. The applications are the furniture. You can live in a frame with minimal furniture. You can also buy a house that comes fully furnished. Fedora gives you the choice. The kde-desktop group is the frame plus essential furniture. The kde-full group is the frame, furniture, and a garage full of tools.
Fedora also splits the display server. Wayland is the modern default. X11 is the legacy protocol. KDE Plasma runs on both. The session you choose at the login screen determines which backend KWin, the window manager, uses. Wayland offers better security and smoother animations. X11 offers broader compatibility with older hardware and some screen recording tools.
Convention aside: journalctl -xe is your first stop when the desktop misbehaves. The x flag adds explanatory text and the e flag jumps to the end. Most sysadmins type journalctl -xeu plasma-kwin_wayland to check the compositor logs. Muscle memory saves time.
Install the right package group
The package name kde does not exist in Fedora. You must use dnf groupinstall with the correct group name. Fedora provides two main groups for KDE.
Here's how to check available groups and install the standard desktop.
dnf group list
# Lists all available package groups
# Look for "KDE Plasma Workspaces" or "KDE Full"
# Group names are case-sensitive and must match exactly
sudo dnf groupinstall "KDE Plasma Workspaces"
# groupinstall resolves the meta-package and pulls recommended dependencies
# Quotes are required because the group name contains spaces
# This installs the shell, file manager, and core utilities without extras
If you need every KDE application, including games, office suites, and multimedia tools, use the full group. This group is large. It can add over 200 packages.
sudo dnf groupinstall "KDE Full"
# Installs the complete KDE application suite
# Includes kdenlive, krita, kate, dolphin, and many more
# Use this only when you need the full ecosystem
If you are on a minimal system and need a display manager, install SDDM. KDE Plasma uses SDDM by default. GDM can launch Plasma, but SDDM is the native choice.
sudo dnf install sddm
# Installs the Simple Desktop Display Manager
# SDDM is optimized for KDE Plasma theming and session handling
# Enable it to start on boot
sudo systemctl enable --now sddm
# Enables the service and starts it immediately
# --now applies the change without a reboot
Run dnf group info "KDE Plasma Workspaces" to see the package list before you commit. Fedora updates group contents between releases. The list changes. Verify what you are installing.
Verify the installation
After installation, check that the core packages are present. The plasma-desktop package is the anchor. If it is missing, the group install failed or was partially removed.
rpm -q plasma-desktop
# Queries the RPM database for the core package
# Output should be plasma-desktop-6.x.x.fc40.x86_64
# If missing, the group install failed or was removed
Check the session files. KDE installs session definitions in /usr/share/wayland-sessions/ and /usr/share/xsessions/. These files tell the display manager what to launch.
ls /usr/share/wayland-sessions/ | grep plasma
# Lists Wayland session files
# Output should include plasma.desktop
# If missing, the session selector won't show Plasma
ls /usr/share/xsessions/ | grep plasma
# Lists X11 session files
# Output should include plasma.desktop
# Required for fallback or legacy hardware
Log out and check the session selector. On SDDM, the session menu is usually at the bottom of the login screen. On GDM, click the gear icon. You should see "Plasma (Wayland)" and "Plasma (X11)". Select one and log in.
Check the environment variable to confirm the desktop is active.
echo $XDG_CURRENT_DESKTOP
# Prints the current desktop environment identifier
# Output should be KDE
# If empty or wrong, the session failed to initialize
Reboot after a major KDE update. Library mismatches cause silent crashes. A reboot clears stale caches and reloads modules.
Configure without breaking the session
KDE Plasma stores configuration in ~/.config/. The files are INI-style. You can edit them manually, but the recommended tool is System Settings. Manual edits drift. System Settings writes the correct values and triggers reloads.
If you need to change a setting from the terminal, use kwriteconfig6. This tool writes to the config file safely and notifies the running session.
Here's how to disable borders on maximized windows via the command line.
kwriteconfig6 --file kwinrc --group Windows --key BorderlessMaximizedWindows true
# Writes a boolean value to the KWin configuration
# --file targets the specific config file in ~/.config/
# --group selects the section within the file
# --key sets the specific option name
kquitapp6 kwin_wayland && kstart6 kwin_wayland
# Restarts the compositor to apply the change
# kquitapp6 sends a graceful shutdown signal
# kstart6 launches the new instance
# Only do this if you are comfortable with a brief screen flicker
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/. Your changes vanish.
SELinux denials can block KDE features. If a widget fails to load or a file manager cannot access a folder, check the audit logs.
journalctl -t setroubleshoot
# Filters journal for SELinux denial summaries
# Look for "SELinux is preventing plasmashell from..."
# Read the one-line summary before disabling SELinux
# The summary often suggests a fix command
Trust the package manager. Manual file edits drift, snapshots stay. Use kwriteconfig6 or System Settings.
Common pitfalls and error messages
The dnf groupinstall command can fail if the group metadata is missing. You will see Error: No matching Groups matched. Run dnf upgrade --refresh to update the metadata cache. This is the normal weekly maintenance command. It forces a refresh of repository data.
sudo dnf upgrade --refresh
# Updates all packages and refreshes repository metadata
# --refresh forces a download of new repo data
# Run this weekly to keep the system current
# Fixes stale group metadata errors
KWin crashes are common after a bad update or a misconfigured GPU driver. The error appears in the journal as plasma-kwin_wayland.service: Main process exited, code=dumped, status=11/SEGV. The segfault means the compositor hit invalid memory.
Check the journal for the crash details.
journalctl -xeu plasma-kwin_wayland
# -x adds explanatory context to log lines
# -e jumps to the end of the journal
# -u filters for the KWin Wayland compositor unit
# Look for "segfault" or "failed to load module"
If the crash happens immediately on login, switch to a TTY with Ctrl+Alt+F3. Log in and switch the session to X11. X11 is more tolerant of driver issues.
loginctl session-status
# Shows active sessions
# Note the session ID for your graphical login
loginctl switch-to x11
# Not a real command; use the session selector at login
# Or edit ~/.xprofile to force X11 if needed
# Switching sessions requires a logout and re-login
The kde-full group can conflict with GNOME packages if you installed both. You might see Error: Transaction test error: package gnome-shell conflicts with plasma-desktop. Fedora allows multiple desktops, but some libraries clash. Remove the conflicting group or use --skip-broken to let dnf resolve the conflict.
sudo dnf remove gnome-shell
# Removes the GNOME shell to resolve conflicts
# Use this only if you are switching to KDE permanently
# --skip-broken lets dnf continue past one bad dependency instead of aborting the whole transaction
Blurry fonts or wrong scaling often happen on HiDPI displays. KDE handles scaling via kwinrc and kcminputrc. The fix involves setting the font DPI and scaling factor. Check the related article for the exact commands.
Run journalctl -xe first. Read the actual error before guessing. Half the time the symptom is a missing library or a SELinux denial.
Choose your setup
Use kde-desktop when you want the standard Fedora KDE experience with curated apps. Use kde-full when you need every KDE application including games and office suites. Use Wayland when you have a modern GPU and want smooth animations and better security. Use X11 when you rely on screen recording tools that don't support Wayland or have legacy hardware. Use the KDE Spin when you want a system installed with KDE from day one. Use Workstation with the KDE group when you need GNOME tools alongside KDE Plasma. Stay on the upstream Workstation if you only deviate from the defaults occasionally.
Snapshot the system before the upgrade. Future-you will thank you.