Client-Side Decoration

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Evince uses client-side decorations to draw its own window controls when running on GNOME and GTK-based environments

Client-Side Decorations (CSD) is the concept of allowing an application to be responsible for drawing its own window decorations, historically the responsibility of the window manager. [1]

The term client-side comes from X Window System, where a client is the application which renders a window and sends it to the X server.

Implementations[edit]

GNOME (GTK)[edit]

The GNOME Shell can make use of client-side decorations using the GtkHeaderBar widget,[2] merging the title bar, menu bar and tool bar into one unified menu, this gives an application more space to show application content by reducing the amount of unused space usually taken up by the title bar. [3]

This approach has caused some controversy within the Linux community, as GtkHeaderBars can look out of place on other desktop environments, such as KDE Plasma.[4]

UWP[edit]

Universal windows platform applications can choose to draw their own title bars. [5]

Electron[edit]

Electron has the option to use a frame-less window, however the application is responsible for drawing its own shadows. [6]

History[edit]

  • In 2008 Adobe released Photoshop CS4 that uses client-side decorations.
  • In 2012 Microsoft uses client-side decorations in their new Metro design language by adding toolbar objects like back buttons to the windows title bar.
  • In 2013 GNOME added support for client-side decorations in 2013 with the release of GTK+ 3.10.[7]
  • In 2014 Apple introduced client-side decorations globally with OS X Mavericks.

See also[edit]

References[edit]

  1. ^ "Client-side decorations, continued | Goings on". blogs.gnome.org. Retrieved 2019-01-17.
  2. ^ "GtkHeaderBar: GTK+ 3 Reference Manual". developer.gnome.org. Retrieved 2019-01-17.
  3. ^ "The CSD Initiative Is Pushing For Apps To Abandon Title Bars In Favor Of Header Bars - Phoronix". Phoronix. Retrieved 2018-01-28.
  4. ^ "Should Apps Replace Title Bars with Header Bars?". Retrieved 2018-02-03.
  5. ^ mijacobs. "Title bar customization - Windows UWP applications". docs.microsoft.com. Retrieved 2019-01-17.
  6. ^ "Frameless Window | Electron". electronjs.org. Retrieved 2019-01-17.
  7. ^ "GTK+ 3.10 released [LWN.net]". lwn.net. Retrieved 2019-01-17.

External links[edit]