Ubuntu / Linux news and application reviews.

gtk3-nocsd is a module used to disable client-side decorations, either globally (for all applications) or only for certain applications.

The module was updated to version 3 recently and it includes quite a few improvements:
  • added bash completion support for gtk3-nocsd wrapper;
  • added custom CSS for cosmetic improvements of the header bar look when CSDs are disabled (should be largely theme-agnostic, but tested against Adwaita);
  • drop compositor trick in Gtk+3 3.16.1 or higher; the set_titlebar function is reimplemented there anyway, and this should solve some possible issues with newer GTK3 versions;
  • selectively disable decorations: don't drop the application menu icon by using set_show_close_button (FALSE), but instead replace the decoration_layout string of header bars to remove the "icon", "minimize", "maximize" and "close" buttons. This should fix issues with missing GNOME menu (with gThumb 3.4.x as an example);
  • also override GtkDialog's GtkBuildable->add_child and the instance initializer of GtkShortcutsWindow; previously CSDs weren't removed from all windows because of that;
  • added a test that verifies that no Glib/Gtk symbols are imported during link time (to make sure preloading works with BINDNOW binaries that don't use Gtk);
  • Improvements to the documentation.

gtk3-nocsd was included in the Debian (sid and stretch) repositories about 2 months ago and it's also available in the Ubuntu 16.10 Yakkety Yak repositories. These official packages enable gtk3-nocsd automatically in non GNOME desktops (except Unity), without requiring any configuration.

The gtk3-nocsd packages in the main WebUpd8 PPA now include the official Debian packaging however, I've modified it slightly to allow the module to work without any configuration in Unity, like it does for other non-GNOME desktops.

Here's a screenshot with gtk3-nocsd enabled (and thus, client-side decorations disabled) in Ubuntu 14.04:

Ubuntu 16.04 (with Unity) supports client-side decorations so you don't really need gtk3-nocsd, but if you want to use it for whatever reason (consistency would be one), note that it won't look that good with the default Ambiance theme. You can try something like Numix theme instead:

For installing gtk3-nocsd in Ubuntu and its optional configuration, see our initial (updated) article: How To Disable GTK3 Client-Side Decorations (Header Bars)