The group Kwin developers have the most to fear isn't other KDE developers, KDE apps do and always will play well with Kwin. It isn't even individual apps that change everything like Chrome. What they, and every KDE user, has the most to fear is the numerous GTK apps that up to this point have been able to work reasonably well with Kwin and Plasma features, but with CSD decorations would suddenly break KDE users' long-established workflow.
This also explains why Gnome has been okay with CSD. Qt (and thus KDE) apps have supported GTK theming and HIGs for a long time now. So Gnome doesn't have to worry about KDE apps suddenly breaking established workflows, they know KDE devs will bend over backwards to maintain consistency as they always have.
CSD is great if done properly. For example firefox on windows with the tabs in the decoration looks much neater than on linux. But if implemented poorly I would like to have the option to tell the application "no, this sucks, please use server side decorations". Also if someone wanted to do something like unity where you merge the decoration with the panel for fullscreen windows you would probably need this. And it would be nice if games in window mode that don't use toolkits like Qt or Gtk could rely on server side decorations instead of implementing their own decorations.(which would obviously look inconsistent)
For these reasons I think SSD should be supported as a fallback and applications should have to choose between
- drawing no decorations at all and rely on server side decorations
- or use client side decorations but only if the system allows them to and provide a fallback case if it doesn't
In the end a lot of people would probably use client side decorations for applications that are native on their desktop environment and server side decorations for everything else.
EDIT: Mostly unrelated, but I also think it is important that the shadows are not part of the decoration, because otherwise different applications would have different shadows and if you for example rotate windows the shadow would rotate with them and it would look stupid.(like when you rotate the wayland terminal) So hopefully the compositors will be drawing the shadows.
Last edited by Maxjen; 08-15-2013 at 09:05 AM.
On the other hand it would massively simplify things and improve consistency for applications that don't want to draw the decorations themselves like most games.
Actually there were two projects attempting to do that kind of integration work: A theme engine for GTK (GTK-Qt-Engine) for theme compatibility and KGtk for KDE Open/Save windows in GTK applications.
Later the opposite direction was done: Gnome support was implemented directly in Qt because the Qt camp is not afraid of other projects.
Most apps don't draw their decorations themselves anyway--the toolkit does. The exceptions (Firefox, Chrome, etc.) have to deal with this already, it's just simpler with wayland (because the method of handling this is defined, you just need to hook into the right functions).Originally Posted by Honton
He is saying that the USER should be able to switch between CSD and SSD for each application individually.
The app would start off as CSD, and if the user didn't like it they could flag it to use SSD instead.
Those apps that don't use CSD would be flagged for SSD automatically.
This allows the developers to take advantage of CSD, while allowing the user to give themselves a more consistent look if they desire.
On another note:
Why is it that every post about Gnome or KDE ends up being a:
"You're f***ing wrong, Gnome is da best." <Gnome fans
"Nu-uh, KDE is better!!" <KDE fans
instead of a:
"Hurray for Gnome!" <Gnome fans
"Congrats on the Gnome team" <KDE fans.
Criticism is fine, but outright attacking people because they like something you don't is pure idiocy. Every innovation for each team drives Linux further and _HONESTLY_ each team could learn a lot from the other.
/me waits for the predicted response of anger and rage at the mention of the two teams learning from each other...
Read again what you quoted, please, and then point out where did I say devs shouldn't have the right to decide features. I clearly stated it's good to have it as an option (for example, if I understood correctly, Qt handles it with a switch to enable CSD on your app). Forcing CSD means you have no decoration by default, and your example is a corner case, and someone actually taking the time to design something as superfluous (on most cases) as the decorations is not really common, and something most try to avoid.CSD is like prometheus' fire, yes. We can make good or bad of it. The nice part is we decide. Respecting HIGs, Theming and design guidelines are a good way to do it, Gnome proved this. KDE could do this too, it is really not that hard. Or are you saying that app developers shouldn't have the right to decide and features must be done away with? That is sweet irony, I think. Gnome wants flexibility and features, KDE wants to be locked down.
Qt's "write once, deploy everywhere" should not be allowed to stop us from making the best possible Linux desktop AND reducing complexity. KDE can find other ways to make the same code behave differently.
Also, you seem to assume I am pro KDE, while I actually dislike it, and use XFCE instead.