Plasma 6 November Devlog

Plasma 6 November Devlog

You haven't about all my amazing contributions to KDE Plasma in a while, have you. Well, I have indeed done some stuff.

Firstly, I'm proud to announce that the redesign of the panel settings is complete and has landed; it will be in Plasma 6. You can see here how it looks, the design didn't change that much compared to last time, though I did have to implement a couple of new panel "sizing modes".

Basically, there's now three possible options for the panel length. The first one is "Fill Available Space", and it will make sure the panel always fills all the horizontal or vertical space it has. This is pretty much regardless of where you move it, and it cannot break, which is super nice, because previously there were some bugs that incorrectly resized the panel if you moved it around.

Then, there's "Fit Content", which will make your panel act more like a dock; it will simply me the same size as the stuff that's inside of it. Now, I thought this was like, pretty simple, so I just ... implemented it and merged.

However, users are smart. They're able to find all the usecases that you had simply forgotten about. In this case, somebody reported that if you took an empty panel, with nothing inside of it, and set the size to "Fit Content" ... then the panel would literally collapse into nothing and crash plasmashell forever. You can't even log in back to change the option, plasmashell simply refuses to start. I ... didn't think about that.

So, I added a quick check to make sure that the panel never crashes because of this "Fit Content" thingy, but I also decided to add a default button to all empty panels that simply says "Add widgets..."; this way, they're never actually empty. That'd be awkward otherwise.

Then, you have "Custom", which brings back the good old ... thingies that you have to drag around in some weird way. Again, I accidentally introduced a bug with this refactor: whenever you changed the side of the screen the panel is on, from top to bottom to top and so on, the ruler would become ... thicker. It would be like this, then like this, then like this... and it would grow using the fibonacci sequence, which is pretty fast, and will quickly cover your entire monitor.

Turns out, I had kind-of messed up the "anchoring" aspects if it, I'm not even sure how, but anyhow I fixed it and that's it.

I'm also happy to say I brought back a panel visibility option, which is called "Windows Go Below". That was actually amazingly simple, because all I had to do was to say: when this option is turned on, just behave normally, except you should not reserve any space. This means that windows will take the whole screen, they don't even know there's a panel, and they'll be drawn underneath it.

I'm even happier to say that I helped another developer implement a new panel visibility option, which is called "Dodge Windows". This one was very easy as well, we simply had to say, hey, if there's any window nearby, then you should start hiding. And that was it. By the way, it looks friggin' awesome. I can't wait for all of you to try it out in Plasma 6.

Then, I've spent a lot of time (and believe me, it was a lot of time) managing the wallpaper competition. We received more than 250 entries, which is pretty amazing, but it did mean that we judges had to go through all 250 and write down our favorites, eliminate the bad ones, vote on them, and so on. Just downloading them took hours and hours and hours, even with the help of another judge. That said, after two weeks worth of work, we now have the finalists for the competition: there's Waves, there's Staircase, there's Hexworld, there's Harmony, there's Flow and there's Sun/Comet. I feel like the selection is particularly high quality and I'd love to know which ones you think would better fit KDE Plasma as default wallpapers. I do have my favorite pick but I won't say.

Then, I actually spent a lot of time trying to implement a new Plasma 6 option that prooobably won't make it to Plasma 6. Basically, we would like the header area of windows to be slightly tinted with the accent color. This is slightly awkward, because we currently have two options that are similar but different: we can use the accent color for the header area, which is a bit too strong, or we can tint using the accent color... but everything, not just the header area. Se we somehow need to merge the two things together to create the option that we actually wanted to ship for Plasma 6. Anyhow, I've… basically implemented that, except that I'm just unable to add the option to the settings page. This almost sounds like a joke, but that page is written as a .ui file, which I've recently learned is terrifying to work with. Nothing ever works and you never know why. I hate .ui files. It would probably be esier to port away from .ui to .qml than to just add that one option I need. So, erm, yeah, I wasted quite a bit of time on that.

Then, I found a pretty funny bug; basically, you know how you can right click panel widgets and look to all of their alternatives? Well, if you installed a widget from the store, regardless of the kind of widget you just installed, it would appear as an alternative of... everything. Clock alternatives? That widget. App launcher alternatives? Still that widget. This seemed veeery weird, until I discovered that the way this works is that alterantives simply say, hay, give me the list of all applets, but filter out the ones that aren't related. However, this filtering code was recently changed; now, we have Plasma 6 widgets, which are new and cooler, and then Plasma 5 widgets, which are older. The code now said: hey, take all the Plasma 6 widgets, and then filter them out. Then, take all the Plasma 5 widgets. End of sentence. Apparently, somebody simply forgot to filter out the Plasma 5 widgets. That was pretty much it. So, any widget installed from the store, which still has Plasma 5 applets, would simply be an alternative of everything, because it does not get filtered out.

Finally, I've done a lot more bugfixing. Like, a lot of it. I've fixed floating applets having a weird like on the bottom. I've fixed the awkward empty space in teh panel. I've fixed applets not floating when the floating panel is turned on. I've fixed the "Exit Edit Mode" button not exiting edit mode. I've fixed some widgets having incorrect colors in their preview. I've even fixed the task manager omitting part of teh project name in PyCharm, and even more fixes for the Overview.

And to be fully honest, that's ... still my plan. I am going to bugfix, bugfix, bugfix. The feature freeze has happened, meaning that - unless exceptions are made - we cannot add any more features to KDE Plasma. We now have three months, roughly, to make sure everything is nice and stable. And that's my plan.