KDE! What have I done?
26. December 2016, by Roman Gilg — 4 min read.
We count the last days of 2016 so it's time for a little recap. And since I finally brought all my KDE projects to pleasant end or intermediate states, I even find some time for it. Of course there is one major project I should've actively started working on already atleast half a month ago, but because I concentrated on other ones first haven't even started with: It's my Season of KDE project of finishing the Atomic Mode Setting support in KWin.
It's also the right project to begin this recap with, since its predecessor is basically the catalyst of it all. I did some smaller bug fixes before that, but the real progression started with my application for one of the project ideas by KWin's maintainer Martin for the Google Summer of Code 2016, which was precisely Atomic Mode Setting, and this application was ... directly rejected. To be honest though it's understandable. My application was probably one of the least effortful. I don't like to talk much and make promisses, better just do the work. And to be even more honest this wasn't the only factor, but also that I didn't know shit about how this very technical project can be realized and so how should I've described it without lots of research? I had other stuff to do back then and wanted to delve into the specifics only somewhat later.
Regardless of this setback I decided to still try my luck with it, and Martin was willing to mentor my work even if it wasn't running under the GSOC umbrella. This "work" consisted the first weeks only in trying to get some sort of understanding of it all. Yeah, I really knew shit! What's the DRM, what's a CRTC, what's a plane, what's a connector and what again is an IOCTL? All I could rely on was a short blog post by Martin and two articles on LWN, which were extensive but focused more on the kernel side of it all and not so much on the compositor. What I finally found, was an unmerged patch set for Atomic Mode Setting in the Weston compositor by Daniel Stone and an abandoned git repository with his code. It wasn't easy, but with that and Martin's help I could finish atleast the first big part until August.
After that I tried to improve the search bar in KTextEditor, whereas KTextEditor is the foundation for many important KDE apps working with plain text documents like Kate or KDevelop. Sadly the feedback I got wasn't very supportive or atleast I didn't feel very welcomed with my patches. Maybe it's my fault for always producing huge code changes, which are difficult and time consuming to review. But it's my style of work. Probably it's because I studied math, where correctness is of upmost importance, that I'm always aiming for the grand solution and don't like hacky ones. Do it one time right in a universal fashion instead of applying dozens of little fixes to singular problems of a common one is my mantra. Any way afterall I chose to abandon my patches for KTextEditor and instead concentrate on the Plasma project, where the folks seemed to be more welcoming to aspiring contributers. Maybe I'll come back to my two patches for KTextEditor at some point in the future.
But focusing my work on Plasma was the right call back then. After a short pause at the beginning of the semester in October, I worked on many different areas of the Plasma desktop and workspace. Of course it always started with an often interesting but sometimes frustrating phase of learning how all the relevant objects are called and how it's working as a single unit aswell as in combination with the huge Plasma stack in total. Basically I lived for that: I got up in the morning or most often at noon in order to do Plasma stuff and went back to sleep in the evening or way too often when it was already morning again. In between I tried to do some preliminary work on my master thesis, but it was maybe a permill of my time (apologies to my supervisor Carsten). So, what have I done?
So quite something for a nocive like me. In general I'm pleased with what I've achieved until now and I'm very happy about the invitation to join some of the core developers next February at the Plasma sprint in Affenfels. But at first this month let's get back to Atomic Mode Setting Part II. Way more to come.