This week in KDE: a feast for the eyes

Those finger-following touchscreen gestures have started to land, and we have a lot more than that too! This week is overflowing with positive visual changes that I think you’re all really going to like:

15-Minute Bugs Resolved

Current number of bugs: 75, down from 76. 0 added and 1 resolved:

Accent colors are no longer darkened a bit when using a dark base color scheme (Jan Blackquill, Plasma 5.24.5)

Current list of bugs

New Features

When you change the color scheme, the screen now smoothly cross-fades between the old and new colors! (David Edmundson, Plasma 5.25):

Shamelessly copied from the GNOME effect, which was a really good idea. Soon this will be extended to also cross-fade when you change the Global Theme and Plasma Style too!

Info Center’s “About this System” page now shows you more relevant information about your hardware, such as the product name, manufacturer, and serial number (Harald Sitter, Plasma 5.25):

Showing the serial number requires an extra click so that you don’t accidentally reveal it when you take a screenshot of the window, as many people like to do

The Plasma Wayland session gained support for the “screencast session restore” protocol, which means that apps using XDG portals (such as Flatpaks and Snaps) which implement the protocol (such as OBS since version 27.2.0) won’t have to ask for permission to restore the screen every time you launch them after you’ve granted it once (Aleix Pol Gonzalez, Plasma 5.25)

There’s now a new “Crashed Processes Viewer” app that can be used to graphically see crashes collected by coredumpctl and access their developer details (Harald Sitter, Plasma 5.25):

Bugfixes & Performance Improvements

KIO no longer crashes while trying to open an unreadable file in an SFTP location (Harald Sitter, kio-extras 22.04)

Album list views in Elisa no longer display the tracks in the wrong order (me: Nate Graham, Elisa 22.08)

In the Plasma Wayland session, fixed a case where a misbehaving app could cause KWin to crash (David Edmundson, Plasma 5.24.5)

In the Plasma Wayland session, changing your screen configuration in certain ways (e.g. rotating and moving a screen while not also changing its refresh rate) no longer sometimes causes KWin to crash (Vlad Zahorodnii, Plasma 5.24.5)

In the Plasma Wayland session, when a window requests activation using the official Wayland activation protocol so that it can raise its own window, but this gets denied by KWin for whatever reason, now the window’s Task Manager icon uses the orange “needs attention” background color, just like on X11 (Aleix Pol Gonzalez, Plasma 5.24.5). If you encounter an app that does *not* get the orange background on its Task Manager icon when it fails to activate (e.g. when clicking on a notification sent by Thunderbird or Telegram), this means that the app in question does not implement the activation protocol at all, and it should! So go report this to its developers.

The Global Menu widget now works properly when you turn on its optional “be a hamburger menu” mode that is typically used for vertical panels (David Redondo, Plasma 5.24.5)

In the Plasma Wayland session, KRunner now appears on the active screen when shown, just like it does on X11 (Martin Seher, Plasma 5.25)

Discover no longer sometimes hangs forever when you visit its “About” page (Aleix Pol Gonzalez, Frameworks 5.94)

Kate, KWrite, and other KTextEditor-based apps no longer crash when you define a new file type for the app to open (Waqar Ahmed, Frameworks 5.94)

Checkboxes and radio buttons in Plasma are no longer sometimes blurry, cut off at the bottom, or slightly squashed when you use certain combinations of fonts and font sizes (Noah Davis, Frameworks 5.94)

The Places Panels in Dolphin, open/save dialogs, Gwenview, and all other QtWidgets-based apps are now touch-friendly (Steffen Hartlieb, Frameworks 5.94)

User Interface Improvements

https://kde.org and all of it subdomains now auto-detect your browser language and show you content in your native language, if it’s available (Phu Nguyen, right now!)

Elisa’s playlist now displays adjacent songs from different albums in a much more compact and prettier way (Tranter Madi, Elisa 22.08):

Elisa now displays Bit Rate and Sample Rate metadata using sensical units (Jack Hill, Elisa 22.04):

The color theme configuration page in Kate and KWrite has received a big UI overhaul (Waqar Ahmed, Kate & KWrite 22.08):

In Kate and KWrite, typing an opening bracket character now automatically inserts the closing one after the text insertion point by default (Christoph Cullmann, Kate & KWrite 22.08)

The four-finger swipe up gesture to open the Overview effect now follows your fingers! (Marco Martin, Plasma 5.25):

The Network widget now shows contextually-relevant items in the expanded view of each list item, rather than a context menu. This makes them more discoverable and fully touch-compatible (me: Nate Graham, Plasma 5.25):

The Window List applet has been rewritten to modernize and future-proof its codebase, which also makes it keyboard-navigable and shows the active window’s icon and name in its Panel version, just like the classic Mac OS window menu did (Jan Blackquill, Plasma 5.25):

The “RGB Range” and “Overscan” controls in System Settings’ Display Configuration page now have help buttons you can click or hover over to learn what they do, as these are rather technical features need some explanation (Xaver Hugl, Plasma 5.25):

System Settings’ Energy Saving page now displays percentage labels by both of the brightness sliders (Edo Friedman, Plasma 5.25)

KRunner’s help button now disappears when you’ve disabled the Help runner (Alexander Lohnau, Plasma 5.25)

Placeholder messages throughout Kirigami-based KDE apps and Plasma are now more readable, nicer-looking, and have slight visual differences between actionable and informational messages (Felipe Kinoshita, Frameworks 5.94):

The Breeze icon theme’s “debug step” icons are now more visually clear and nice-looking (Jan Blackquill, Frameworks 5.94):

…And everything else

This blog only covers the tip of the iceberg! Tons of KDE apps whose development I don’t have time to follow aren’t represented here, and I also don’t mention backend refactoring, improved test coverage, and other changes that are generally not user-facing. If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, check out our 15-Minute Bug Initiative. Working on these issues makes a big difference quickly!

Otherwise, 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.

35 thoughts on “This week in KDE: a feast for the eyes

    1. And makes it heard to read the underlying text, especially on Breeze Dark! An outline could be sufficient already.

      Like

    2. That’s a pre-existing thing not added this week. The challenge here is that it uses a common library component that has this highlight, so if we change it for the Network widget, we have to change it for all of them. I’m open to suggestions that doesn’t regress the appearance for other widgets.

      Liked by 1 person

  1. Amazing news, as always.:)

    I’m having problems with the KDE.org page being in browsers language (Firefox mobile).
    Because we have close to zero news in Portuguese language so I have the planet set to English…
    Now it just keeps changing to Portuguese… Luckily, beside “release” I also have “nightly”. I had to change the browsers GUI to English to be able to read the English version.

    Also, (I know this is just the tip of the iceberg) I think bug 444457 it’s a very important on

    Liked by 1 person

    1. About 444457 I already knew it was fixed!

      It’s right there on the CC users to get notified.

      In fact, I already mentioned it last week on the comments. I was just noting -> Nate that there are people less techie that might want to know about it.

      About reporting the bug about KDE planet and my hard work… Well… Not everyone has a lot of free time, so one does what it can and fells…

      Like

  2. In

    “Placeholder messages throughout Kirigami-based KDE apps and Plasma are now more readable, nicer-looking, and have slight visual differences between actionable and informational messages”

    the “bluetooth is disabled” text is black and doesn’t match the gray place holder text of the others. Still something to address? 🙂

    Like

    1. That’s the difference when there’s a button the text is black and more attention-getting since the user is expected to do something and it’s gray when it’s just an information like “empty playlist”

      Like

  3. There are some really cool and awesome stuff in this week’s post. Like matching brackets to smooth light and dark theme transition. Oh not to mention wayland gestures. Thank you KDE community for all the great work.

    Liked by 1 person

  4. > The Plasma Wayland session gained support for the “screencast session restore” protocol
    Awesome, thank you Aleix very much. It was inconvenient that in obs you cannot prepare several scenes with different monitors.

    > In the Plasma Wayland session, when a window requests activation using the official Wayland activation protocol so that it can raise its own window, but this gets denied by KWin for whatever reason…
    Another awesome thing! Thanks again Aleix.

    I wonder what can be this “whatever reason”. Currently as I understand we are speaking about reason “not supported by kwin wayland yet”. But can the reason be “prohibited by user script” or something like that? There are some really annoying apps, for example java applets for ipmi kvm viewer, that constantly suddenly steals focus to itself from my current window. Can I prohibit the window to request focus, except the first time the window is opened or when opened manually? The problem is also complicated by the fact that app recreates windows at certain moments. I want it to be the yellow marked in task manager instead. Can this be done?

    > In the Plasma Wayland session, KRunner now appears on the active screen when shown
    Finally! Thanks Martin! Can you now please also fix similar one for yakuake? Bug number 445158

    Like

    1. As I understand, under Wayland, a window can’t request itself to be activated. The only way to pass activation from one window to another is with an xdg-activation “token”, and the only way to get and use this token is to already be the active window. So the active window can voluntarily pass activation/focus to another window, but there’s no way for an unfocused window to request that it be focused and expect the window manager to do so. I think with this latest change, when a window requests focus it will at least give the “needs attention” notification, but there’s no way to implement any functionality that needs a window to “steal” focus. See notes in this Yakuake ticket: https://bugs.kde.org/show_bug.cgi?id=402634#c3

      This, and the fact that Wayland windows can’t request/restore their own positions (so Firefox/Chromium/etc. will never be able to have proper session restore), are the only remaining frustrations for me using Wayland. I still run Chromium on XWayland just for this reason, otherwise all the windows would reopen in the middle of the screen on top of each other every time I restart. Other than that, Plasma/Wayland works perfectly for me (although, I only have a single non-HDR monitor). This is also a big part of the reason why Wine still won’t officially run on native Wayland (there’s simply no way to support the Windows API functions for positioning context menus and such).

      The really aggravating part is that this behaviour (windows not being able to steal focus or reposition themselves on the screen) seems to be a fundamental part of the Wayland design. All the discussion I can find online from the Wayland devs indicate that they want to support things like positioning windows in 3D space for VR, etc., which is why they chose to explicitly not support client window positioning. That and the fact that it apparently “never worked properly” in other environments, although session restore with window positions seems to work quite well on Windows, Mac and X11.

      Sorry for posting this rant that’s only tangentially related to KDE, but I wanted to raise awareness of Wayland design quirks that, unless they’re changed with protocol extensions, will prevent KDE (or anything else) from having this expected functionality. Many of these Wayland issues that are being reported with KDE/KWin around positioning or activation aren’t really “bugs”, KWin is just implementing the protocol as designed, and there’s no way to “fix” them without changing or extending the Wayland protocol design.

      Like

    2. It isn’t a design “feature”, it’s a technical limitation. It already works in certain contexts. For example ctrl+clicking on a file in Konsole will open it in Kate and raise Kate’s existing window if it was already open. I don’t know the technical details of how this works but other things don’t work yet, but it shows that the limitation is technical, not design.

      KWin is just implementing the protocol as designed, and there’s no way to “fix” them without changing or extending the Wayland protocol design.

      Modifying and extending it isn’t a problem. The activation protocol itself was a recent addition, created by Aleix late last year.

      Liked by 1 person

    3. Ctrl+Click in Konsole uses KIO::OpenUrlJob or KIO::ApplicationLauncherJob. Both of these ultimately call KProcessRunner, which launch this code: https://invent.kde.org/frameworks/kio/-/blob/master/src/gui/kprocessrunner.cpp#L285

      This requests a new xdgActivationToken for the currently-focused window (in this case, Konsole), and then passes that token via dbus or an environment variable to the app it’s launching (e.g. Kate) so that it can request focus for itself. This works because when the code is executed, the currently-active window (Konsole) is the one wanting to pass focus to another window (Kate).

      So, a Wayland window can request focus for itself, but only if it already has a valid xdg activation token. And according to the xdg-activation protocol extension spec (and therefore KWin), an xdg activation token is only “valid” if it belongs to the current globally-focused window. In the above example, the KIO code that Konsole calls will get the currently active window via “qGuiApp->focusWindow()” and get an xdg activation token which belongs to that window. “qGuiApp->focusWindow()” will return the globally-focused window, Konsole, because it’s executing in that application’s context. If in this example, Kate wanted to request that its own window be activated, there’s no way to do that because it doesn’t have access to the currently-focused window (Konsole) so it can’t request a valid activation token.

      Some of this probably makes sense from a focus-stealing-prevention perspective (I can’t think of a valid reason that Kate would want to activate/focus its window in that example), but it makes it impossible to have any functionality that requires a non-active window to activate and focus itself, e.g. for Yakuake to have a hotkey that focuses its window when it’s already open: https://bugs.kde.org/show_bug.cgi?id=402634

      However, the focus/activation example is usually just an annoyance. A much bigger issue is Chromium, Firefox, and other apps not having the ability to save and restore their window positions:
      https://bugzilla.mozilla.org/show_bug.cgi?id=1681989
      https://bugzilla.mozilla.org/show_bug.cgi?id=1681018

      There’s a proposed protocol extension to do something like that ( https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/18 ) and some kwin/kwayland PRs to implement it ( https://invent.kde.org/plasma/kwayland-server/-/merge_requests/69 , https://invent.kde.org/plasma/kwin/-/merge_requests/178 ) but the protocol extension MR itself seems to be stalled.

      Liked by 1 person

    1. And when it finally comes out, then you’ll start seeing all the amazing changes 5.26(or is it 6?) will bring, and you’d be like me: “oh, c’mon!” lol

      Liked by 2 people

  5. Hi Nate:

    Week for week you spend a lot of time for praising the progress and beauty of KDE…

    Wouldn’t it be more useful to spend this time for doing bug fixing yourself?

    Like

    1. Short answer: no.

      Longer explanation:
      1. My technical skills are limited; I can’t fix most bugs. For those bugs, my time is better spent on activities that I’m effective at, such as QA, project management, and communication.
      2. Activities like promo and user outreach don’t directly produce bugfixes or new features, but over time they indirectly yield greater levels of contribution by people of great technical skill who can and do fix bugs and implement features. This is largely invisible, but it’s most of what accounts for growth of the contributor base in a mostly volunteer-based project.

      Liked by 3 people

    2. I remember how I started to read this blog in 2018.
      That was a time when Plasma seemed to be almost as buggy as the previous major version, KDE 4.
      At first I thought “wow, looks like there was no progress in terms of user experience since the release of KDE 4 – kwin still crashes on random, UI is outdated, etc, and even worse – many features existed before (like tabbing different apps into one window) are gone”.
      But I decided to stay. Mostly because I had no choice (Gnome is a no go), but also I had already seen the signs of progress on several issues and each week I got a confirmation of work being done on very big and challenging bugs. Thanks you Nate for your passion and involvement.
      And now in 2022 what I read in this blog seems to me more of a polishing work, because all major blocks have been removed from the road already. I’m glad I decided to stay. And btw I don’t need tabbed apps anymore 🙂

      Liked by 2 people

    3. As an anecdotal data point supporting your second argument: Specifically your posts prompted me to sign up for KDE e. V. and give the the yearly donation, Nate. Thank you for this important aspect of your work, collecting and showing the awesome progress of the KDE project in one easy-to-access place.

      Liked by 1 person

    4. I think it’s great that there’s a guy like Nate who keeps us all in the loop, every week. I don’t remember ever being this informed about progress in any linux project before..keeps me interested too. Then again, no other linux project HAS this much news/progress to report either, and that’s not because their developers are too busy developing so they don’t have time to tell the world what they are up to. They can’t compete with this, so why bother.

      Liked by 1 person

  6. I think that support for screencast session restore is not specific to Flatpak! Portals are also used by Snap and in non-sandboxed mode.

    Like

  7. “The Network widget now shows contextually-relevant items in the expanded view of each list item, rather than a context menu. This makes them more discoverable and fully touch-compatible”

    That’s great for me because I think I’m a power user and I still didn’t know that there were right-click menus underneath the SSID network entries. I just checked, and yup, I’ve been ignorant of them all this time, this is a welcome addition.

    “The “RGB Range” and “Overscan” controls in System Settings’ Display Configuration page now have help buttons you can click or hover over to learn what they do, as these are rather technical features need some explanation”

    Excellent! I really appreciate it when technical/developer terms in System Settings are brought down to earth.

    “Placeholder messages throughout Kirigami-based KDE apps and Plasma are now more readable, nicer-looking, and have slight visual differences between actionable and informational messages”

    I really like this, it’s a small thing but it makes the interface seem more rounded out.

    Liked by 1 person

  8. Please, be nice to classical music listeners and add a “Composer” entry in Elisa’s left panel, like there’s “Artist”, “Album”, etc, 🙏. Its the only issue that keeps me using the old looking ugly Strawberry.

    Like

Leave a comment