I’m currently writing an article on the subject, and want to properly represent people’s views.

  • Barry@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    9 months ago

    The for argument is basically the following

    • Wayland as a protocol was designed around CSDs, protocols for SSDs came years later
    • Having the client control the CSDs simplifiies things for the compositor and apps
      • The compositor has less things to implement and test
      • Modern apps tend to prefer CSDs anyway since it provides more flexibility, very common on MacOS and Windows
      • It’s difficult to coordinate things between the client and compositor.
        • Something that annoys me about KDE is that they do this headerbar look where the top part of the application will match the color of the the titlebar. However, the top part of the application is drawn by the application and the titlebar is drawn by the compositor. But when the color changes (such as going from unfocused to focused), they do not update at the same time, so for a frame or few the top part of the application is a different color than the titlebar. That wouldn’t happen under CSDs.
    • Zamundaaa@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 months ago

      Wayland as a protocol was designed around CSDs, protocols for SSDs came years later

      That’s not an argument for anything. The core protocol isn’t useful on its own, you always need extensions that came later to even create a window. As another example, Wayland as a protocol was designed around shared memory buffers, protocols for hardware acceleration came later. Doesn’t mean you’re supposed to leave that out.

      Modern apps tend to prefer CSDs anyway since it provides more flexibility, very common on MacOS and Windows

      That too is not an argument for not implementing what a ton of apps need.

      MacOS and Windows don’t do the same sort of CSD as Gnome FYI, it’s more of a hybrid approach, where parts of the decoration are rendered by the system and parts by the app.

      It’s difficult to coordinate things between the client and compositor.

      That too isn’t relevant, libdecor doesn’t coordinate shit either. And if you want to (which is being looked into), you can absolutely sync things with SSD too.

      The actual and only reason Gnome doesn’t support SSD is that they think CSD is a “better architecture”.