KDE Plasma - Going all-in on a Wayland future

Appeared on the Planet KDE RSS feed today – published by the Plasma Team: <Going all-in on a Wayland future>

the future KDE Plasma 6.8 release will be Wayland-exclusive!

They’re saying that –

The Plasma X11 session will be supported by KDE into early 2027.

3 Likes

Given 1221507 – sddm fails to start with DisplayServer=wayland - always attempts to use tty1 this implies that SDDM will stop working.

I’m already running SDDM on Wayland in both Slowroll and Leap 16. SDDM works fine as a Wayland greeter when launched through the sddm.service…

~> systemctl status display-manager
● sddm.service - Simple Desktop Display Manager
     Loaded: loaded (/usr/lib/systemd/system/sddm.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-11-27 18:28:54 NZDT; 17min ago
 Invocation: cea25a1e1f4f4e738cafa6c75d383da0
       Docs: man:sddm(1)
             man:sddm.conf(5)
   Main PID: 1205 (sddm)
      Tasks: 2 (limit: 4659)
        CPU: 162ms
     CGroup: /system.slice/sddm.service
             └─1205 /usr/bin/sddm

FWIW, I have /etc/sddm.conf.d/10-wayland.conf with…

[General]
DisplayServer=wayland
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell

[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1

The display-manager-legacy.service is disabled…

○ display-manager-legacy.service - X Display Manager
     Loaded: loaded (/usr/lib/systemd/system/display-manager-legacy.service; disabled; preset: enabled)
     Active: inactive (dead)
4 Likes

What does that mean for Tumbleweed? Will Tumbleweed only package KDE Plasma 6.8 or will it also package an earlier X11 version?

In 2027, TW will for sure use an actual Plasma and not an ancient one.

1 Like

Future arrived here a month ago. After switching to Wayland everything works fine on all hosts. Some monitors required switching from HDMI to DP to resolve problems with plasma-powerdevil.

Yes, I recall reading about that (assuming that is what you were alluding to?)…

I thought 6.8 would arrive quite a bit before 2027 - so if it were the only game in town, then the curtain will come down on X11 way before then.

Hopefully they will have addressed Plasma/Wayland Known Significant Issues before 6.8. Some of the issues are stalled waiting on upstream Wayland decisions, so it’s difficult to say for sure.

1 Like

Also on this system:

Operating System: openSUSE Leap 16.0
KDE Plasma Version: 6.4.2
KDE Frameworks Version: 6.16.0
Qt Version: 6.9.1
Kernel Version: 6.12.0-160000.7-default (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 8600G w/ Radeon 760M Graphics
Memory: 32 GiB of RAM (30.5 GiB usable)
Graphics Processor: AMD Radeon Graphics
Manufacturer: ASUS
 # systemctl status display-manager-legacy.service 
○ display-manager-legacy.service - X Display Manager
     Loaded: loaded (/usr/lib/systemd/system/display-manager-legacy.service; disabled; preset: enabled)
     Active: inactive (dead)
 #

Just for fun, with a ‘/etc/sddm.conf.d/10-wayland.conf’ the same as Dean’s –

 # LANG=C systemctl status display-manager.service 
● sddm.service - Simple Desktop Display Manager
     Loaded: loaded (/usr/lib/systemd/system/sddm.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-11-27 18:21:26 CET; 6min ago
 Invocation: ab462c99d39f4c3289fff1aab83f7dfb
       Docs: man:sddm(1)
             man:sddm.conf(5)
   Main PID: 1743 (sddm)
      Tasks: 2 (limit: 37252)
        CPU: 67ms
     CGroup: /system.slice/sddm.service
             └─1743 /usr/bin/sddm

Nov 27 18:22:02 yyy sddm-helper[1926]: [PAM] returning.
Nov 27 18:22:02 yyy sddm[1743]: Authentication for user  "xxx"  successful
Nov 27 18:22:02 yyy sddm-helper[1926]: pam_kwallet5(sddm:setcred): pam_kwallet5: pam_sm_setcred
Nov 27 18:22:02 yyy sddm-helper[1926]: pam_unix(sddm:session): session opened for user xxx(uid=1000) by xxx(uid=0)
Nov 27 18:22:02 yyy sddm-helper[1926]: pam_kwallet5(sddm:session): pam_kwallet5: pam_sm_open_session
Nov 27 18:22:02 yyy sddm[1743]: Auth: sddm-helper exited successfully
Nov 27 18:22:02 yyy sddm[1743]: Greeter stopped. SDDM::Auth::HELPER_SUCCESS
Nov 27 18:22:02 yyy sddm-helper[1926]: Starting Wayland user session: "/usr/share/sddm/scripts/wayland-session" "/usr/libexec/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland"
Nov 27 18:22:02 yyy sddm[1743]: Session started true
Nov 27 18:22:02 yyy sddm-helper[1926]: Failed to write utmpx:  Datei oder Verzeichnis nicht gefunden
 #

It works!!! :smiling_imp:

Here on this system, still OK with HDMI rather than Display Port:

That may well have been true last year but currently with the SDDM configuration used by Dean and myself, on this system:

 > who
xxx      seat0        2025-11-27 18:22
xxx      tty7         2025-11-27 18:22
root     pts/0        2025-11-27 18:24
 >

Yes, the bug still happens with display-manager-legacy.service and does not happen (at least, not so easily) with sddm.service.

Unfortunately, SDDM still ignores saved user session and launches X11 when doing autologin. One needs to explicitly set the Wayland session in SDDM configuration. Like

bor@uefi:~> cat /etc/sddm.conf.d/autologin.conf
[Autologin]
Session=plasmawayland
bor@uefi:~> 

I don’t usually use Autologin, but this works for me…


Set explicitly to Plasma (Wayland).

~> echo $XDG_SESSION_TYPE
wayland
~> echo $WAYLAND_DISPLAY
wayland-0

A little bit more information about a “Wayland pure” KDE Plasma 6 session:

 # ps -u sddm
    PID TTY          TIME CMD
 # 
 # ps -ely | grep -E ' UID |tty|pts| 461 '
S   UID     PID    PPID  C PRI  NI   RSS    SZ WCHAN  TTY          TIME CMD
S     0    1956       1  0  80   0  2312   790 do_sel tty4     00:00:00 agetty
S     0    1961       1  0  80   0  2260   790 do_sel tty3     00:00:00 agetty
S     0    1969       1  0  80   0  2316   790 do_sel tty2     00:00:00 agetty
S     0    2001       1  0  80   0  2392   790 do_sel tty5     00:00:00 agetty
S     0    2003       1  0  80   0  2308   790 do_sel tty6     00:00:00 agetty
S  1000    2076    2034  0  80   0 58072 46410 do_sys tty7     00:00:00 startplasma-way
S     0    6347    6326  0  80   0 15832  5063 do_wai pts/0    00:00:00 su
S     0    6389    6347  0  80   0  9244  2605 do_wai pts/0    00:00:00 bash
S  1000    6485    6464  0  80   0  9188  2594 do_wai pts/1    00:00:00 bash
S  1000    6511    6485  0  80   0  6492  2326 do_wai pts/1    00:00:00 man
S  1000    6521    6511  0  80   0  4948  1505 wait_w pts/1    00:00:00 less
S  1000    7351    7328  0  80   0  9260  2594 do_sel pts/2    00:00:00 bash
S  1000    7573    6464  0  80   0  9512  2660 do_sel pts/3    00:00:00 bash
R     0    7626    6389  0  80   0  6788  2471 -      pts/0    00:00:00 ps
S     0    7627    6389  0  80   0  4412  1651 pipe_r pts/0    00:00:00 grep
 #

If I’m not mistaken, there ain’t nothing more running for the user “sddm” – UID: 461 on this system.

And, there are two files in /bin/ and /usr/bin/ named “startplasma-wayland” and “startplasma-x11”.

And, the case that the SDDM Greeter / Login screen is active – no KDE Plasma 6 users are logged in:

 # who
root     seat0        2025-11-28 10:09
root     tty4         2025-11-28 10:09
sddm     seat0        2025-11-28 10:11
sddm     tty1         2025-11-28 10:11
 # 
 # ps -ely | grep -E ' UID |tty|pts| 461 '
S   UID     PID    PPID  C PRI  NI   RSS    SZ WCHAN  TTY          TIME CMD
S     0    1961       1  0  80   0  2268   790 do_sel tty3     00:00:00 agetty
S     0    1969       1  0  80   0  2324   790 do_sel tty2     00:00:00 agetty
S     0    2001       1  0  80   0  2400   790 do_sel tty5     00:00:00 agetty
S     0    2003       1  0  80   0  2316   790 do_sel tty6     00:00:00 agetty
S   461   26786       1  0  80   0 29068  8831 do_epo ?        00:00:00 systemd
S   461   26788   26786  0  80   0  4176  5999 do_sig ?        00:00:00 (sd-pam)
S   461   26801   26786  0  80   0  4376  2209 do_epo ?        00:00:00 dbus-broker-lau
S   461   26802   26801  0  80   0  3132  1272 do_epo ?        00:00:00 dbus-broker
S   461   26833   26786  0  69 -11 13364 27162 do_epo ?        00:00:00 pipewire
S   461   26834   26786  0  69 -11 29316 141730 do_sys ?       00:00:00 wireplumber
S     0   26935    1956  0  80   0  8844  2474 do_wai tty4     00:00:00 bash
S   461   27094   27093  0  80   0 19084 14299 do_sys tty1     00:00:00 sddm-helper-sta
S   461   27095   27094  0  58   - 282660 480797 do_sys tty1   00:00:00 kwin_wayland
S   461   27100   27094  0  80   0 355864 675276 do_sys tty1   00:00:00 sddm-greeter-qt
R     0   27217   26935 99  80   0  6432  2405 -      tty4     00:00:00 ps
S     0   27218   26935  0  80   0  4452  1650 pipe_r tty4     00:00:00 grep
 #

In other words, the SDDM Greeter is executing with the user “sddm” – UID:461.

  • The UID “461” is executing ‘/usr/libexec/sddm/sddm-helper-start-wayland’ and ‘/usr/bin/sddm-greeter-qt6’ …

Active Units

1. system slice:

6700k:~ # systemd-cgls /system.slice/display-manager-legacy.service
CGroup /system.slice/display-manager-legacy.service:
├─1024 /usr/bin/sddm
└─1030 /usr/bin/Xorg.bin -nolisten tcp -background none -seat seat0 vt2 -auth /run/sddm/xauth_sTvVfl -noreset -displayfd 16
6700k:~ # 

2. user slice:

6700k:~ # systemd-cgls /user.slice/user-463.slice --full --no-pager 
CGroup /user.slice/user-463.slice:
├─user@463.service …
│ ├─session.slice
│ │ └─dbus-broker.service
│ │   ├─2374 /usr/bin/dbus-broker-launch --scope user
│ │   └─2378 dbus-broker --log 11 --controller 10 --machine-id 46041d3f20844a149330bc839d687547 --max-bytes 100000000000000 --max-fds 25000000000000 --max-matches 5000000000
│ └─init.scope
│   ├─2077 /usr/lib/systemd/systemd --user
│   └─2091 (sd-pam)
└─session-1.scope
  ├─2014 /usr/libexec/sddm/sddm-helper --socket /tmp/sddm-auth-41a1631f-47d6-4b4a-b717-df0b40d470f2 --id 2 --start /usr/bin/sddm-greeter-qt6 --socket /tmp/sddm-:0-gMEYUK --theme /usr/share/sddm/themes/breeze-openSUSE --user sddm --greeter
  └─2251 /usr/bin/sddm-greeter-qt6 --socket /tmp/sddm-:0-gMEYUK --theme /usr/share/sddm/themes/breeze-openSUSE
6700k:~ # 

After user login

a wayland session is started:

6700k:~ # systemd-cgls /user.slice/user-1000.slice/session-7.scope --full --no-pager 
CGroup /user.slice/user-1000.slice/session-7.scope:
├─3633 /usr/libexec/sddm/sddm-helper --socket /tmp/sddm-auth-41a1631f-47d6-4b4a-b717-df0b40d470f2 --id 1 --start /usr/libexec/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland --user karl
├─3652 /usr/bin/ksecretd --pam-login 13 14
└─3653 /usr/bin/startplasma-wayland
6700k:~ # 
1 Like

Which is exactly what I said.

Wow, Dean, I had been procrastinating the move to sddm.service, somehow thinking it would require more than just this. And, wrong I was. Funny to immediately see that sddm is now running wayland. Thanks a lot

1 Like

And as I demonstrated achieved via System Settings (rather than a manual edit of a system file).