You upgraded from GNOME to KDE and the login screen refuses to change
You just finished a clean Fedora install and the GNOME desktop feels too restrictive. You want the panel at the bottom, the system tray, and the ability to tweak every pixel. You run a quick package install, reboot, and stare at a login screen that still looks like GNOME. Or worse, you click the session menu and see a grayed-out option. The desktop environment did not break. The session switcher just needs the right trigger, and the package manager needs to know exactly which layer you want to pull in.
What is actually happening
A desktop environment is not a single binary. It is a collection of a window manager, a panel, a file manager, system settings, and a set of default services. Fedora ships GNOME as the default because it matches the upstream project design goals. KDE Plasma lives in the same repositories, packaged as modular components. When you install Plasma, you are adding a parallel desktop stack to your system. The login screen, technically called a display manager, decides which stack to launch based on your selection. Fedora uses GDM by default. KDE prefers SDDM. Both work. The session switcher reads available .desktop files in /usr/share/wayland-sessions/ and /usr/share/xsessions/. If those files are missing, the menu stays empty.
Package groups in DNF bundle related software into a single transaction. The KDE Plasma Workspaces group pulls in the core desktop, standard utilities, and recommended applications. The plasma-desktop package contains only the shell, the panel, and the window manager. Choosing between them depends on whether you want a complete out-of-the-box experience or a bare foundation you will build upon.
Config files in /etc/ are user-modified. Files in /usr/lib/ ship with the package. Edit /etc/. Never edit /usr/lib/. Plasma follows this convention strictly. User themes, panel layouts, and application defaults live in ~/.config/ and ~/.local/. System-wide overrides live in /etc/xdg/. If you place custom configuration files in unexpected locations, the security policy blocks access.
The fix
Open a terminal and decide which installation path matches your workflow. Run the command that fits your needs.
Here is how to install the complete desktop environment with standard utilities pre-configured.
sudo dnf groupinstall "KDE Plasma Workspaces"
# --best resolves dependency conflicts by preferring higher version packages
# --skip-broken lets dnf continue past one bad dependency instead of aborting
# The group pulls in Dolphin, Konsole, Kate, and default themes
If you prefer a leaner footprint, install only the core shell and add applications later.
sudo dnf install plasma-desktop
# Installs the window manager, panel, and system settings only
# Leaves out file managers, terminal emulators, and office suites
# You will need to install kio-extras for network and device mounting support
Wait for the transaction to finish. DNF will download the packages, verify signatures, and place the session files in the correct directories. Do not force a reboot yet. Log out of your current session first. The display manager needs to reload its session list before it can offer Plasma.
At the login screen, click your username. Look for the gear icon in the bottom right corner. Click it to reveal the available sessions. Select Plasma (Wayland) or Plasma (X11). Enter your password and log in. The system will launch kwin_wayland or kwin_x11 depending on your choice. The panel will appear at the bottom, the system tray will populate, and the desktop background will load.
If you want KDE's native display manager instead of GDM, install sddm and enable it. SDDM integrates with Plasma's theme engine and handles session switching more smoothly for KDE users.
sudo dnf install sddm
sudo systemctl disable --now gdm
# Stops the GNOME display manager immediately
sudo systemctl enable --now sddm
# Starts SDDM and ensures it launches on boot
# Reboot to let the display manager initialize cleanly
Reboot before you debug. Half the time the symptom is gone.
Verify it worked
Confirm the session type and check that core services are running. Open a terminal from the application menu and run the following.
echo $XDG_CURRENT_DESKTOP
# Returns KDE for both X11 and Wayland sessions
echo $XDG_SESSION_TYPE
# Returns wayland or x11 to confirm the display server protocol
systemctl --user status plasma-session
# Shows the active state of the Plasma user session
# Recent log lines appear below the active state
Launch System Settings and navigate to the About System page. The version number should match the package version installed by DNF. Open Dolphin and verify that the Places panel shows your home directory, network devices, and removable media. If the network section is empty, the kio-extras package is missing or the firewall is blocking discovery protocols.
Run journalctl -xe first. Read the actual error before guessing.
Common pitfalls and what the error looks like
The most common issue is a missing session entry in the login screen. This happens when the package installation was interrupted or when DNF resolved a dependency conflict by dropping the session files. Check the transaction log.
sudo dnf history info | grep -A 5 "plasma-desktop"
# Shows the last transaction that touched the package
# Look for FAILED or SKIPPED status
If the session files are missing, reinstall the package explicitly.
sudo dnf reinstall plasma-desktop
# Forces DNF to replace all package files without removing user data
# Restores /usr/share/wayland-sessions/plasma.desktop
Another frequent problem is Wayland falling back to X11 silently. Plasma prefers Wayland but switches to X11 if it detects proprietary GPU drivers that lack Wayland support, or if the kwin_wayland process crashes during startup. Check the journal for the exact trigger.
kwin_wayland: failed to create EGL display: EGL_NOT_INITIALIZED
kwin_wayland: falling back to X11 session
The fallback is intentional. Read the next paragraph before forcing. Install the correct Mesa drivers or update your GPU firmware. Fedora ships open-source drivers by default. If you are using NVIDIA, install the akmod-nvidia package and reboot. The kernel module will compile against your running kernel and expose the required Wayland extensions.
SELinux denials appear when you place custom configuration files in unexpected locations. Plasma reads user settings from ~/.config/plasma-org.kde.plasma.desktop-appletsrc. If you move it to /etc/ or change ownership, the security policy blocks access. Check the audit log for the exact denial.
sudo ausearch -m avc -ts recent | audit2why
# Filters recent access vector cache denials
# audit2why translates the raw policy into plain English
Restore the default context if you accidentally moved a file.
sudo restorecon -Rv ~/.config/
# Resets SELinux labels to match the package defaults
# The -v flag prints each file as it is fixed
Network discovery fails when the firewall blocks mDNS or Samba. KDE's network module relies on these protocols to show shared folders and nearby devices. Allow the services and reload the runtime configuration.
sudo firewall-cmd --permanent --add-service=mdns
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
# Applies the persistent rules to the active firewall
# Runtime and persistent configs must stay synchronized
Trust the package manager. Manual file edits drift, snapshots stay.
When to use this vs alternatives
Use the full KDE Plasma Workspaces group when you want a complete desktop experience with standard applications pre-installed. Use plasma-desktop when you are building a minimal workstation and prefer to add tools one by one. Use GDM when you plan to switch between GNOME and Plasma frequently on the same machine. Use SDDM when you want native KDE theming and faster session switching. Use Wayland when you are on modern hardware and want better touchpad gestures and screen sharing. Use X11 when you are running legacy applications that require X11 forwarding or proprietary drivers that lack Wayland support. Stay on the default Fedora repositories if you only need standard desktop functionality.