You are not logged in.

#1 2010-05-14 14:46:14

Bralkein
Member
Registered: 2004-10-26
Posts: 354

Client-Side Window Decorations

I just read an interesting open letter by the KWin developer Martin Graesslin about GNOME's move towards client-side window decorations, which allows applications to draw their window decoration (title bar, minimise/maximise/close buttons, etc) instead of having it done by the WM. You can see an example of CSD in the Chromium browser's default settings, though thankfully that app lets you use a standard decoration if you want to.

Although the article is written from a KDE developer's perspective I think this topic will be of interest to anyone like me who tends to use a mixture of apps from many different DEs and GUI toolkits. It's quite disappointing IMO to see this kind of thing going on, as if inconsistency and integration aren't big enough problems on the Linux desktop anyway. *sigh* It's always nice to see what fun problems are coming down the road up ahead roll

Offline

#2 2010-05-14 14:49:15

ngoonee
Forum Fellow
From: Between Thailand and Singapore
Registered: 2009-03-17
Posts: 7,354

Re: Client-Side Window Decorations

The main compiz dev (on the compiz blog) also criticized this move.


Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.

Offline

#3 2010-05-14 15:06:36

Ogion
Member
From: Germany
Registered: 2007-12-11
Posts: 367

Re: Client-Side Window Decorations

Wow wth.
Well, i'm not using the kind of applications that would be prone to doing this (apart from firefox maybe..)

Ogion


(my-dotfiles)
"People willing to trade their freedom for temporary security deserve neither and will lose both." - Benjamin Franklin
"Enlightenment is man's leaving his self-caused immaturity." - Immanuel Kant

Offline

#4 2010-05-14 15:11:22

combuster
Member
From: Serbia
Registered: 2008-09-30
Posts: 711
Website

Re: Client-Side Window Decorations

I don't think that this is going to happen. No way that upstream dev's would accept this, so this could be done only on ubuntu for netbooks or chrome os or something like that.

But Mark's ideas are always potentially dangerous, they DO have a lot of influence on upstream development but not THAT big, this is crazy imho...

Offline

#5 2010-05-14 15:20:56

flamelab
Member
From: Athens, Hellas (Greece)
Registered: 2007-12-26
Posts: 2,160

Re: Client-Side Window Decorations

I don't like csd either.

Not only on Linux, but on Windows as well. Check out Photoshop CS4 for example. Windows 7 has many new features regarding keybindings or mouse movements (Aero Snap) and I can't use them on PS CS4.

Offline

#6 2010-05-14 15:21:35

Mad Fish
Member
Registered: 2009-09-22
Posts: 295

Re: Client-Side Window Decorations

It seems that a lot of people are against the client-side window decorations.
Main argument is consistency.

But let's face it - we have NO consistency right fucking now. GTK apps look very differently from QT apps.

Also currently there are two theming sources for a window. The contents of a window is currently being drawn by app, while deco is being drawn by window manager.
Look at default KDE Oxygen theme. It draws a nice looking gradient in a decoration. And QT apps draw matching gradient in a window itself. But not GTK apps or anything else.
All other apps break that smooth transition and look ugly. Consistency, yeah?

What I don't understand is why no one is pushing the REAL solution - to have some common userspace library, say libLinuxGUI, that draws windows, controls, provides some common actions with a window (resizing, closing, maximizing), and so on. All toolkits should end up rendering with this central library. Right now each toolkit draws with it's own theme engine. THAT is inconsistency.
And this central library should use client-side decorations. For the reasons: single source of theming and ability to put custom things in a decoration (say, like Chromium).

Really, I just don't get it, why it hadn't happened yet! Without it the consistency in Linux desktop will NEVER be achieved.

The other possible approach is to let one toolkit win and one distro win (thus becoming a true OS by itself). Then consistency will be achieved by becoming standard de facto. So let it be. Let the Ubuntu win. Really.

Last edited by Mad Fish (2010-05-14 15:26:37)

Offline

#7 2010-05-14 15:30:40

flamelab
Member
From: Athens, Hellas (Greece)
Registered: 2007-12-26
Posts: 2,160

Re: Client-Side Window Decorations

Mad Fish wrote:

It seems that a lot of people are against the client-side window decorations.
Main argument is consistency.

But let's face it - we have NO consistency right fucking now. GTK apps look very differently from QT apps.
.

But Qt apps can really look exactly like GTK apps, without hacks, because Qt is cool (:p)

Offline

#8 2010-05-14 15:45:24

JohannesSM64
Member
From: Norway
Registered: 2009-10-11
Posts: 623
Website

Re: Client-Side Window Decorations

What I don't understand is why no one is pushing the REAL solution - to have some common userspace library, say libLinuxGUI, that draws windows, controls, provides some common actions with a window (resizing, closing, maximizing)

No no no. That's monoculturism and hardcoding for a specific window management model. The name "libLinuxGUI" also suggests that it's Linux only, silently ignoring all other platforms that support X11.

Really, I just don't get it, why it hadn't happened yet! Without it the consistency in Linux desktop will NEVER be achieved.
The other possible approach is to let one toolkit win and one distro win (thus becoming a true OS by itself). Then consistency will be achieved by becoming standard de facto. So let it be. Let the Ubuntu win. Really.

Please don't turn "Linux" into another Windows or OS X. That's not what I want, and not the reason I switched in the first place. I am sure many here feel the same way.

Last edited by JohannesSM64 (2010-05-14 15:47:46)

Offline

#9 2010-05-14 16:04:08

FaN_OnLy1
Member
From: Montpellier, France
Registered: 2008-09-22
Posts: 126

Re: Client-Side Window Decorations

Really, I just don't get it, why it hadn't happened yet! Without it the consistency in Linux desktop will NEVER be achieved.
The other possible approach is to let one toolkit win and one distro win (thus becoming a true OS by itself). Then consistency will be achieved by becoming standard de facto. So let it be. Let the Ubuntu win. Really.

This is the most stupid statement i have ever heard from a linux user, really. If you want linux to be just another closed os, where choice has no place. Then come on just use Windows / MacOS. Oh and by the way, ever heard of Qtcurve ? atm it does work quite well, even if it isn't a solution, i think everyone has to have a choice regarding the toolkit they want to choose to develop their apps, and actually i think that Ubuntu offers a quite good consistency in its apps, can you tell what exactly looks so inconsistant ? Except for the whole OOo and Firefox ?

Offline

#10 2010-05-14 16:55:47

mythus
Member
From: MS Gulf Coast
Registered: 2008-05-15
Posts: 509
Website

Re: Client-Side Window Decorations

Greetings,

I heartily agree with the last three posters.

1.) QT does work well with other GTK apps, something that GTK doesn't do without hacks. However, the fact that we have QT and GTK (and EFL/EWL, FTK and others) is IMHO a major strength of the FOSS/X11 OS's (linux, bsd, opensolaris, etc...) and not a weakness. That strength is freedom! If you wan a largely consistent environment, you can have that. Will i be perfect? No, but that is a cost of freedom. You can also have a completely mismatched, inconsistent environment as well if you desire... now that is freedom!

2.) If I want monoculture. I'll use windows. If I want monoculture with style, I'll use OSX. I want nither. I want the freedom to use whatever and make it look like whatever. Even if you hink what I make is the uglisest desktop ever, I don't care and will be happy with it because it was my choice... not some guy in a tiny office who doesn't even know me forcing their style on me.

3.) That said, I think the largest problems are not the WM's and toolkits, but client side decorations. I think it would be better if apps were made to work well with either toolkit, having perhaps a hook for the major toolkits instead of inventing their own in house tool kit. That I think is where better strides can be for better consistency.. if you want that.


Legends of Nor'Ova - role playing community devoted to quality forum-based and table-top role play, home of the Legends of Nor'Ova Core Rule Book and Legends of Nor'Ova: Saga of Ablution steam punk like forum based RPG

Offline

#11 2010-05-14 17:34:04

Mad Fish
Member
Registered: 2009-09-22
Posts: 295

Re: Client-Side Window Decorations

flamelab wrote:

But Qt apps can really look exactly like GTK apps, without hacks, because Qt is cool (:p)

It will be more correct to say "almost exactly". For example, font rendering engine is different, and that is easily noticeable on clean Arch packages. With *-ubuntu patched font packages they look more similar, but not the same anyway.

Offline

#12 2010-05-14 17:39:52

Mad Fish
Member
Registered: 2009-09-22
Posts: 295

Re: Client-Side Window Decorations

Also, about "monoculture". I haven't suggested to get rid of all toolkits except one, I've only suggested to share the code that does widgets/windows/fonts rendering. That way you will still have your-so-valueable freedom to choose a toolkit, and also a freedom to make it look as you want (by providing the theme engine to that single shared code library, not to every-known-in-the-world toolkit. And it will look consistent at the same time! Pure profit.

To convince you, look at Windows (!). GTK and Qt apps use native theme there. They both look natively and consistenly.
GTK and Qt. On Windows. On Windows!!!! Not on Linux, where they are "The Way" to do apps. What a shame.

Last edited by Mad Fish (2010-05-14 17:40:15)

Offline

#13 2010-05-14 18:17:31

Bralkein
Member
Registered: 2004-10-26
Posts: 354

Re: Client-Side Window Decorations

Mad Fish wrote:

But let's face it - we have NO consistency right fucking now. GTK apps look very differently from QT apps.

Yeah and it sucks. But the only place where apps are consistent now is with the window decorations. I can manage windows of all different apps using muscle memory, because the buttons are in the same places, and it's very useful to have it that way. Surely a widespread lack of consistency is a very good reason to keep what little we currently have?

Mad Fish wrote:

What I don't understand is why no one is pushing the REAL solution - to have some common userspace library, say libLinuxGUI, that draws windows, controls, provides some common actions with a window (resizing, closing, maximizing), and so on. All toolkits should end up rendering with this central library. Right now each toolkit draws with it's own theme engine. THAT is inconsistency.
And this central library should use client-side decorations. For the reasons: single source of theming and ability to put custom things in a decoration (say, like Chromium).

Yeah, you could make such a thing and call it a GUI toolkit. Except this would be a special toolkit, because it would be so 100% perfect that all who gazed upon it would instantly renounce their old ways and unite under the banner of the One True System. Sorry for the sarcasm, but GUI consistency on Linux would already be pretty much a done deal if everyone would just agree on a single solution already. It's just not going to happen anytime soon. GTK or Qt would both be reasonable choices, but there's just not enough of an agreement for either one to become dominant. That's the problem with freedom though - everyone is able to just run around doing whatever they want all the time! Madness! The end result of all this is that you have to work in a way that acknowledges the heterogeneous nature of Linux and incorporates that into your solution, rather than unilaterally pursuing some "grand vision" which incidentally causes massive breakage for the many people who don't and won't agree.

Actually if you read the article I posted (it is long, I'm not calling you lazy here), you will see Martin Graesslin is developing a window decoration system called Aurorae which is actually independent of KWin. He's currently working on porting it to Compiz. So maybe you will see your wish of a more unified Linux GUI system, though of course Aurorae does not use CSD.

Last edited by Bralkein (2010-05-14 18:18:13)

Offline

#14 2010-05-14 18:48:10

Mad Fish
Member
Registered: 2009-09-22
Posts: 295

Re: Client-Side Window Decorations

Bralkein, it seems that you (just as few people that have posted replies above) thought that my proposal is to kill all GUI toolkits and invent a new, ultimate one, instead.

NO.

Just unify theming engines! There is place in a world for each toolkit, but theming should be done in a single place. That's what I think.

Offline

#15 2010-05-14 19:33:56

Ogion
Member
From: Germany
Registered: 2007-12-11
Posts: 367

Re: Client-Side Window Decorations

So, which ones will we drop then? Unifying theming engines also means dropping some, or all and make a new one, in favour of one specific.
(Also i'm not sure how easy it would be to sepearate "theming" from gui-toolkit)

Also i don't really have a problem with inconsistency, as almost all of my apps (the gui ones) use gtk, only one or two, that i rarely use use qt. Apart from that, i barely use window decorations at all, since i think they are a waste of space and i use a tiling wm and all my wm-actions are key-bound.
So, really, given a little configuration you can achieve consistency quite well.

Ogion


(my-dotfiles)
"People willing to trade their freedom for temporary security deserve neither and will lose both." - Benjamin Franklin
"Enlightenment is man's leaving his self-caused immaturity." - Immanuel Kant

Offline

#16 2010-05-15 09:40:47

Mad Fish
Member
Registered: 2009-09-22
Posts: 295

Re: Client-Side Window Decorations

Ogion wrote:

So, which ones will we drop then? Unifying theming engines also means dropping some, or all and make a new one, in favour of one specific.
(Also i'm not sure how easy it would be to sepearate "theming" from gui-toolkit)

Drawing of controls is already abstracted in both GTK+ and Qt, since they can look natively on Windows (use system style, instead of drawing their own).

No need to drop theme engines! See this:
linuxgui.th.png

Offline

#17 2010-05-15 10:52:54

moljac024
Member
From: Serbia
Registered: 2008-01-29
Posts: 2,676

Re: Client-Side Window Decorations

Mad Fish wrote:
Ogion wrote:

So, which ones will we drop then? Unifying theming engines also means dropping some, or all and make a new one, in favour of one specific.
(Also i'm not sure how easy it would be to sepearate "theming" from gui-toolkit)

Drawing of controls is already abstracted in both GTK+ and Qt, since they can look natively on Windows (use system style, instead of drawing their own).

No need to drop theme engines! See this:
http://img203.imageshack.us/img203/2298/linuxgui.th.png

That way a common styling library would have to be the lowest common denominator, so how do you theme different toolkit widgets?


The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
--------------------------------------------------------------------------------------------------------------
But if they tell you that I've lost my mind, maybe it's not gone just a little hard to find...

Offline

#18 2010-05-15 11:11:54

Mad Fish
Member
Registered: 2009-09-22
Posts: 295

Re: Client-Side Window Decorations

moljac024 wrote:

That way a common styling library would have to be the lowest common denominator, so how do you theme different toolkit widgets?

Look at QStyle class in Qt. That is how widgets styling is done there. This class provides some "styling primitives", that allows to draw frames, borders, buttons, etc.

So it's already somewhat like the lowest common denominator.

There are not so many different GUI primitives that are being used, really. And, don't forget that we can always add something later, if there is a feeling that it's lacking.

Offline

#19 2010-05-15 12:40:24

Ogion
Member
From: Germany
Registered: 2007-12-11
Posts: 367

Re: Client-Side Window Decorations

Hm. Ok for the noob that i am in terms of gui toolkits and such it does look reasonable to me, what you propose.

Ogion


(my-dotfiles)
"People willing to trade their freedom for temporary security deserve neither and will lose both." - Benjamin Franklin
"Enlightenment is man's leaving his self-caused immaturity." - Immanuel Kant

Offline

Board footer

Powered by FluxBB