This week in KDE: new KWin compositing, new Kickoff, new recording level visualization!

This week KWin’s compositing code was almost totally rewritten! It should broadly reduce latency throughout all compositing operations, and also adds a user-facing control in the System Settings Compositing page so people can choose for themselves whether they prefer lower latency or smoother animations. In addition, it brings support for mixed-refresh-rate display setups on Wayland, e.g. one 144Hz screen and one 60Hz screen! This very exciting work was completed by Vlad Zahorodnii and will land in Plasma 5.21.

But that’s not all: Plasma also got a brand new Kickoff menu, which was rewritten from the ground up and fixes more than two thirds of the open issues in the bug tracker! It features a double-pane UI with better keyboard, mouse, touch, and accessibility, RTL support, an alphabetical “All Applications” view, a grid-style favorites view, power actions visible by default with labels, and much more. Here it is:

I’d like to offer a big thanks to Mikel Johnson for this excellent contribution, which will also land in Plasma 5.21. People who liked the old Kickoff can download it from store.kde.org using the “Get new widgets” button in the “Add Widgets” panel. Search for “Legacy Kickoff”.

But there’s one more really big cool thing: The Plasma Audio Volume applet now has a little visualizer for the current recording level and output volume!

Gone are the days of being embarrassed during a meeting because your microphone is muted or way too sensitive. This lovely improvement was contributed by David Edmundson and David Redondo, and also lands in Plasma 5.21.

But that’s not all:

Other New Features

Konsole now lets you select which text editor is opened when you Ctrl+click on a text file to open it (Ahmad Samir, Konsole 21.04):

Bugfixes & Performance Improvements

Kate can now open files beginning with a colon from the command line (Ahmad Samir, Kate 21.04)

Right-clicking on an ISO image in Dolphin no longer imposes such a long delay before the context menu appears (Kai Uwe Broulik, Dolphin 21.04)

Dolphin’s in-toolbar breadcrumbs bar/URL navigator is now sized correctly the first time you open Dolphin (Felix Ernst, Dolphin 21.04)

Filelight now shows the correct amount of free space on a disk (Jakob Erzar, Filelight 21.04)

Filelight’s tooltip is now positioned correctly in multi-screen setups (Teemu Patana, Filelight 21.04)

The screen locker no longer sometimes consumes 100% of the CPU’s resources (David Edmundson, Plasma 5.18.7 and 5.21)

The Folder View applet now has a sane layout when used on a vertical panel greater than 50px thick (me: Nate Graham, Plasma 5.18.7 and 5.21)

Fixed one of the most common ways that Plasma could crash when interacting with screen-related settings (David Edmundson, Plasma 5.21)

When Discover and the Emoji picker are already open but unfocused, activating them via their System Tray icons or global shortcuts now raise the existing windows properly (David Edmundson and me: Nate Graham, Plasma 5.21)

Fixed the Network Speed Widget for people who were seeing that it didn’t work properly for them some of the time (David Redondo, Plasma 5.21)

The “Get new [thing]” dialog now shows recently-installed content properly when you activate its “Installed” filter (Alexander Lohnau, Frameworks 5.79)

User Interface Improvements

Opening and closing split views in Dolphin is now animated (Felix Ernst, Dolphin 21.04):

Kate’s “Quick Open” panel now supports fuzzy matching (Waqar Ahmed, Kate 21.04)

Notifications about items moved to the trash no longer give you the option to open the item, because that’s just silly (Kai Uwe Broulik, Plasma 5.21)

After you click on the “Connect” button in the Plasma network list, the inline password field no longer runs away from you if the list is re-ordered (Bharadwaj Raju, Plasma 5.21)

System Settings’ KWin Scripts and Accessibility pages now respect the “Highlight changed settings” feature (Cyril Rossi, Plasma 5.21)

The Maximize and Fullscreen animations now use the standard animation easing curve (in/out cubic) (Alex Rosca, Plasma 5.21):

When setting up a KWin window rule, the default value for each newly-added property is now “Apply initially”, not “Do not affect” (Michael Tunnell, Plasma 5.21)

The clipboard applet now closes when you select a history entry with the keyboard, same as when you do so using the mouse (me: Nate Graham, Plasma 5.21)

Dolphin and other KDE apps now display thumbnail previews for ancient .ANI animated windows cursor files (Kai Uwe Broulik, Frameworks 5.79)

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

93 thoughts on “This week in KDE: new KWin compositing, new Kickoff, new recording level visualization!

  1. Looking great! Thanks to everyone in the KDE team, I’m super interested to see how the new KWin compositing turns out. One thing though, I hope there is an option to turn the split view animation off, as personally I’d prefer it to be fast than look pretty, however other users might disagree.

    Like

    1. I agree with you, some animation I left but a lot of them I disabled, for example the right click context menu animation. It’s a time saver for me

      Like

      1. May I ask how? I’d like to specifically disable context menu animation (like you did) and global menu animation.

        Like

        1. Hi, sorry for the late reply.
          in Settings > behavior of workspace> desktop effects
          in the aspect section there will be a voice : pop-up windows that dissolve, something like that.

          my settings are in italian it’s quite hard to me to be precise.

          Like

  2. love love love the kwin compositor enhancements! this means that I can finally drop using kwin-lowlatency side-project and now everyone will have these goodies!

    Still, how does it compare with kwin-ft in the wayland side?

    Like

  3. I’ll be honest: I’m *really* happy about the KWin latency improvement, but I don’t like the option to choose for snappiness or smoothness. No other compositor out there has such an option and I think there shouldn’t be any. A compositor should work out of the box without tweaking, it’s such a basic piece of software in a system with a GUI. Ideally, it should provide both snappiness and smoothness without compromises, otherwise devs should find the sweet spot between them and ship it. Leaving the option to choose feels like the compositor is somehow not perfect and you gotta tweak it like an old car.

    Liked by 1 person

    1. But this is the beauty of KDE. Your use case is not the everybody user case. Let me explain. Tweaking compositor to disable smoothness or effects is a perfect fit for people using KDE thru spice remote connections. In this case we want few or none effects affecting bandwidth or client performance.

      Like

      1. I was a bit confused what the difference was. At a guess it sounds like the difference between having vsync enabled & disabled. A brief tech explanation beside the setting might be good. The remote connection thing sounds like the sort of setting the client software should enable when connecting in, i.e. like in VNC viewer selecting the bitrate/quality.

        Like

    2. It’s like many of the options in KDE. The default should be good enough for most, but you get the ability to tune it. Something you don’t get on other desktops without hacking around or messing with config files…

      Like

  4. Ehhh … I wish Dolphin and Krunner would learn to search for files.

    Let me remind you that search with Baloo is not able to quickly respond to file changes and correctly search through hidden files. Until it indexes, you shouldn’t wait for the desired file in the search results. This can happen in 100 milliseconds, or in hundreds of millennia.

    If Baloo is disabled, then Dolphin’s built-in search is unable to find hidden files. Because of what, the search results lose all credibility.

    Like

    1. “If Baloo is disabled, then Dolphin’s built-in search is unable to find hidden files.”

      Ah. Looks like I won’t be replacing Nemo as a main file manager any time soon, then.

      Like

    2. They already can search for files, using Baloo. If Baloo isn’t working for you, please file bug reports. Disabling it removes the search functionality. πŸ™‚ Can’t disable the search functionality and also still have the search functionality. πŸ™‚

      Like

      1. The obvious counter is that doing that works on Windows — if you disable search indexing, Explorer still works perfectly well to find files by name. Dolphin’s the odd one out if it has an “all or nothing” approach.

        Like

  5. “In addition, it brings support for mixed-refresh-rate display setups on Wayland, e.g. one 144Hz screen and one 60Hz screen! ”

    Does it already support freesync?

    Like

  6. At a first glance, one thing I don’t like about the new Kickoff is the lesser intuivity for new users. For example, the original Kickoff would not only say “Kate” but “Text editor” and not only “LibreOffice Writer” but “word processor”. I think this is especially important given some of the strange program names.

    Like

    1. There are actually 2 different ways that the new kickoff uses to display apps. The favorites section uses a grid with only app names. When you browse for apps by category or with search, a vertical list is used instead. In the vertical list view, app names are on the left and descriptions of the apps are on the right

      Like

        1. Grids are more information-dense than lists are, not the opposite. The old Kickoff could only display about 8 favorites in its favorites view without the view becoming scrollable; the new Kickoff can display 16.

          Liked by 1 person

          1. Depends on the information — a grid will allow optimal display of more-or-less regularly sized items of content that are the size of the grid cells. If that’s icons with equal width and height only, a grid is perfect. If it’s icons plus application names (and/or plus a description) it generally isn’t. If you’re truncating text to fit “GNU Image Manipulation Program”, or forcing the grid tile it’s in to be distended, or insisting on abbreviated names, that’s moved away from being a menu, which is inherently a list and the icon is secondary. Most application menus (desktop paradigm) are menus, most mobile interfaces — and PC ‘desktops’ because of the intended purpose of a pinboard for shortcuts, rather than storing files/folder — are grids and ignore truncation.

            None of this is particularly new, only new to each generation of developers.

            Like

  7. Great work! I’m very happy using KDE since more than 10 years!

    But I’m here to ask if is there any chance to get this issue resolved.

    Some time ago I reported on KDE Bugs and I remember read the issue was being corrected by Nvidia, but I can’t find now in the tracker list.

    Today I upgraded nvidia driver from 455 to 460 version, and got this same error on system reboot.

    I know that has low level of priority in all TODO things list, but to get a smooth overall experience, would be great to find it solved in future versions of KDE.

    Thank you again for the great work!

    Like

    1. You’re very welcome!

      In general, when an Nvidia driver upgrade breaks things, 99% of the time it’s Nvidia’s fault rather than our fault. As such, bugs need to be reported to Nvidia, either by sending an email to linux-bugs@nvidia.com or making a post at https://forums.developer.nvidia.com/c/gpu-unix-graphics/linux/ It’s also helpful to the Nvidia developers if you could run nvidia-bug-report.sh and attach the resulting file in your report.

      Like

      1. I’m sure it’s due to Nvidia not having a stable system API, so if you update the user space part of the driver, and have not rebooted in order to use the new kernel driver, that breaks anything you launch after the upgrade which tries to use hardware rendering. But it would still be good if the shutdown screen has a fallback so you can reboot even if OpenGL is broken. Though I suppose that assumes it is possible for it to handle the failure, rather than it just crashing in the driver.

        Liked by 1 person

  8. Wow, so many awesome things this week too! The new Kickoff-menu looks great, those volume visualizers are excellent and I love the polish that animation effect when splitting views in Dolphin brings!

    Like

    1. I didn’t notice what the animation was showing at first, I had to play it twice to try & see what was happening. The middle-blue on grey is a bit difficult to see to my eyes. Try watching the clip without looking within 1″ of the bar itself, it isn’t notice-able. Nice idea though.

      Like

  9. That was awesome! Thanks to all KDE devs for these great improvements.

    The fact that there will be a legacy kickoff in store, shows that KDE devs are thinking about anything possible, and they’re respecting users!

    Liked by 1 person

  10. Sorry for offtopic. I already know that you’re using openSUSE Tumbleweed, but I’d also be interested to know what IDE/tools do you use for Plasma development. Is it KDevelop, QtCreator or VSCode? Or maybe Vim? Clang-tidy or Clazy?

    Like

    1. In terms of apps, just Kate and Konsole. That’s it! I find that IDEs generally increase the amount of overhead for me more than they provide in the form of extra features and better integration.

      for CLI tools, I use KDE’s kdesrc-build tool, git (obviously), gcc, gdb, and grep. So much grep. All the grep.

      Liked by 1 person

      1. It must be too much to ask for, but would be interested in doing a development video to help newbies like me to understand how KDE apps are being developed? Like, it’s really difficult for me to understand how a big project like DEs are developed and tested during development.

        I’m a web developer, and the habit of seeing things change real-time often scares me from writing code and then compile it to view results.

        Maybe give this thought a consideration?

        Like

        1. It’s a lot simpler than you may think: most of us devs live on git master, rebuilding everything every day or every few days, or using a distro that provides git master packages, like KDE Neon Developer or openSUSE Tumbleweed with the KDE:Unstable repos.

          More videos aren’t a bad idea, but they’re a lot more time-consuming to create than written documentation and we have a limited number of people with video creation and editing skills. Contributions are welcome. πŸ™‚

          Like

  11. Hey Nate!

    Fantastic update, this is exciting stuff!

    One little thing which stood out to me is the discount of the buttons at the bottom of the new Kickoff menu. It seems like they are kind-of grouped by function, but then the spacing between different “groups” isn’t consistent. What’s the rationale here?

    Like

    1. The bottom buttons don’t have different spacing. It could be that the icons themselves have slightly different side margins causing 1 or 2 px difference in effective spacing.

      Like

      1. Sorry, I’m not sure if I’m referring to the right thing now as the spacing of the icon is visibly different, here’s the bit I’m referring to, note the blue & pink lines measuring between icon centres.

        But maybe it makes more sense in motion. πŸ™‚

        Like

        1. Right, the buttons have different widths because their text labels are have different lengths. The widths aren’t all normalized.

          Like

          1. Because each tab’s content (icon + text) is left aligned.

            Obviously all of this can easily be tweaked.

            Like

    2. It looks like the two on the left are meant to be a pair & the 5 on the right their own group, but the spacing of the 5 isn’t even. Perhaps these left/right groups could be defined by different shade of gray? The legacy kicker’s icons were nice & evenly spaced, having all the options of what were in the legacy ‘Leave’ section spread across the lower right seems odd but i guess there’s a reason for it – maybe it makes more sense in use; perhaps the Leave button has been pressed & the sleep/hibernate/restart/shutdown ones have extended out?

      Like

  12. I have a question about the new compositor:
    If you play a full screen game, you’d normally disable the compositor to gain performance, right?

    Now, if you have two monitors plugged in and on one screen your full screen application game runs: Can you disable compositing for the this screen only? Or would multi-gpu output help here? Would you have a compositor per output?

    Last but not least, if compositing becomes disabled for the full screen game, the new compositing pipeline does not enhance the gaming experience here, or does it?

    Could you please forward these questions to Vlad? I’d be very interested. Thank you! πŸ™‚

    Like

    1. These questions are easy to answer as there’s not much very specific to kwin, but the answer varies between X.org and Wayland sessions:
      1. On the X.org session, aside from latency improvements, nothing else should change for you. There is no per screen rendering on X because of the limitations of X itself (X doesn’t have a real sense of multi-monitors, but instead map a portion of a single X screen to a monitor. Thus the compositor needs to sync the vblanking interval of one monitor. This means on setups with mixed refresh rates you often get everything vsynced to the slowest. ie. with 144hz + 60hz, everything still runs at 60fps unless you manually override which to sync with (you can do this with an environment variable in nvidia, and I find this automatically happens with tearfree enabled on AMDGPU). Now, when the compositor is toggled off like when you’re gaming, all the monitors are “toggled off” as the compositor can only draw the entire X screen.

      Now the feature you’re thinking of, which would allow the X compositor to keep working while allowing games to bypass it is called “fullscreen unredirection”. This would allow your game to avoid compositing, but not everything else. Compositing in X is an “extension” and isn’t required as you know. X can draw directly in software without a GPU involved to render everything, as it does when you toggle off. When you introduce a compositor, all the windows are drawn to an offscreen buffer, and then “redirected” to the compositor to do it’s, well, compositing, which then is actually drawn on the screen. Unredirection works by allowing windows that take up an entire display to not do this, and instead just draw the “old fashion” way as if there were no compositor at all. This was removed from kwin long ago and in my opinion was short sighted simply for the reason you describe — you lose compositing on other screens while gaming. Of course, the compositor still running does maintain it’s opengl context and does use some of the GPU, so toggling off will always in theory allow you to gain a little more performance in your game, but at the downside of everything on other monitors losing compositing.

      2. On Wayland, things are different. The compositor *is* the display server, and so there is no such thing as toggling off like we do in X. Now this gives us more flexibility when it comes to multiple displays as we can render everything individually to each actual monitor, and sync everything to the vblank interval of that display. So your 144hz + 60hz setup won’t result in the problem of everything rendering at 60fps like on the X session. (This wasn’t possible before this patch though as kwin didn’t have the ability to render each screen individually in wayland until now, which is why this is so exciting in addition to the latency improvements!). You will likely run into issues still on wayland with gaming though since everything is forced to be compositing and on wayland “ever frame is perfect” (it’s vsync’d, drawn to a back buffer and then displayed when ready, but this ofc introduces lag). There is a merge request to address this as well for kwin called “direct scanout”, which would allow games to draw directly to the display buffer. It’s MR !502 by Xaver Hugl. It’d be somewhat akin to unredirection on X, for wayland. Sadly it isn’t finished and likely won’t be in 5.21, but hopefully in 5.22. It will be another notable feature imo when ready. πŸ™‚

      3. The improvements in latency allows for everything to be snappier while compositing at the risk of potentially dropping frames (the frame might not get rendered in time before the vblank), as the goal is to have the frame rendered as close as possible to the vblank so that it’s done “just in time” but not too early that we have to wait a long time before we can display it in sync with the vblank, and not too late thus we drop it and display the last frame again (resulting in what you perceive as stutter). This is why there is a setting where you can toggle this. If you find things are stuttering, which means the frame is taking too long to render before the vblank, you can tune for higher latency and less stutter. Meanwhile if you’re okay with the odd late frame but want the lowest latency as possible, even though it would result in stutter, you can tune it to do that as well. As such, if you have the compositor turned off for a game, this change will basically not change anything in the way of performance as you’re not even using compositing πŸ™‚

      Liked by 1 person

      1. Thank you for this comprehensive answer!! πŸ™‚ To conclude, I’d have two more questions:

        1) How does this all apply to XWalyand clients/games in a Wayland session? How do they fit into the puzzle?

        2) What’s left before VRR capabilities can be implemented (under Wayland)?

        And if we have direct scan out and VRR, could we claim KWin to be 100% gaming ready or is something else still missing?

        Like

          1. Right, I could also add “Virtual Reality Headsets” to the list. But all that should be the state of the art now, shouldn’t it? πŸ™‚

            Like

        1. VRR is still left to do, you won’t see this in 5.21, but it’s planned :). As for Xwayland, funny you mention this, as Xaver literally just made a bug report for it here so direct scanout can work: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1124

          Whether those two issues are then what you consider “ready for gaming” I don’t know. I personally would start using it for gaming after !502 is merged and related bugs are addressed, but that’s just me. I don’t use VRR now anyway due to my multimonitor setup on X, so not like I’d be losing anything by switching at that point, but ofc it would be nice.

          I play osu! as well so getting my drawing tablet working with libinput/libwacom would also be nice. Right now I interact with it via xinput.

          The other thing is the security model of wayland kind of makes the ability for applications to set “keybinds” (such as discord) impossible, since if a Window isn’t focused, it won’t receive input. Now this actually works provided both discord is running through Xwayland, along with any game you’re playing is in Xwayland, but as soon as you focus an actual wayland client, Xwayland will ofc, stop receiving input, and thus your keybinds won’t work.

          It personally think it would be nice to have an ability to whitelist applications (even if you couldn’t whitelist xwayland applications specifically due to the obvious security risks) to work around this, then if you could run discord as a wayland client since this should soon be possible with Chromium’s new Wayland backend in Ozone, you could still use the keybinds, but who knows I guess.

          Anyway, there’s always improvements that could be made, others have already commented things they’d like to see too. But 5.21 isn’t the only release from KDE this year and I’d almost be willing to bet that 2021 overall will be the “Year of the Wayland Desktop” for Linux as a whole.

          Liked by 1 person

          1. Thanks for your answer again! Looking forward to find an issue about “VRR” so it becomes easier to track its state. πŸ™‚

            Like

  13. I loved seeing the improvements in Kwin, Kickoff menu, Volume Applet, and Dolphin split list animations among others, awesome, thanks!
    At Kickoff I would only correct a small lack of consistency, which is actually spread across Plasma and KDE applications, which would be the mixture of monochrome icons amid colorful icons, in the favorite section the icons should be colored, a yellow star would look great represented.
    Regarding the notification of items moved to the trash, the option to restore the item would be interesting.

    Liked by 1 person

  14. Not sure about the new volume control. If you are not playing anything, the slider is gray on either side, which might be confusing for anti-technical users.

    Like

    1. I agree. Its great idea (my daughter goes to musical primary school, and it was nightmare with remote education to have everything set up good [espeically for her and daughter, to debug if something is muted, set to low, or maybe bad device was selected as output), but but and confusing implementation. But I think that still(if people will get used to it) it’s better what we had til now (I had to run separate pulseaudio monitors, to debug problems with it on live, when lection started πŸ˜‰

      Like

  15. I rly rly hope this addresses the problem of window contents stop being updated (after a day or so in use) unless I move the window.
    I have this issue for some time and it’s so annoying… Usually that happens in Firefox and LibreOffice, in rare cases even clock does not refresh the time 😦
    The only way to get rid of them is to restart app.
    Fingers crossed πŸ™‚

    Like

  16. Awesome as always!!, quick question, Does anyone had experience this issue with global menu on gtk apps, global menu doesn’t show up when a gtk app opens by first time? I know I should report it but I just want to know if this issue is happening only to me. Nate and all devs thanks for everything.

    Like

  17. There is a plan to integrate the icons from tray (network, audio, battery…) with the icon theme choose from configurations and not the default icons from the plasma theme? For example, use the default Breeze Plasma Theme and Papirus Icon and the icons in tray follow the Papirus’ icons and not the Breeze’s icon.

    Like

  18. Hi Nate,

    Would be nice to have the new kickoff available for install as well.

    Very curios to try it (but release is still a month away…).

    Also, any news about an “official kde distro”? (i’ve read somewhere this was being discussed)

    Like

  19. I should’ve said this way earlier, but thank you very much for your hard work Nate, and the KDE dev team!
    I miss the days when computing was exciting, with every new version of software doing something awesome, now KDE is doing this.
    I particularly look forward to the Wayland improvements, since I have no choice but to run KDE Plasma with the Wayland session; the writing is on the wall for X11 and is visible right here on my laptop, in the form of severe input lag.
    One complaint so far, is that the “Formats” section in the regional settings dialog is a joke. For the Detailed Settings, if I want to use 24h or a different/custom format for time, currency, etc. the only choice I have is to select a different country’s locale, and you have to go through the whole world before finding the one with the format you like.

    Like

    1. Yeah, the formats KCM is pretty terrible. I stumbled on some screenshots of the KDE4 version and saw how much better it used to be. I completely agree with you on that subject.

      Feel free to CC yourself on https://bugs.kde.org/show_bug.cgi?id=394698 so you’ll be notified once it gets fixed.

      Thanks for your warm words! I agree, computing used to be fun and exciting, and with KDE, we’ve recaptured some of that magic.

      Like

  20. Will it now composite at the correct frame rate automatically, so you don’t have to override MaxFPS if you have a non-60Hz screen?

    Like

    1. On my RX580, all I need to do is turn on tearfree and set the primary monitor in Display settings you want it to sync with, it will run at that FPS πŸ™‚ … This works for me now on a 240hz (primary) + 75hz setup on the x session. No need for MaxFPS.

      Wayland works perfectly as well πŸ™‚

      Like

      1. I don’t see anything about primary monitor. I think that only applies when you have Multiple monitors. Maybe it has something to do with Nvidia.

        Like

  21. Related to displays, can the display settings config ask for confirmation after changing settings? I was messing with options and lost signal to my display, which then meant having to play in config files to restore. If it can ask for confirmation (default no) and revert after 15 seconds or something that’d be great.

    Great to see all the many great improvements. Looks like Plasma 5.21 will be a great release!

    Like

  22. “The clipboard applet now closes when you select a history entry with the keyboard, same as when you do so using the mouse (me: Nate Graham, Plasma 5.21)”

    Of course, when I finally got used to this behaviour yo change it back πŸ™‚

    Like

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s