Change:
./0002-xwayland.patch ./0003-plugins-qpa-allow-using-nixos-wrapper.patch ./0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch <ins> # Pass special environments through arguemnts to `kwin_wayland`, bypassing # ld.so(8) environment stripping due to `kwin_wayland`'s capabilities. # We need this to have `TZDIR` correctly set for `plasmashell`, or # everything related to timezone, like clock widgets, will be broken. # https://invent.kde.org/plasma/kwin/-/merge_requests/1590 (fetchpatch { url = "https://invent.kde.org/plasma/kwin/-/commit/9a008b223ad696db3bf5692750f2b74e578e08b8.diff"; sha256 = "sha256-f35G+g2MVABLDbAkCed3ZmtDWrzYn1rdD08mEx35j4k="; }) </ins> ]; CXXFLAGS = [ ''-DNIXPKGS_XWAYLAND="${lib.getBin xwayland}/bin/Xwayland"''

Discussion:
I updated today my distribution on latest unstable (I was already on unstable before). And it turned out that many things suddently broke (the clock is broken, my does not work anymore (of course), Carla's software does not have anymore a "Canvas" menu, NSM can't run Carla or it gets an error, Giada also fails to connect to Jack...). I quickly realized that I was running Wayland instead of X11, while I was always running X11 before on KDE Plasma. Moreover, the KDE clock and calendar is now broken (negative numbers+hour does not appear at all+what is this ): ! So here are my questions: it normal that Wayland is the default now? I can't find any documentation on Wayland vs X11, and it seems a bit risky to use Wayland by default given all the bugs I encountered... yes, how can I configure X11 to be the default? (I mean in the configuration file, not by just changing at connection time) can I get the clock and calendar back? idea why Carla, Giada and NSM are also not working properly with Wayland? (I'm using pipewire) Steps to reproduce the behavior: the system and reboot Please run and paste the result.
Same issue here. On top of that, I'm unable to share my screen with tools such as Google Meet, Teams, Jitsi. To fix: , then in SDDM select on the bottom left:
There's not supposed to be any changes to the default. If you don't set one via , you might get the wayland version. This should/must be fixed. Others have mentioned the issue with the clock although I'm not seeing that here. As for the screen sharing question, applications need wayland support. That really has nothing to do with Plasma or NixOS.
Thanks for your answer. How can I find a list of valid ? I tried to put an absurd value but it does not give any error. In my case I'm running sddm, plasma5 and x11. Concerning the clock, I'm not sure what I've that you don't. If it helps, the language of the system is french . and in X11 my clock looks like: !

The is replaced with octobre, so that's why I'm thinking it may be linked with the language.
Or well, pipewire support. However screensharing/recording on plasma wayland seems to be broken at the moment (even in OBS which does have explicit support for wayland). Judging from what gets logged in the journal it seems like is not agreeing with kwin about the supported wayland protocols or something.
Same, I also get the broken clock, unless I remove the timezone setting from and get UTC. I saw some people saying Plasma's systemd startup fixes it? Altho IIRC the PR for that was merged but the systemd service isn't running by default.
I have which should be the most standard one... and.
Maybe NixOs does not like people with European timezone…
I notice that the env var is somehow missing for . I run with correctly set, and the clock widget just works. Running it with empty reproduces the same broken clock. I checked that , have , but , and don't. Since is the session entrance started by (so it's not 's fault), we can know the envvar somehow gets dropped during the plasma starting chain. EDIT: Another issue is that, we used to be able to workaround the clock issue by . But after , as I mentioned in , and the option DO NOT work anymore. Session is now always booted without systemd.
By comparing between , exactly is dropped when the wrapper running , no other environment variable are , removed or modified. is wrapped to gain CAPSYSNICE, I'm not sure how the work, but simply removing this wrapper just fix the clock widget issue. But it's definitely not a good idea since is expecting to be real time scheduled. cc
I have nothing to do with KDE, but I made a few changes to in . I don't see how this could possibly have affected the clock, but you could try reverting my commits if you think this is related.
That may be unrelated. I found the related upstream issue The cause here is that rejects , and some other env vars in secure-excution mode, including programs with or capabilities. See In our case, has capabilities set. But I'm still not sure how we could workaround this.

Currently my thought is to patch and to let the wrapper pass these envvars in other ways, like renaming envvar name or passing through arguments. If there's a better way to workaround, please point it out.
The "Wayland by default" thing was introduced here: as part of KDE Wayland support in NixOS in general. Mb shouldn't be default yet or at least not to override previous preference of X11 during upgrade. +1 about the clock - same issue. I'm on locale.
Current status: The clock issue can be workaround by setting since which is already in . It will be fixed (without ) in The default session will be set back to X11 on SDDM in Currently, you can manually switch to X11 and login once, and SDDM will remember your last choice (hopefully, it may be reset if you change available desktop sessions. It's an issue of SDDM and I'll look into it later).
This fix didn't work for me. The clock is still broken in exactly the same way as reported in this bug. Even after logging into fresh user. (Again, I'm on Wayland)
Are you sure on nixpkgs and that option is enabled? Please check if the plasma systemd service is started by . If it's not running, please open another issue for not working. If it's running, then there may be some issue of . Since will load PAM environment, which must contain , and it will be propagated to other units. In this case please open an issue about "systemd user units not picking PAM environment".
Thanks for your advice! Yes indeed I'm on master (last synced yesterday) and have this option enabled: Though it says "dead" for some reason (and I'm writing this from an active KDE session), process is a child of systemd according to pstree TZDIR is defined as well: Do you have any other ideas?
Looking at 's process env, indeed env is not defined there. Is that the issue you are trying to point out? (The above returns nothing)
Please open an issue about not working, and provide there.
Did another update from unstable (it updated LOTs of packages) and after reboot, the clock is working again! (and TZDIR env is indeed known to plasma). thanks again for jumping on this!

Could this be the same root cause for issues with IMEs, screen capturing and Flameshot simply not working at all? IME (fcitx) does not activate, screen capturing in browsers and OBS does not show a source selection dialog, Flameshot does not react to its DBus invocation (Spectacle works although it is dog slow -- not sure what their internal differences are) See and I don't know much about DBus but the bit about it not finding services dirs sounds like it could be caused by something like this. I also remember seeing some logs from Flameshot where it thinks it has been started already but actually invoking its screenshot function does not do anything -- wrong DBus instance? ... Or am I the only one with these problems on plasma/wayland? :D
I have 4k 14" laptop display and 2k 27" external display. Flameshot doesn't work for me at all on KDE+Wayland: Spectacle kind of works - about every second time; plus, when trying to annotate, the resolution of the image gets absolutely trashed if I the screenshot was taken from non-hidpi screen.
For the issue, see
This issue has been mentioned on NixOS Discourse. There might be relevant details there: