It’s not a good bye

As you might have heard I decided to step down from my maintainer positions in KDE, especially KWin. Unfortunately I had to read very weird things about it and so I think it’s time to write about what it means that I am no longer maintainer of KWin.

First of all: I’m not leaving KDE. I’m still contributing in form of code, bug management and reviews. And I intend to continue to do this.

Second of all: I did not step down as maintainer because of the VDG or the usability group. I understand that my mail read like this, but it’s not the case. That I would step down as maintainer was inevitable and I’m sure it didn’t come as a general surprise to my fellow Plasma and KWin hackers. Personally I decided to step down as maintainer once the Wayland port is finished years ago. In my opinion KWin reached that state about two years ago. I continued to be maintainer to prepare for a good hand over. I deliberately reduced my involvement and passed responsibility to others. This was a long process and worked great in my opinion. As an example I want to point out the new and awesome blur effect introduced in 5.13. My first comment on the phabricator code review was that I’m not going to review it, but leave it to others. I think the result is great and I’m very happy how this worked out.

Over the last year I thought a lot about passing on the torch for maintainership. I realized that I contribute less and less of code but are at the same time blocking many changes due to me reviewing the code and giving a nak or through inactivity by just not reviewing the code at all. In KDE we have a saying: “Those who do, decide”. I realized I’m not doing enough anymore to decide. This results in the timing of me stepping down: I once again nak’ed a change and afterwards realized that I cannot do this. Either I need to actively veto a change I consider wrong and by that anger those who do or step down as maintainer. I decided that I don’t want to be the grumpy old conservative who is against progress and thus did the only logical consequence. It was inevitable, I would have stepped down as maintainer in the next half year for personal reasons anyway, it was just a little bit sooner to help those who are currently working on improving our products.

For KWin this means a significant improvement. A maintainer who is not responsive to reviews is not helpful to the project. By stepping down I give others the possibility to accept changes and nobody needs to wait for me to acknowledge changes. This is especially important for new contributors who we want to integrate better. Also for me personally it is a great improvement as it takes away a lot of burden for not reviewing the code. I now feel way more relaxed to do code changes I’m interested in and chiming in to reviews where I feel like I want to say something. And at the same time I can ignore other review requests as I know there will be a good review on them and it won’t depend on me. Also KWin is currently in a great position to step down as maintainer. We have more developers working on KWin than we had for years. KWin is in a great shape and I’m very positive about the future.

I read a few comments where users expressed the fear that the quality of KWin would suffer by me stepping down. I feel honored that users think I acted positively to the quality. Personally I am quite certain that the quality of KWin won’t suffer. As example I present you the 5.13 release with more user visible changes in KWin for years and me hardly contributing anything to that. Also KWin has an awesome test suite which would catch regressions.

On the other hand I read some disturbing comments about NVIDIA support getting improved by me stepping down as maintainer. Let me assure you that I never blocked any change which would be NVIDIA specific. In fact I encouraged NVIDIA to implement the changes required to get EGL stream working in KWin. Unfortunately NVIDIA has not contributed such patches.

Now a few words on how I maintained KWin. My aim as maintainer was to hand over the code to the next maintainer in a better shape than how it was when I became maintainer. I hope that I could contribute to this aim and many of my decisions as maintainer were motivated by that aim. I learned what went well in past KWin and tried to apply the lessons from it. I considered KWin as a standalone product inside KDE Plasma and judged changes from the perspective of a window manager. One of my highest rules was: no workarounds! No workarounds for broken applications, no workarounds for broken drivers and no workarounds for Plasma. No matter how many users a software has, KWin won’t add workarounds. This applies to software such as Spotify, Chromium and even GTK. If the applications or toolkits are broken, they need to be fixed, so that it works in all window managers and not just in KWin. With the time I found workarounds, e.g. for Netscape Navigator. Of course such workarounds don’t make sense, but clutter the code and negatively affect all users. Or there were workarounds for kdesktop and kicker (the KDE 3 panel, not the Plasma 5 menu). KWin is older than Plasma and I expected that Plasma would evolve and change (which did happen with Plasma 5, Plasma Active and Plasma mobile). KWin needs to be flexible enough to handle such evolution without having to rely to workarounds. Thus if something was needed we did the proper solution instead of finding fast workarounds. I think that the refusal to add workarounds helped the product KWin to achieve the level of quality we have today. Of course it results in disappointed users – as an example the NVIDIA users who would like to have a better experience – but in the long term all users benefit from the strict and hard line I used to maintain KWin.

I also learned that the number of options is a problem in KWin. We have optional features with even more optional features. Over the years I noticed that most of the breakage is in such areas. By trying to do too much we degraded the usability and quality of KWin. I reacted to this by making KWin more flexible and allow users to influence how they like to have KWin without having to carry the code in KWin. The result is KWin scripting, scripted effects, Alt+Tab QML switching themes and in general moving all of the UI elements to QML. This allowed us to streamline KWin and provide a high quality for the areas we offer, but at the same time give users the full flexibility to adjust KWin as they need. Simple by default, powerful when needed.

On the other hand this of course did not go well with all users. Many users requested features and my general response was: no. Any addition to KWin should go through scripts and be maintained by users. Of course not every user understood why they should fork an effect just to get another option. Or why I said no to a contributed patch. But in the end I think this helped to keep the quality high and have KWin in a maintainable state. In that sense I understand that not every user appreciated how I maintained KWin. The hard rules I applied in bug reports unfortunately created tension and the community working group had to step in more than once. For those users hoping that they can get their pet bugs resolved now that I stepped down as maintainer: I’m sorry to disappoint you. I still go through the bug reports and will continue to manage them the way I did as maintainer as long as my successor decides to apply different rules for maintaining KWin.

Last but not least a few words to my criticism on the VDG and usability project. First of all I need to apologize for mixing this in my mail about stepping down as maintainer. I should have raised my concerns at a different time as this was unfortunately received as I stepped down due to conflicts. I’m somebody who speaks up when he feels things go wrong. Given the way how I maintained KWin as explained above this creates tension with the usability project. My aim is to not implement every feature request and move the responsibility to users while the usability project tries to implement everything which makes users happy IMHO. This is obviously a clash of cultures and due to that I very often had to take an opposite position to what the usability project tried to achieve. I raised my concerns quite often. For me it was personally difficult to hold up such a position over a long time. Due to that as explained in my mail I lost motivation to review changes. My mail was mostly to explain why I lost motivation and I think to those in Plasma who know how I maintained KWin and what my aims are this was understandable. I was very unhappy on how this got communicated in some news postings and social media. As all those internal information were missing. I urge users to keep project internal discussions to the projects.

What I want to point out is that I really appreciate the work the usability project and also the VDG are doing. They are super enthusiastic and try to bring our software to the next level. I do not disagree with their work. The criticism I expressed in my mail was focused on the process and the transparency on how decisions are made. That’s where I personally see the need for improvements. What’s quite important to me is to point out again that those two projects are not responsible for me stepping down as maintainer.

Thank you.

27 Replies to “It’s not a good bye”

  1. Gracias Martín por el trabajo que dejaste en KDE! Sera muy bueno verte trabajar en otras áreas de este gran proyecto!

  2. Just a question: I know Plasma Wayland session misses features like Activities, KWin rules and scripting. While Activities support seems to be a Plasma issue (I understand you consider Plasma and KWin two separate projects), aren’t scripting and rules features by KWin? If yes, what does “Wayland port finished years ago” mean?

    1. Activities in KWin are unmaintained. Scripts are just not enabled because of security concerns and rules have mostly been working from the start. It was just lacking some code to enable them. So overall the port has been finished for quite some time considering what I personally wanted to achieve.

  3. Great!

    Thanks for everything and you have my support.

    +1 from KDE Catalan Translation Team and user from year 2000

  4. I just wanted to say thank you for all the work you’ve done, and continue to do. KDE is a team, sometimes it’s not perfect, but more than anything, it’s a family. Thank you for being a part of that.

  5. Thanks a million for all your hard work so far already, Martin, and for everything you will continue to do!

  6. Thanks for all your work!
    Just one question: what about the tabbed windows? I’ve heard of some patch but no more else.

  7. Thank you for and your perpetual resistance against workarounds and other bad ideas, and for the great stories you told during a KDE release party in Karlsruhe, from the dawn of KDE (*cough* Kandalf *cough*), about maintainership and teaching us how to pronounce KWin correctly. 😉

    From my user perspective, especially in the last years, KWin has become a piece of software that just works and that you can really rely on, your Plasma and everything else might crash, but KWin is always there to save you. To you and the whole KWin Team, please keep it up! 🙂

  8. Martin, thank you so much for all of your contributions to kwin. The quality of Kwin today is an embodiment of your attention to doing it right.

    Best Wishes,

  9. Thank you so much for what your have created, the work you have done to do so and the care you have taken in getting it right.

    Kwin is by some margin the best stacking window manager I have used and the biggest thing I miss when on Windows or mac.

    Thank you

  10. Thanks Martin for the years of tireless efforts towards making the software we use and love better and better, despite often gathering harsh criticism or even insults. You have always been very vocal and direct about how things should be handled, and for this, despite sometimes disagreeing with you, you gained my deepest respect and, I’m sure, that of the hardcore KDE community.
    You have done your job well, with great skill and through though times and transitional periods. You have set for KWin a solid future.

    I wish you the best in your future endavours, be them within or outside this community.

  11. Thank you for your work on KWin you made a huge impact on the project. I appreciated your hard line defense against CSD and the push towards Wayland. Best of wishes on all future endeavors.

  12. I just wanted to say that I have always supported your vision.
    Even when you made strong statements, I felt they were for the best and, looking at kwin now, I know you were right.

    Thanks for all the time you spent as maintainer!
    I hope your successors will act, as you did, with a project in mind.

    Keep doing well!

  13. Thanks Martin for your hard work – not only do we have a superb window manager as a result, but like others here I have also enjoyed reading your blog posts as it has unfolded. I hope you can now find a bit more time for the things that matter most to you, whatever those might be.

  14. Talking to you and testing your Radeon patches was like talking to a rock-star.

    Thank you for all of the years and good luck with your future endeavors!

  15. Thanks, I always loved reading your posts and having the bugs fixed by you. We once met personal, what I aprechiated, too.

  16. Thank you for all the hard work done for this project. In my opinion KWin does a good job at managing windows, there is nothing wrong with how you managed it.

  17. Thanks very much not just for KWin, but for the blogging Martin! Even now after I haven’t used KDE for a long time, I still appreciate reading about KDE because of the way you blog about it 🙂

  18. Good to hear Martin. You do incredible work there, and I say that having been on Solus Budgie now for 1.5 years, and I am switching back to KDE (on solus though) because of KWin. I had issues (graphic stutters on input, even issues in windowed mode of games with mouse pointers in Budgie, ye, took me some time to realize, I usually only have a text editor open for coding). KWin handles that just fine. KDE is a beast, and I’d love to have a lighter version (no activities, no “social desktop”, no “desktop search”), but KWin makes all the difference, it’s a great display manager and does not get in your way. You did a great job there on the product design and coding part.

    You put a lot of effort in there, and I think I can say you and the rest of the KWin team (you’re not alone anymore it seems) are doing an incredible job.

    Thank you and the team for the hard work, and I am glad you’ll stick around. Your technical knowledge is valuable in the project, in the end, you’re the one who maintained it for a long time almost alone and pushed innovation. I think that this place, pushing innovation, is probably more for you than being a maintainer, and it will free you up resources to do that.

    I hope that this step was beneficial for all, you as a person, and KWin as a product.

    Thank you for all the effort, which I’m glad will go on. That’s probably all a user can tell you – I really appreciate your commitment.

  19. Thanks for all the hard work, Martin. I contributed one small patch to KWin in my short time as a KDE contributor. The code is extremely complex, but it still makes sense. I presume thanks go to the maintainer for that.

    I hope you’ll continue your writings, whether on technology or politics. I always enjoyed reading what was on your mind.

Comments are closed.