You Got A Question? Ask    GNOME Community!

CSDs came to stay in GNOME 3.10!

This post was made with an older stylesheet

Today I installed Fedora 20 (from Nightly Build) that comes with GNOME 3.10 Beta and it (Fedora) feels amazingly stable (except the really buggy installer) for a pre-alpha release.

I had around 2 months to watch any GNOME Development process, and I run into a real surprise with what I saw! I think that GNOME 3.10 will be even better from what GNOME developers were planning 6 months ago, and it is clearly a release above expectations!

Client Side Decorations

CSD will be the first thing you will notice in GNOME 3.10 Apps. CSD combines the Title/Control + Menu Bars and all the properties and functionality of them, into a single header bar. While this approach brings Pros and Cons, the advantages seem to be stronger, and this designing (technically also) choice is expected to be welcome by the users.


GNOME Clocks 3.10 is one of the many GNOME Apps with CSD

A disadvantage of CSD is the inconsistency that brings between Apps that support them (mostly GNOME Apps) and Apps that don’t (3rd party Apps, like Firefox). However this is mostly in theory, because in practice, you won’t really be bothered from it.

What might bother you is the fact that you can’t use max/min controls within Tweak Tool. Tweak Tool still has the max/min option, but it only affects the non-CSD Apps.


The redesigned Tweak Tool 3.10, brings some really nice new features!

So what happens here, is that CSD Apps (like Tweak Tool) ignore the Max/Min Options, while the rest Apps (like Terminal) use it. As far as I know, none works to integrate Max/Min buttons in CSD.

Some obvious advantages of CSD is the better theming, the Wayland compliance, the better mouse control and the space saving -which is a lot. A bar-height of 20px into a fullscreen width of 1900px saves around 38k of meaningless pixels.

But the real advantage of CSD is that gives to developer the ability to change bars state depending on the running case of App. For instance check what’s happening in GNOME Music.


On the left is the normal state of CSD and on the right is CSD on select mode. The close button is hidden, and it will prevent us to accidentally close the App while we’re making a selection. Representing different menus depending the state of the App, is certainly a nice addition.

Another nice feature of CSD is the responsive design, at least in the case of Files. Imagine that you have GNOME Files and you navigate inside 4-5 Folders.


At this point you can drag the App from the empty space between the last Tab and the Search Button. So what’s happening if we reduce the width of the Window or increase the number of Folders?


Simple, the application will keep a fixed minimum free space to let us drag the window, by hiding folders navigation and adding those 2 arrows.

Responsiveness will be a major goal of the next GNOME releases. Imagine Grids that will reduce/increase their size and their columns number depending of the available width. For instance when you see thumbnails in GNOME Files you have notice an ungly blank space on the right when a thumb doesn’t fit. Future releases of GNOME will increase/decrease thumbs size to fit exactly to the current width, in real time as you are scaling the window.

CSD is just one of the new features of GNOME 3.10, hope you like it!

  We can't watch comments unless G+ provides an API or if you send a notification, e.g +World Of Gnome
     Sometimes is better to place your questions on GNOME Community
  • Thomas Schaz

    Guys, can you please please update your website. It is practically unusable with a mobile device… makes me crazy everytime I want to read an interesting article on my phone here…

    • alex285

      Yeap we can! I have already made a new responsive theme but I need to download database and photos to test it. I didn’t do any work in the past 2 months as I was planning to :(

      • Thomas Schaz

        great news! looking forward to the change… as long as it is planned I have hope :)

        • Marco Scannadinari

          also there is a wogue app on android

    • Michael Mistretta

      Yeah I have a Nexus 7 and the site just does not work. lol

  • Gerald

    Maybe it’s just me but I don’t get the example of the CSD preventing you from closing an application when you make a selection. Let’s say you select a bunch of artists expecting to do something and then for some reason you decide to not proceed and close the app, do you know have to delect everything first in order to close the app? Seems onerous to me if that is indeed the case.

    • alex285

      In this case you can just hit cancel, or close the App from Overview or App Menu!

      • Michael Mistretta

        Hate to beat the proverbial dead horse here but this really looks like an inconsistent mess. I don’t think CSD are a bad thing and it’s nice they’re adding the capabilities to use them to Gnome but with the current state of Gnome apps perhaps the phrase “just because you can does not mean you should” applies here.

        • Magneira

          I really like that, its very close to a mobile os in my opnion and that is not a bad thing.

  • Roland Taylor

    The last paragraph is slightly incorrect. The Window manager doesn’t ensure anything in this case; the application does (this is the whole point of CSD).

    • alex285

      Right, I correct that, thank you!

  • Marcos V.F.

    Gnome SDK is more usable in desktops if we compare with Ubuntu
    SDK (a pain in the…)…, a lot of people hates Gnome and says “it’s only good for
    tablets”, but guys…, await Ubuntu with Unity 8 and change the opinion.

  • Javier

    can the current implementation of CSD display minimize and maximize buttons? I use close-buttons only, but I think gnome classic would need the minimize button, and a lot of people like to have them.

    • alex285

      Nop, even in Classic Mode you cant do. They will work for other ways to min/max probably in 3.12

    • Emmanuele

      there’s a difference in terminology.

      GtkWindow handles client-side decorations by drawing the buttons and titles, like the window manager does. there is a key in the theme that allows you to control the buttons, using the same syntax as the Metacity/Mutter setting. this system is what is used to draw decorations under a Wayland compositor for all GTK applications, since most Wayland compositors do not allow server-side decorations.

      the core GNOME applications, like Documents, Files, Photos, etc., use a different widget, called GtkHeaderBar; this widget removes all decorations, and provides the UI patterns you see in the article. the only button supported by that widget is the close button (and yes: you can move it to the left, if you’re so inclined) but nothing else, because it follows the current GNOME HIG patterns. it’s up to the application maintainers to decide what to use, depending on the platform they are targeting.

  • Philip Witte

    Awesome! Great article, and thanks for bringing us this news and the great screenshots.

    Gnome is getting better and better, especially in terms of it’s core application design (i have a few gripes about missing features, but in general, Linux needs a super user-friendly desktop, and Gnome does a great job. Along with Elementary OS).

    With wayland support coming up fast things are looking very bright for Gnome, and I can’t wait to try out how well it works.. if only I had an Intel laptop…

  • Michael Mistretta

    CSD are fine but the current way windows work in Gnome 3.10 is a total train wreck. I do hope this is not how it’s supposed to be, it’s just awful. Case in point: Nautilus.

    I’ve been testing it out in Gnome 3.9x beta and man it just doesn’t feel right at all.

    I guess we’ll be seeing an extension to add title bars back.

    • hellsdark

      What is missing in the nautilus case ?
      The current folder is in the breadcrumb.

      • Michael Mistretta

        I do not like the removal of title bars, I don’t see any reason to remove them.

        I can understand hiding them when the window is maximized (so long as there is a sane way to close the window).

        What I have seen from testing, is just not good so far.

        Oh and not to mention when an application does have a title bar (again more inconsistencies) the padding is *huge* even by Gnome 3 standards. Also you cannot edit fonts in the gnome tweak tool for title bars any longer (though many apps have them still). I guess you could change this in dconf editor but I have not checked yet.

  • hellsdark

    “Feature releases” => “future releases” ?

  • Jiří Eischmann

    There is also one more issue with client-side decorations: when the app becomes unresponsive, you can’t simply close it by the Close button because it’s unresponsive, too, while now it’s handled by the window manager which is not depended on apps.
    But overall it looks like a nice innovation.

    • Emmanuele

      that is incorrect; well, at least it’s an incomplete interpretation.

      the window manager (or, in case of Wayland, the compositor) can already detect if an application is unresponsive (there’s a EWMH protocol called _NET_WM_PING for X11; Wayland has a similar ping protocol). it’s the same protocol that lets the window manager pop up a dialog saying “the app XYZ is unresponsive, do you want to force close it or wait?”. this is needed because whenever you press the close button (even if it’s drawn by the window manager) you get a ClientMessage with the close request, and the application has to process that event, and reply to the WM; if the application is stuck, the WM can send all the events it likes – it still won’t get an answer from the application in order to close it (this, then, will trigger the code path that ask the user if the window should be closed, in which case the process that controls that window will be killed by the WM).

      it’s trivial to extend the window manager itself so that the app window itself is shaded, or looks frozen, or gets an icon or a message super-imposed immediately as soon as it does not respond, just as an additional indicator.

      also, the window manager intercepts all the events first, by virtue of being the window manager; if it detects that the client window is unresponsive, it can update the input region and see if the user is trying to click on the area associated with the “close” button, and force quit the window. this would require some additional protocol from the toolkit, but it’s not complicated.

      in practice, though, these cases are rare, and we already have code in place that allows the user to control stuck applications, regardless of who is drawing the decoration.

      • Jiří Eischmann

        Thank you for really insightful clarification, Emmanuele! There is always stuff to learn.

  • Adonis K. (Varemenos)

    Lets remove 16 more pixels of height and make the difference bigger between gnome specific apps and “others”. The constant attempts to innovate just to innovate (without success) annoys me extremely

    • KD

      For apps like GIMP, extra 16 pixels on small screen does help a lot.
      Hovever, it will be not an issue, if all menus were into CSD: (mockup)

      • Adonis K. (Varemenos)

        But CSD will only work with Gnome apps not everything (as far as I know) so it’s useless and breaks consistency once again (just like Gnome menus did)

        • Satyajit Sahoo

          Do you really expect third party apps to be consistent with the core OS apps? It’s upto the devs. When you design an app, you should follow some design guidelines. It’s impossible to make one app look right on all DEs, coz different DEs have different design guidelines.

          • Adonis K. (Varemenos)

            Yes I do, that’s the purpose of an OS. If the DE designers/developers can’t deliver then they shouldn’t fragment the design more. You are a designer yourself, you should know that inconsistent designs ruin the user experience.

            Remember the amount of Gnome Apps and third party apps…

        • KD

          Gnome is not one to blame for not adopting others for CSD use. Yes, it tears the pattern again, but at very least, brings consistency between un- and maximized window states. I hope there will be eventually some solution to your problems with CSD, maybe some GSettings in 3.12.

  • Magneira

    Awesome, now for the old school, you guys can always use the fall back mode or other desktops ;)

  • Khurshid Alam

    So how does it work in other environment (unity, mate) where metacity or compiz is used. It would be disaster (for me) if gedit doesn’t have minimize button on Ubuntu.

  • Teucs

    I’m testing GNOME 3.10 right now and I can say that I’m really happy with it so far. CSDs, the System Menu and App Pagination all feel great. *Homer Simpson drool*

  • RJ

    Good news, in all honest who use (for real) title bars and min/max buttons? I am a pc user and never found (since start using Linux) the need for those objects any more. weird.

  • linud towerd

    is that really nautilus? look ugly like shit

  • Teucs

    May I ask how did you get the daily image installed? I just can’t get pass the partitioning because no matter what I do, it gives me an error. Did you experience this?

    • alex285

      I know, there is a bug in Anaconda. I deleted all partitions (It was a blank SSD) and I used its “auto” to make it work. Maybe it will be fixed in F20 alpha :/

  • Ertan ERBEK

    How we change that windows border width as atached picture, anyone know ?