Server side decorations and Wayland

I heard that GNOME is currently trying to lobby for all applications implementing CSD. One of the arguments seems to be that CSD is a must on Wayland. That’s of course not the case. Nothing in Wayland enforces CSD. Wayland itself is as ignorant about this as X11.

The situation is that GNOME Shell and Weston require CSD, but KDE Plasma and Sway do not. In fact we created a protocol (supported by GTK) that allows to negotiate with the Wayland compositor whether to use CSD or SSD.

I’m the one who drafted that protocol and I get requests about upstreaming it regularly. If I think about it, I got contacted by pretty much every toolkit about it in private – except EFL and GTK. And every time the toolkit developers tell me “this is what we want!” My answer to this is that I’m keeping out of the discussion. I’m burnt from it and are not interested in it any more.

But of course: if toolkit developers think that this is needed, don’t get fooled by GNOME asking you to implement CSD. In the same way you can ask GNOME to support server side decorations. They could do it, because they need it for XWayland anyway.

And I can totally understand you toolkit developers to not want to implement CSD. It’s a lot of work and it’s difficult to not look like an alien in the various desktop environments.

40 Replies to “Server side decorations and Wayland”

  1. Gnome’s went insane. Hard dependencies on systemd (and pulseaudio?), unstable API changes, and now this…

    But by “ELF” you meant “EFL” (Enlightenment Foundation Libraries)?

  2. Tobias was just asking before you published this today whether to contact kde about dwd. I also asked on the kde design irc what the status of it was a in the last week and didn’t get a response.

    Nobody from kde has kept gnome aware of what was going on. Most up to date info I could find on it was a reddit post where kver basically said it was stalled on your end.

    Acting like a dick towards other voulenteer based projects isn’t a good way of collaborating.

    People can check the logs on matrix if they want, was brought up on #gnome-design and the kde vdg channel.

    1. Hello there,
      It can be hard on the internet to not sound like a dick. In my opinion, both sides were rather courteous (as in, it could be worse), but lacked acknowledgement of the other side of the argument as well.

      Tobias Bernard’s post could be interpreted as trying to push CSD to all the clients. That’s not entirely true. But I can get that it feels threatening to other developers.

      DWD sounds like a good idea for the CSD initiative, as it sounds like it could help reduce the workload that is needed to support “buttons/widgets in title bar”. Which isn’t a bad idea, IMO.

      I didn’t hear a lot about DWD recently, but that is probably just due to a lack of manpower or motivation. I feel a bit concerned by this, and I am pondering right now whether to invest some time into looking into it (though I am not passionate about the subject).

      Could a joint DWD group be formed between KDE and GNOME (and other DEs as well)? I feel like the issue is long overdue. I could volunteer quite a bit of time to it on the following weeks, if necessary, but I would have to learn a lot about the internals, so there are probably people that are a better fit than I am out there.

      One last issue: isn’t SSD support somewhat mandatory as a first step towards DWD?

      1. I can’t edit my reply, but I stress that I am not affiliated with either GNOME or KDE. I am just a developer, and happen to be using KDE at the moment.

    2. I certainly don’t want to act like a dick. What was triggering the post is the fact that Tobias wrote that csd is a must on Wayland. Which could be misunderstood by toolkit developers. I’m just providing the alternative facts.

    3. That’s completely false, every single word of it. There are blog posts and discussions for over 5 years with *long* posts from Martin side explaining why it was a bad idea, There are mail threads, there are even bug reports from the gnome-side on Transmission pressuring them to go full CSD and they declining because it would break other systems.

  3. GNOME never said it was apposed to the idea of DWD outright. The GNOME project has about as much information as you have on it.

    Latest I could find when I didn’t get a response was that Reddit post that stated that the designers and developers @kde couldn’t reach an agreement and that it was stalled until they completed their Wayland port.

    At that point I took a step back from trying to get more information because KDE is volounteer project and can only stretch resources so far.

    It’s all well and good posting mockups of what things might look like with kde and csd/dwd but pushing out a series of posts after that knocking GNOME over and over and complaining that it isn’t using a standard which had no implementation on kde side is a bit rich.

    I don’t understand how certain people get off doing stuff like that while simultaneously saying they don’t have time to implement something themselves.

    The way it works for web standards is vendors implement a poc to prove it actually works first and then try and have it standardised with other vendors.

    Mozilla don’t come up with an idea for standard, fail to implement it themselves and berade Google to it’s users for not picking up that idea.

    Not being a dick isn’t as hard as it seems, last post from GNOME about KDE was one complimenting the artwork for their conference.

    Last ones from KDE towards GNOME are this and the post about desktop icons. The desktop icons one was equally snarky as KDE isn’t reverting the decision to no longer have Dolphin manage desktop icons but maybe I’m wrong about that.

    1. Sorry, but I don’t understand why you come up with DWD in reply to this blog post. I’m not involved in the development of DWD and never have been. I talked with Ken about the ideas, but that’s pretty much it.

      I wrote this blog post here not to push DWD, but to correct the misinformation published by Tobias about Wayland requiring CSD. This has nothing to do with DWD or anything.

      I also don’t want to piss on Tobias or blame him. There’s a reason why I didn’t link his blog post and why I didn’t name him but used GNOME as name.

  4. GNOME is wanting to go full blown Wayland at some point, and then they won’t need it for XWayland, so the future plans sound ok to me. Not sure what you mean by lobby, is that a thing in open source? People can make their own decisions right?

  5. I really don’t get the animosity against the GNOME project. It seems very uncalled for and definitely counterproductive. They seem burnt out just like anyone actually working on free software: interests may not align, but snarky comments simply make things worse for everyone. 🙁

    1. The point of contention here is this from the Gnome post:

      > There are ways to hide title bars on maximized and tiled windows, but these do not (and will never) work on Wayland. All window decorations are client-side on Wayland (even when they look like title bars), so there is no way to hide them at a window manager level.

      This is false, and it’s used to make a case that, quote again, “it’s high time we got started on this [initiative]” and coax people into work they’ve spoken out against before. It’s weird to call a response to this the dick move.

      1. Taking things out of context that could be said to be true, but it is not, because Tobias was talking specifically about existing methods in gnome-shell (x11) through extensions, which didn’t work in gnome-shell (wayland). It seems silly to me all a release for something like IMO.

        1. I’m happy to supply more context. Here is the next sentence:

          “All window decorations are client-side on Wayland (even when they look like title bars), so there is no way to hide them at a window manager level.”

          It’s just not correct. I don’t know why the post contains incorrect information and I’m not going to speculate about why it does. I am offering an explanation for why people are annoyed.

          1. And they are annoying for no reason. I thought English is a simpler language but apparently not. Tobias at all times was talking about gnome-shell and nothing else, overreacting so it seems silly.

            1. > . I thought English is a simpler language but apparently not. Tobias at all times was talking about gnome-shell and nothing else, overreacting so it seems silly.

              Well I turns out English is not such a simple language after all. When I read Tobias blog, my interpretation of what was written was that “SSD doesn’t work on Wayland and never will” as in there is no way to achieve SSD in Wayland. This blog post was therefore necessary to clear doubts.

            2. I and many others misunderstood. In my blog posts I tend to write KWin/Wayland or Plasma/Wayland to make clear that things are not general for Wayland. I think it would be easy for Tobias to make this more clear by explicitly stating that it is only gnome shell.

              1. If you haven’t seen it already, Tobias updated his blog post today to clarify this misunderstanding. 🙂

            3. > I thought English is a simpler language but apparently not.

              “I am very smart and you are bad at English” is thoroughly unpleasant behavior.

    2. If you don’t get the animosity… then I can only assume you haven’t been involved in computing for any significant amount of time.

      Long ago Trolltech’s QT wasn’t open-source software; and a number of Free Software / Open Source advocates took umbrage at the proprietary licensing of that toolkit. As such a two pronged plan was formed. The first prong was to create an Open Source Toolkit called “Harmony” that would replicate the QT system; and the second prong was to pick a pre-existing tool kit under a license the Free Software / Open Source advocates were agreeable too; and then massage that kit into something used to create a desktop. That original Gnome-Clique picked the GIMP Tool Kit; now more commonly known as a GTK.

      That you’ve probably never heard of “Harmony” is because… well.. that clique won. Trolltech found themselves forced into releasing QT under a GPL licensing as the Gnome-Clique wrangled positions in IBM, Red Hat, and Debian while recruiting quote/unquote “Open Source Luminaries” to attack and assault KDE/QT. A prime example of this type of assault was recorded back in 2000:

      The “Got No Organization, Messy Experience” … or G.N.O.M.E. if you will… clique… weren’t ever happy with winning the fight to make QT Open Source Software. Call it bitterness, rivalry, plain ego… it doesn’t really matter. Rather than moving the Gnome desktop to QT… as was promised long ago when the fight to make QT open source software was started… the Gnome Clique just kept going.

      But… without a goal?

      Going where?

      Those of us who have been around long enough to have traded blows with the original Gnome Clique members laughed our collective rear ends off when the Gnome 3 release pissed off so many Gnome users… the changes alone created the demand for interfaces like Mate and Cinnamon. It wasn’t a surprise to us; that was how the Gnome-Clique operated. They did whatever they wanted to do; without giving a single flip about how their decisions impacted other users.

      The Gnome-Clique hasn’t had a… goal… of what they want to do… why they even exist in the first place… for literal decades.

      To be fair, KDE/QT have run into the same problem; but KDE/QT developers jumped square on that problem and went through quite a bit of back and forth over forming a mission statement.

      Generally speaking; KDE/QT developers have a goal in mind of what they want to accomplish; where they want to go; what they want their software to do.

      Gnome does not.



      End of Story.

      Only; it’s not the end of the story. Much of the Gnome-Clique now have executive positions in places like Red Hat; senior maintainer status in Debian; a long list of projects that were based on GTK because GTK was what (insert vendor here that Gnome Clique worked at) supported; and a massive inertia of familiarity.

      So; it doesn’t matter if the Gnome-Clique has a goal or not. The Gnome-Clique is going to do what they’ve always done. Strike out on their own; get into positions where they can make sure that their software and ONLY their software gets used; then whine and howl when the rest of the computing industry has to deal with the excrement the Gnome Clique has produced.

      Point blank; Gnome needs to drop CSD.

      It’s a bad idea; it’s terrible design; and it intentionally breaks a large amount of pre-existing software… which is what the Gnome-Clique really wants. If *YOU* break *YOUR* software package to comply with what the Gnome-Clique wants; they’ve won… and if you’re a Linux developer and you want to make sure that your package works on Debian or Red Hat… you *HAVE* to *BREAK* the software *YOU* have written.

      Does this give you enough of a picture to understand the animosity against the Gnome-Clique… not just from Martin… but from the computing industry in general?

      There’s a reason developer, after developer, after developer, after developer have abandoned GTK and made the leap to QT. It’s not just because QT’s multiple licensing scheme appeals to the corporate accountant who sipped the Microsoft KoolAid; but because GTK is just terrible software… hammered to become something it wasn’t supposed to be… and used to create a Desktop Interface that spawned one of the most universally loathed desktops of all time (Windows 8; and yes; it was designed and patterned after Gnome regardless of nearly every single beta tester telling Microsoft HELL NO).

  6. > The desktop icons one was equally snarky as KDE isn’t reverting the decision to no longer have Dolphin manage desktop icons but maybe I’m wrong about that.

    My desktop icons post wasn’t about “where is the code that does desktop icons located”, it was about turning desktop icons default-off and later default-on, and in particular distributions largely ignoring us along the way because they were better in touch with users. This reads on the Gnome situation mostly in the sense that distros are doing the same there, and now additionally seem to contemplate picking up the work of reimplementing icons after they were moved out of the core offering entirely. Ubuntu’s is the post I linked in mine, for a reason, not Gnome’s.

  7. > My answer to this is that I’m keeping out of the discussion. I’m burnt from it and are not interested in it any more.

    I find it hard to believe that you would take the time to blog about a topic that you’re no longer interested in…

    1. You can easily check that I did not participate in any discussions regarding the server side decoration protocol on the Wayland mailing list.

      1. There are other reasons than lack of interest for not participating in a discussion. Again, if you’re not interested in the whole issue, why blog about it?

  8. >I’m the one who drafted that protocol and I get requests about upstreaming it regularly.

    If you get requests to upstream it, then why don’t you? I don’t get what’s your problem with that!!! Even if it gets accepted upstream it won’t be forced on anyone.
    Just send the thing upstream and get on with it!!!

    I don’t see any problem with it…

    1. I don’t want to fight for getting it into upstream. I’m sick about the discussion about it. I don’t want to have to justify why we need it. I don’t want to be told that this is all not needed because csd are better. That sums up my experience on that topic. Due to that I just are not motivated enough to spend time on it.

      1. Hum… i see your problem!!! And i understand it.
        Some people can be so anoying that they’ll simply end up with what they want just because the people they anoy want to avoid them…

        Still, it’s one of those cases where WE (every users) will loose something very important that would really advance tech because of “that” people.

        it’s a sad situation… but i understand you!

  9. So you already have the code for window decorations in KDE, but object to rearrange it such that you can show it on GNOME?
    You could arrange this code to be available as a library. How much refactoring is needed here?
    This just seems to be stubbornness.

    1. Our code is completely useless for GNOME. We use different programming languages and different toolkits. Also there is no interest to use window decorations in GNOME.

      Our code btw. is available as a library.

      1. I haven tried to use wayland yet. But isn’t the idea that a toolkit is agnostic about the wayland implementation or the environment?
        So you code isn’t supposed to be used by GNOME devs. Rather it could be used by people that want to program a QT app with the KDE window decorations, such that they don’t have to reimplement window decorations.

  10. I’m just curious, but why is it that GNOME wants CSD and KDE wants SSD? I’m pretty ignorant about the advantages and disadvantages to both.

Comments are closed.