November Plasma 6 update

Well, I skipped October, oops. So it’s been two months since my last Plasma 6 update, but you can find all kinds of other good stuff about Plasma 6 on https://planet.kde.org, including this post from Kai.

Probably the big news is that we released the Plasma 6 Alpha today! What does that mean? Well, go read this blog post by David Edmundson to find out! In a nutshell, you should try out the Plasma 6 Alpha out using one of these distros (or by building it yourself using kdesrc-build) if you’re an adventurous person who has a backup and wants to help make the final release better by reporting bugs or even fixing them. It really does help!

So what else happened over the past two months? Tons and tons:

The end of the big porting tasks

Yep, we finally finished* the porting and maintenance work.

This included the extremely large task of porting everything (Plasma, frameworks, and apps) away from Kirigami.AbstractListItem and Kirigami.BasicListItem. The former has been replaced with plain old upstream QtQuick.ItemDelegate, and the latter has been replaced with either one of the new Kirigami delegates or or a custom content item that uses one of them (or just totally custom content). It’s a bit of a loss in the consistency department since now we have more custom content items, but the loss isn’t that big since we did before as well, and the consistency promise of BasicListItem was never realized anyway. The work was done by Marco Martin, Arjen Hiemstra, me: Nate Graham, Carl Schwan, Ivan Tkachenko, Nicolas Fella, and others.

Speaking of Nicolas Fella, he also ported, like, everything in sight to better newer versions. Seriously, he did so much I can barely believe it. Plasma 6 and Frameworks 6 will have much nicer, more modern, more maintainable code.

*Okay, I lied. We still have one outstanding task to port widget config pages to use more standard components. But hopefully that won’t be too hard.

A huge number of user facing changes

There are almost too many to list, but here are a few:

  • Wayland session is now the default (Neal Gompa)
  • Color management on Wayland (Xaver Hugl)
  • Removed the nested frames from KDE’s QtWidgets apps and adopted the more modern Kirigami style (Carl Schwan)
  • Rectangular region screen recording in Spectacle (Noah Davis)
  • The return of the Desktop Cube effect (Vlad Zahorodnii)
  • Overhauled and modernized Plasma Panel configuration UI (Niccolò Venerandi)
  • Overview effect now incorporates the Desktop Grid and can smoothly switch to it and back, all with better and more natural touchpad gestures (Niccolò Venerandi)
  • Overhauled QML Printers page in System Settings with a better UI and lots of previously-hidden features migrated from the obscure QtWidgets apps (Mike Noe)
  • Overhauled QML Energy Saving page in System Settings with a better, more comprehensible UI (Jakob Petsovits)
  • A completely new QML Game Controllers page in System Settings to replace the old obsolete Joysticks page (Joshua Goins and Jeremy Whiting)
  • A huge amount of UI polish for Discover, including better search results and status reporting, more relevant reviews, a new screenshot carousel, and more (Marco Martin, Alessandro Astone, and Ivan Tkachenko)
  • Re-organized sidebar in System Settings (me: Nate Graham)
  • Colorblindness correction filters (Fushan Wen)
  • Simultaneous password-or-fingerprint/smartcard authentication on the lock screen (Janet Blackquill)
  • A camera usage monitor on Wayland (Fushan Wen)
  • Support for HDR in compatible games (Xaver Hugl)
  • Floating panel by default (Niccolò Venerandi)
  • The first page in Welcome Center can be customized by distros (me: Nate Graham)

It’s, like, kind of a lot of stuff! And those are only the headliner features; there are loads more UI improvements and bugfixes. Plasma 6 is gonna be big!

What’s next

We have two weeks before the “soft feature freeze” and three weeks before the hard one. Expect people to madly race to finish their work-in-progress features before them. There are still quite a few, and you can see some of them mentioned on the Plasma 6 wiki page. During this time, I expect the perceived level of bugginess and number of open bug reports to rise.

After that, we’ll have a solid 3 months of bug fixing, with regular beta and RC releases. This is a lot longer than we typically do for normal Plasma releases–3 times as long! So despite the large number of changes so far, expect the number of bug reports to fall very significantly during those 3 months, and I predict that Plasma 6.0 ends up being pretty darn stable, all things considered.

This is where I once again urge people to test out Plasma 6 and report bugs. The more good quality bug reports we get, the better the final release will be! Seriously.

But does that sound kinda scary? Another good way to contribute is to donate to KDE e.V. by becoming a supporting member via our fundraiser. We set a very ambitious goal of 500 supporting members (starting from 52–yes, really) and believe it or not, we’re more than halfway there! So it looks like we might actually be able to attain this goal. And you can help! If you haven’t already sign up to become a member today!

Bug fixes are a good thing, not a bad thing

Occasionally I see online comments saying things like, “more bugfixes week after week; KDE must be a real train wreck!” or “15 years of Wayland and it’s still needing bug fixes; it’ll never be ready!”

It can be a bit funny to see people interpret normal code maintenance as evidence of critical bugginess. But this does make some sense; most objects and systems you’re familiar with around your house and in your life don’t require constant fixing to avoid collapsing, right? They have a bounded problem space; the scope of what they’re expected to do is fixed. Your coffee maker just needs to make coffee! Tomorrow you aren’t going to ask it to make juice, and the electrical outlet it plugs into isn’t going to morph overnight into something physically incompatible with the plug. So the people who built that coffee maker just have to make sure it brews coffee correctly and reliably given the current arrangement of the world around it. Its problem space is bounded.

By contrast, the world around a piece of software is constantly changing in ways that it needs to adapt to; it has an unbounded problem space. For example, one of the libraries that the app delegates some of its work to may change in behavior and cause broken features or crashes in the app. A new CPU architecture, display server, or containerization format may be invented and deployed in an exciting new operating system that people are starting to use, so that the app needs to adapt or else not be able to run on the new OS. A new and previously unusual file format may become popular and users will start expecting the app to work with it. And often user expectations themselves change over time, such that if your app doesn’t evolve in its visuals or interaction paradigm, it will feel clunky and obsolete even if it didn’t feel that way when it was first released.

Because of this, constant maintenance is required to prevent software from becoming obsolete and unusable.

There are methods of development that acknowledge this chaos. You can minimize externally-induced bugginess by intentionally limiting the scope of the software, coding defensively, avoiding programming paradigms that impose lot of mental overhead, and not depending on 3rd-party libraries known to be unstable. But even so, the need for maintenance and bug-fixing is eternal. There’s just no real way out of it.

So the fact that we’re making regular fixes to code that was buggy or has become buggy due to external changes is a good thing, not a bad thing. The alternative isn’t “software so good that it requires no bug fixes” but rather “software that bit-rots and stops working over time due to lack of maintenance.”

Did you know you can Meta+Ctrl+Scroll to zoom on Wayland?

I didn’t! I just discovered it today while working on fixing a bug. And boy is it awesome! Just hold down the Meta (aka “Super” or “Windows) and Ctrl keys, then scroll. Boom! Note that this only works in a Plasma Wayland session.

We don’t expose this shortcut in the UI right now, so it’s quite hidden and explains why I and probably many others didn’t know about it. We’ll work on improving this.

Highlights from 2022

2022 is over, and it’s time to recap! Like in previous years, this isn’t in any way, shape, or form a list of everything that happened in KDE; it’s just an overview of the big things I noticed or was involved with. More is always available at https://planet.kde.org!

Roadmap items

Many but not all of the items I was hoping for from my 2022 roadmap are finished now.

While we didn’t get a new style for Breeze icons or inertial scrolling everywhere, we did get the merged “Formats and Languages” KCM and a major overhaul for multi-monitor support to make it all finally work properly. “The Wayland session can completely replace the X11 session” is a bit fuzzier, but I can tell you that it’s done so for me! I only ever use the X11 session for occasionally testing merge requests. This doesn’t mean it’s there for everyone, of course. But it got ever closer in 2022. And finally, the 15-minute bug initiative was a big success! We didn’t fix every one of the 142 bugs classified as “15-minute bugs” in 2022, but we did fix 95 of them! That’s a pretty good rate. We’ll keep up the focus on these quality-of-life issues in 2023, too.

Hardware Partnerships

Linux hardware vendor Tuxedo Computers started shipping Plasma by default on all of their machines, a huge win for everyone!

KFocus, makers of Kubuntu-based hardware, added some new machines to their line-up–all shipping KDE Plasma and apps by default, of course!

Slimbook released a new version of their KDE Slimbook laptop, the best yet!

Finally, the Steam Deck became a smash hit, selling over a million devices worldwide and introducing so many people to the world of KDE!

So overall it was a pretty good year for getting KDE software into more people’s hands through hardware. But there is still so much more to do. We need to get more big names here, like Dell, Lenovo, and HP!

Akademy

For the first time in a few years, we had a real, in-person Akademy. Hallelujah! It was so wonderful to reconnect with KDE folks in person. You can see videos of the sessions and talks here. And here’s my talk.

In addition, I ran for a seat on the KDE e.V. board of directors and was elected!

Professionalizing KDE

KDE has done incredibly well over its 26-year history as primarily a volunteer organization. But there was always a dirty little secret: some of the most prominent contributors along the way have been sponsored to work on KDE in a quiet way. In the same way that Red Hat quietly funds the work of a lot of GNOME people, a lot of KDE people over the years have been sponsored by Nokia, KDAB, the city of Munich, Blue Systems, Valve, and other institutions in KDE’s orbit.

And this is great! It’s a very good sign when outside companies that derive value from KDE software pay to make it even better. But it also means they’ve been paying to make it better for their use cases, their pet projects, their areas of interest.

What’s always been missing was a cadre of paid professionals to work on KDE from a big picture perspective–people who are from the KDE community, and paid by the KDE community; people who can make a living as professionals working on KDE software from a community perspective.

Well, no longer! KDE e.V. has started hiring engineers for technical positions this year, beginning with a packaging engineer. We’re working through the process of hiring a software engineer at the moment, and we have an open position for an integration engineer too.

This is big stuff! Paid professionals in the employ of KDE e.V. can counterbalance and augment the work paid for by 3rd-parties, ensuring a healthy mix, so that KDE’s future and direction can remain in the hands of KDE. It can help to ensure a certain amount of continuity of technical knowledge, so that more people get to stay in KDE once their life circumstances change to reflect a different balance of free time and monetary needs. And of course, none of this in any way diminishes the volunteer efforts the remain the backbone of KDE! On the contrary, volunteers–who by nature come and go as life circumstances and interests dictate–can really benefit from a stable core of paid professionals to interact with.

This isn’t cheap, though. If you want to help the initiative succeed and expand, please make a donation–preferably a recurring one! 🙂 If you already have, tell your buddies, your family members, your boss, anyone you know who uses and enjoys KDE software!

New Goals

This year, KDE did a third round of goal-picking, cementing this process as a key part of KDE’s culture. The three goals chosen were “KDE For All” (accessibility), “Sustainable Software”, and “Automate And Systematize Internal Processes”–three very important goals! You can see more here.

Infrastructure

This year, Bugzilla got a re-organization to make it easier for normal people to figure out where to submit a bug report:

KDE also got a better donation and fundraising platform, powered by Donorbox. This makes it much simpler for people to donate to KDE e.V.:

Finally–and this is quite new–there’s a new forum powered by Discourse in the works, currently being beta-tested and rolled out at https://discuss.kde.org. Exciting times!

Qt 6

This year KDE contributors spent an enormous amount of time porting KDE software to Qt 6, the latest version of the Qt toolkit. This is unsexy work, so I didn’t blog about it. But it’s critically important, so thanks to everyone involved! And the work is now more than half done, with most common software and nearly all of Plasma already done; you can see the progress here.

Wayland

The Wayland session made enormous progress. Slimbook started shipping their new KDE Slimbook laptops with Wayland by default, following Fedora KDE 34 doing the same in late 2021. Our list of showstoppers continues to shrink, and new issues added to it are or notably less bad then the ones they replace. There are discussions about defaulting to Wayland in Plasma 6 next year, either for the inaugural release or one of the ones soon after it. The future really is here! And if you’re tempted to grumble, “well, Wayland still doesn’t work for me for $REASON,” please do it in a bug report so developers can fix it!

Plasma

It was a big year for Plasma! Among many other changes, we got custom window tiling layouts; massive stability improvements for multi-monitor workflows; Wayland fractional scaling; non-blurry scaled XWayland apps; a UI overhaul for Discover; many KRunner UX improvements; mouse button re-binding; resizable Panel popups; finger-following touchpad gestures on Wayland; support for alternate calendars such as the Chinese lunar calendar and Islamic civil calendar; picking-and-choosing what you want to apply from Global Themes; accent color generated from wallpaper’s dominant color; and full-window tinting with the accent color.

Plus a lot more, of course! You can see everything in the Plasma release announcements, found at https://kde.org/announcements.

Apps

KDE has so many apps that I really can’t possibly do them justice here! Nevertheless, here’s an extremely small assortment:

Dolphin got a new Selection Mode, a new (optional) list view selection style, the ability to browse iOS devices using their native afc:// protocol, an eject button in the sidebar list items of ejectable/unmountable volumes.

Okular got a welcome screen, a new Breeze icon that better matches the original, a UI overhaul for its sidebar.

Gwenview gained features to annotate images and edit their brightness, contrast, and gamma.

Kate and KWrite got welcome screens, KHamburgerMenu support, searchable settings windows, keyboard macro support, and even more massive UX and feature improvements of all kinds due to an influx of new contributors and a higher tempo of regular development work.

Konsole got Sixel support, adopted KHamburgerMenu, added a plugin to save and restore text snippets, and moved its tab bar to the top of the view by default.

Spectacle was ported to Kirigami and now lets you annotate in Rectangular Region mode.

Filelight was ported to Kirigami and gained a sidebar.

Ark got a welcome screen, KHamburgerMenu support, and overhauled toolbar contents.

Elisa gained support for displaying auto-scrolling lyrics from songs using embedded LRC lyrics, .pls playlists, a real Full Screen mode, and improved presentation in Artists view, touchscreen UX improvements and overhauled playlist styling

NeoChat got encrypted chat support and a boatload of features and UI improvements!

Many QtWidgets apps adopted KHamburgerMenu for a streamlined presentation


Well that’s all for now, folks. Happy new year and let’s do awesome things in 2023!

Status of the 15-Minute Bug Initiative

It’s been almost a year since I announced the 15-Minute Bug Initiative for Plasma. In a nutshell, this initiative proposed to identify and prioritize fixing bugs you can find “within the first 15-minutes of using the system” that make Plasma look bad and feel fundamentally unstable and broken.

This initiative has been a huge success so far! We started out with 100 bugs, and 11 months later we’re down to 47! But it’s even better than that; more bugs were added to the list over time as new issues were discovered (or created as a result of regressions), so the fact that we’re at 47 today means that a lot more than 53 bugs have been fixed. How many more? Well, the total list of 15-minute bugs fixed stands at 95 today!

This means that in total, there have been 142 15-minute bugs, and we’ve fixed 95 of them, for a fix rate of 67%. That’s not too shabby!

There’s more to do, of course. The remaining 47 bugs are some of the more challenging ones, and many are quite egregiously bad. I expect the fix rate to slow as the list is reduced mostly to issues beyond the capabilities or time budgets of volunteers. That’s one of the reasons why the KDE e.V. is looking to hire a Software Platform Engineer; in addition to other responsibilities, the person we select will be working on some of these bugs. Hiring someone technically skilled enough to consistently fix these complex bugs won’t be cheap, and if you’d like to help KDE sustainably afford that cost, please consider donating to our end-of-year fundraiser! It really does help. Thanks for being awesome!

Help KDE hire more people!

KDE’s 2022 year-end fundraiser is now live! Please go donate if you can. 🙂

It’s been several years since we did a fundraiser at the end of the year, and we’re going to be more on the ball about this going forward, given how much the KDE e.V. is expanding hiring. This year’s fundraiser sets the fairly modest goal of 20k €, which will help offset the cost of some of that hiring.

But of course… there’s no reason not to exceed the goal! The more money raised, the more contributors the KDE e.V. can hire directly, effecting the kind of professionalization needed to take KDE to the next level! We have big plans and we can’t do it without your help!

I know I’ve asked for a lot of donations recently, so if you’re feeling tapped out, this is a good time to go nudge your friends and family members who you’ve converted to KDE over the years! 😉 Help KDE challenge the big dogs and win!

A better fundraising platform

KDE is getting a much more user-friendly fundraising platform, and it’s a big deal!


Currently our small-donor donation page is https://kde.org/community/donations, which lets you make a single one-time donation. To make a recurring donation, you have to visit https://relate.kde.org, which is less user-friendly, and it’s always struck me as odd to have these split up in two locations.

Well, KDE is getting a much better donation system powered by Donorbox, which I hope will turbocharge our fundraising! It’s very user-friendly and allows you to easily make recurring donations, which is important. We already set this up for the Kdenlive fundraiser, and it was a smash hit, raising 100% of the funds in the first month of the 3-month campaign. That fundraiser has since moved into stretch goals!

We’ve now done it again, rolling out a Donorbox-powered donation UI on https://kde.org/bluefriday, our tongue-in-cheek anti-black-friday fundraiser, which will become a general end-of-year campaign. This work was done by members of KDE’s promo team and fundraising working group, principally Lays Rodrigues, Carl Schwan, and Paul Brown. And so far the response has been huge! The fundraiser opened yesterday, and at the time of publication, it’s already collected 530€ from 28 generous donors! And after the new year, the current plan is to continue to use the Donorbox-powered UI for all small donations.

This really goes to show how important user-friendliness is. When you make it easy for people to give you money… they give you more money! Thank you so much, everyone.

Why is all this money stuff so important? Well, it’s how the KDE e.V. pays for hiring (such as for the Platform Software Engineer position I blogged about two days ago), development sprints, conferences, infrastructure, and similar activities that help KDE thrive and grow. If we’re gonna hugely expand technical employment–which is a major goal of mine–then we’re gonna need a lot more recurring donations to do it.

So what are you waiting for? Head over to https://kde.org/bluefriday and make a donation today. If it’s a recurring donation, we’ll love you forever! 🥰

KDE roadmap for 2022

Another year, another roadmap! Last year’s was a smashing success, as we delivered on everything. So here’s what I think we can expect in 2022. As always, this is not an official planning document or a promise; it’s just me giving you a sneak peak of some things that are in progress or about to start, and that I think will be feasible to complete before the year’s end!

Merged “Formats and Languages” KCM

The Languages and Formats pages in System Settings have long been problematic because their scopes overlapped. Not for long! Han Young is working on merging them together into one new page that handles both, making it clear what applies when and making it harder or impossible to mess up your system by choosing incompatible settings. This is in progress and I expect it to be completed sometime in the first half of 2022.

Overhauled Breeze icons

KDE designer Ken Vermette is working on improving and modernizing Breeze icons! Colorful icons will be softened and rounded a bit, and visually updated to remove old ugly elements like the long shadows. Monochrome icons will eventually get attention too. All of them are expected to become more responsive to your system color scheme, and look better when doing so. Initial work for Places icons has already been submitted and is being reviewed. This work will soon start landing piece by piece, and you can read more about it on Ken’s blog.

Multi-monitor stuff finally works properly

We plan to focus quite a bit on resolving multimonitor issues this year, and some of that effort has already borne a bit of fruit so far. But there will be a much heavier focus in 2022!

Inertial touchpad scrolling in QtQuick software

A big improvement went in recently that will make this possible to do soon! It seems quite likely that we’ll finally have this sometime in 2022.

The Wayland session can completely replace the X11 session

This is a bit of a moonshot but I think it’s possible. The list of issues on our “Wayland Showstoppers” wiki page is quite low, and when new ones are added, they’re notably lower in severity than the ones that have already been fixed. And now that NVIDIA has added GBM support to their driver and KWin already supports it, I think life should really start to get better for NVIDIA users, who represent a large chunk of dissatisfied Plasma users and those still unable to use the Wayland session at all. Let’s call this a stretch goal, but I think it’s not impossible!

“15 minute bug” initiative

This year I’d like to start something I call the “15 minute bug” initiative–an effort to fix as many of the bugs as possible that are trivially encountered within a quarter hour of basic usage. These are the kinds of issues that form permanent negative opinions in people’s minds, and reinforce the perception that KDE software is buggy and unreliable.

So far I’m limiting it to Plasma and Plasma-aligned software (e.g. KWin, System Settings, Discover) to avoid getting overwhelmed by scope creep. But if it’s wildly popular and successful, I’d love to extend it to apps and frameworks as well! Check out the current list here. I’ll be writing about this in more detail soon!


So that’s the list! What do you think? Is there anything else you think we should focus on in 2022?