You need X11 for a legacy tool, but the login screen only offers Wayland
You installed a proprietary remote desktop client or a specific game launcher, and the window refuses to render correctly. You try to switch to the X11 session, but the login screen only shows Plasma (Wayland). Or you upgraded to a new Fedora release and the session menu is gone entirely. The session type determines how your desktop talks to the GPU and input devices. Switching is straightforward, but the option might be hidden if the display manager package is missing. Save your work before logging out. Switching sessions terminates every running application.
How display sessions work on Fedora
X11 and Wayland are display protocols. They define how applications draw pixels on your screen and how the system handles keyboard and mouse events. X11 has been the standard for decades. It allows applications to see each other's windows, access the global clipboard, and even inject keystrokes. That flexibility is useful for some tools but creates security holes. Any application can grab a screenshot of your entire screen or log your keystrokes across other windows.
Wayland changes the model. Each application gets its own isolated buffer. The compositor, which is part of the desktop session, composites these buffers into the final image. Applications cannot snoop on each other. Input events go directly to the focused application. Screen sharing requires explicit user permission through a portal. Fedora defaults to Wayland for security and performance. KDE Plasma supports both protocols using the same desktop environment code. The only difference is the backend library and the compositor binary.
KDE Plasma uses SDDM as the display manager. SDDM reads session files from specific directories to populate the login menu. If the package providing the session file is not installed, SDDM has nothing to show. Fedora installs the default backend by default. Minimal installs or specific spins might omit the X11 backend to save space.
Switch the session at the login screen
Switching sessions happens at the display manager. Log out of your current session. You will see the SDDM greeter with your user avatar and password field. Look for a gear icon or a session menu button. It is usually in the bottom-right corner or near the user avatar. Click the menu. You will see a list of available sessions. Select Plasma (Wayland) for the modern protocol or Plasma (X11) for the legacy protocol. Enter your password and log in. The system starts the selected session type.
If the menu shows both options, you can switch freely. Log out and select the other option. The change takes effect immediately after login. No reboot is required. Log out and back in. Session changes do not apply to running processes.
Restore the missing session option
If the session menu only shows one option, the package for the other backend is missing. Run the following command to install the X11 backend for SDDM.
sudo dnf install sddm-x11
# WHY: Installs the X11 session support package for the SDDM display manager.
# WHY: The package provides the session file that SDDM reads to populate the menu.
# WHY: This command resolves the missing option without modifying system configuration.
If you need the Wayland backend on a system that only has X11, install the Wayland package.
sudo dnf install sddm-wayland
# WHY: Installs the Wayland session support package for SDDM.
# WHY: Required if the system was installed with X11 as the default and Wayland is missing.
Restart the display manager to apply the change if the menu does not update immediately.
sudo systemctl restart sddm
# WHY: Restarts the display manager service to reload the session list.
# WHY: Use this only if you are not logged in. Restarting SDDM while a session is active kills the desktop.
Install the backend package. Manual session files drift and break on updates.
Verify the active protocol
Open a terminal after logging in. Check the environment variable to confirm the session type.
echo $XDG_SESSION_TYPE
# WHY: Prints the current session type. Output should be 'wayland' or 'x11'.
# WHY: This variable is set by the display manager and inherited by all applications.
For a more robust check that queries the session manager directly, use loginctl.
loginctl show-session "$XDG_SESSION_ID" | grep Type
# WHY: Queries the session manager for the protocol type.
# WHY: Useful if the environment variable is unset or spoofed by a wrapper script.
The output confirms the active protocol. If the output does not match the session you selected, check the SDDM logs for errors during startup. Check the journal before reinstalling. The error message points to the missing dependency.
Common pitfalls and error patterns
Some hardware configurations struggle with Wayland. Older NVIDIA drivers or specific multi-monitor setups with mixed refresh rates may cause flickering or black screens. If you see Failed to start session in the journal, the compositor could not initialize. Switch to X11 as a fallback. Remote desktop protocols like RDP often require X11 because they rely on the X11 windowing model for forwarding. If you need to connect via RDP, use the X11 session.
Screen sharing behaves differently on Wayland. Applications cannot grab the screen without user permission. Tools that rely on global screen capture may fail or show a black window. KDE Plasma provides a screen sharing portal that prompts you to select the window or screen to share. If a tool does not support the portal, it will not work on Wayland. Use X11 for tools that require unrestricted screen access.
SELinux denials can block session startup. Fedora enforces SELinux in enforcing mode by default. If you see Permission denied errors in the journal, check the SELinux logs.
journalctl -t setroubleshoot
# WHY: Shows SELinux denial summaries with actionable advice.
# WHY: Read the one-line summary to identify the blocked operation before disabling SELinux.
Do not disable SELinux to fix session issues. The denial usually indicates a misconfiguration or a bug in the application. Restore the context or update the package.
SDDM configuration lives in /etc/sddm.conf. Files in /usr/lib/sddm/ ship with the package. Edit /etc/sddm.conf to change defaults. Never edit files in /usr/lib/. Package updates overwrite changes in /usr/lib/.
[General]
# WHY: Sets the default session type if the user has not made a selection.
# WHY: Use 'plasma' for Wayland or 'plasma-x11' for X11.
DefaultSession=plasma
Use firewall-cmd --reload after every rule change. The runtime config and the persistent config diverge otherwise. This applies to network services started by your session as well.
Choose the right session for your workload
Use Wayland when you want better security isolation between applications. Use Wayland when you are running a modern NVIDIA driver and want smooth variable refresh rate support. Use Wayland when you want touch input and fractional scaling to work correctly on KDE Plasma. Use X11 when you need to run legacy remote desktop clients that require X11 forwarding. Use X11 when a specific proprietary application fails to render or capture the screen on Wayland. Use X11 when you are troubleshooting a display issue and need to rule out compositor bugs.