I recently switched to Wayland running Tumbleweed/KDE and noticed some peculiarities so a topic on that so we can learn for each other. Feel free to add other observations.
To start:
default scale
Coming from X11 I noticed:
While X11 gave:
Both seemed the same size to me but as you see Wayland was blurry. Browsing for something else in KDE settings I noticed the scale was:
Not sure how that came that way (X11 was 100%) but after setting it back to 100% everything looked normal again, now with both screenshots above each other it was immediately clear.
gvim
It was not possible to rescale the window, or only in very small steps. Found this open vim issue and as work around added to my ~/.bashrc:
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
export GVIM_ENABLE_WAYLAND=1
fi
xdotool
This tool do do window query/automation does not work on Wayland. For Wayland there is:
Still work in progress but I am confident that with these two I can update my script that moves the cursor to the left bottom of a program where an input text field is and type there a coordinate followed to enter.
window positions after a restart
I leave normally (only) konsole open before before shutting down and on X11 I found konsole back on the place it was with the same tabs. On Wayland however there is a konsole window of the same size but in the âmiddleâ of the screen.
With multiple displays and multiple virtual desktops here, all app windows expected to reopen as and where they were on shutdown (session restore) open on the primary display on virtual desktop #1. Worse, some windows duplicate themselves. e.g. instead of a single fcl window open on right side display on virtual desktop #4, restart puts two fcl windows on primary display on virtual desktop #1. If I log out without closing the extra fcl, on next restart I find three fcl windows on the same wrong display. Neither are windowsâ positions within a given desktop reliably preserved - they seem like a mixture of random and remembered, but itâs such a mess itâs hard to be sure. Global settings in /etc/X11/ seem to be unable to have any impact, while KScreen seems cannot any longer be disabled.
Fcl is the Linux binary of the multiplatform GUI OFM Iâve been using for over 3 decades, similar to MC, but GUI-only, with a different feature mix and different hotkeys, FileCommander.
Anyway, fcl was just an example. Same thing was happening with Xterms, and I may have been mistaken about that, possibly a problem exclusive to X11. It seems that the window multiplication stopped, or was happening in Neon, and now on TW X11 is only dumping every reopened window on the primary display of virtual desktop #1. Wayland doesnât reopen anything on any virtual desktop except the primary, nothing on any non-primary display, and only one instance of the 5 Xterms open when I logged out. It starts with all 5 on the panel, but clicking each Xterm panel icon makes it disappear. And, the Konsole window it moves from the corner in which I keep it into the display center, centered over or under each of the other windows reopened in dead center instead of where left.
What I expect is whatever is supposed to supplant whatever was working to provide the same functionality, specifically here, global configuration of displays; along with not having whatever uses them disregard those settings in the absence of explicit override, if any possibility to override at all; administrative setup in advance of the very first login by the very first non-admin user.
Is that KScreen 2 image from 6.3? That resembles what I remember from v5, but I canât find it in the TW session running now. Systemsettings searchbox puts me in desktop effects. String âbackgroundâ remains only in the search box, and none among the desktop effects begins with a K:
# inxi -Sa
System:
Host: ga88x Kernel: 6.12.20-1-longterm arch: x86_64 bits: 64 compiler: gcc
v: 14.2.1 clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/boot/vmlinuz root=LABEL=tvgp07stw noresume
ipv6.disable=1 net.ifnames=0 mitigations=off consoleblank=0
radeon.cik_support=0 amdgpu.cik_support=1
Console: pty pts/1 wm: kwin_wayland DM: 1: SDDM note: stopped 2: TDM
3: XDM Distro: openSUSE Tumbleweed 20250328
# which kscreen
which: no kscreen in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
# which kscreen2
which: no kscreen2 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
# which kscreen5
which: no kscreen5 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
# which kscreen6
which: no kscreen6 in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin)
# rpmqa kscre
kscreen6-6.3.3-1.1.x86_64
kscreenlocker6-6.3.3-1.1.x86_64
libkscreen6-plugin-6.3.3-1.1.x86_64
# ls -gGh /usr/bin/kscree*
-rwxr-xr-x 1 59K Mar 11 10:44 /usr/bin/kscreen-console
-rwxr-xr-x 1 103K Mar 11 10:44 /usr/bin/kscreen-doctor
Seems it should be where you say, but itâs well disguised if it is.
I havenât even attempted to read the second paragraph - I donât use much requiring XWayland support thankfully. Plenty of modern file managers to choose from, although MC (which I was using back in the 90âs) doesnât even require a graphical environment.
In Wayland, each user session runs its own compositor, which handles display configurations individually. This is quite different from X11, where the X server provides a central, system-wide configuration that applies to all clients. (However, modern desktop environments on X11 still allow users to adjust display settings as needed.)
kscreen in search box just empties the window. Screenshot is from X11 session, as attempts so far to find a way to place the screens using keyboard instead of mouse have proven futile. wlr-randr wonât run with âfailed to connect to displayâ even though XDG_RUNTIME_DIR exists, and thereâs:
# kscreen-console outputs
START: Requesting Config
Received config. Took 1 milliseconds
Config is invalid, probably backend couldn't load
# journalctl -b -g acke | wc -l
251
# journalctl -b -g acke | tail
Apr 01 01:18:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkDone(Solid::ErrorType, QVariant, QString)
Apr 01 01:18:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkRequested(QString)
Apr 01 01:18:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkDone(Solid::ErrorType, QVariant, QString)
Apr 01 01:18:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkRequested(QString)
Apr 01 01:18:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkDone(Solid::ErrorType, QVariant, QString)
Apr 01 01:18:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkRequested(QString)
Apr 01 01:18:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkDone(Solid::ErrorType, QVariant, QString)
Apr 01 01:22:40 ga88x kernel: Modules linked in: af_packet amdgpu edac_mce_amd kvm_amd ccp amdxcp drm_exec gpu_sched kvm drm_buddy at24 ppdev snd_hda_codec_realtek radeon pcspkr fam15h_power snd_hda_codec_generic k10temp snd_hda_codec_hdmi acpi_cpufreq i2c_piix4 nls_iso8859_1 snd_hda_scodec_component i2c_smbus nls_cp437 snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec vfat i2c_algo_bit fat snd_hda_core drm_suballoc_helper drm_display_helper snd_hwdep snd_pcm drm_ttm_helper r8169 snd_timer ttm cfg80211 snd cec realtek mdio_devres rfkill parport_pc rc_core libphy soundcore tiny_power_button parport button fuse loop efi_pstore configfs dm_mod nfnetlink ip_tables x_tables ext4 mbcache jbd2 hid_generic usbhid ahci libahci crct10dif_pclmul crc32_pclmul crc32c_intel polyval_clmulni polyval_generic ghash_clmulni_intel libata sha512_ssse3 sd_mod sha256_ssse3 xhci_pci ohci_pci scsi_dh_emc sha1_ssse3 xhci_hcd ohci_hcd ehci_pci scsi_dh_rdac ehci_hcd scsi_dh_alua aesni_intel sg gf128mul usbcore crypto_simd scsi_mod cryptd sp5100_tco
Apr 01 01:25:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkRequested(QString)
Apr 01 01:25:25 ga88x plasmashell[1336]: qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::checkDone(Solid::ErrorType, QVariant, QString)
#
Meaning what exactly? root is a user. These are my computers. Iâm not interested in the anti-KISS complication of having users whose sole purpose is to su to perform 90% of a test installationâs only activity, or make me wonder which .bash_history file to search.
If the superuser canât do something, neither should be expected a lesser user. Without session restore working, it doesnât matter what else doesnât work anyway.
I donât expect I have a lot of years left. With any luck, Xorg and that which works in it will keep working for the rest of them.
Iâm really not sure what you donât get here. You need to run the command as the user who owns the session. If I do start a root-owned graphical desktop session, then I run âkscreen-doctorâ as that user - and it succeeds. If Iâm logged in as my user, I run âkscreen-doctorâ as that user (same approach as with xrandr).
In Wayland an application cannot precisely place itâs windows. Kwin-plasma can accurately minimise and restore an application, but the application itself cannot do so. Previously, under X11, most (all) applications that restored their position were doing it themselves by saving and restoring at appropriate times.
As I understand it, the need to support non-desktop displays (phones, round-displays, spheres) trumped supporting any ability to do X,Y placement on the desktop. How is the conventional-desktop going to be won if it isnât given the priority it deserves? There is also some talk of it being a security issue, but I think thatâs just a rumour.
In recent times some Wayland compositors support a place-near capability, such as place near the left side, or similar.
I have written a desktop-neutral tray application that optionally brings up the application window near the tray, or exactly where it was last placed. The only way to get the same behavior under Wayland is to force the application to start in XWayland (which supports X,Y placement) that can be done by export QT_QPA_PLATFORM = 'xcb'
I think you also mentioned issues with scaling, I thing kwin-plasma might take more control of scaling, certainly the ability for the user to force the font DPI has been removed (which makes things a bit more difficult for those who want 1 cm on screen to to be 1cm on paper).
Iâve also disabled KScreen 2 (via background services). Plus I disabled anything that attempts to change my screen brightness: powerdevil, etc.