HOME

TheInfoList



OR:

Client-side decoration (CSD) is the concept of allowing a graphical
application software Application software is any computer program that is intended for end-user use not operating, administering or programming the computer. An application (app, application program, software application) is any program that can be categorized as ...
to be responsible for drawing its own window decorations, historically the responsibility of the
window manager A window manager is system software that controls the placement and appearance of window (computing), windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They ...
. Sometimes client-side decoration is used to refer to the applications that don't have a traditional title bar. However, this is a misuse of the phrase, as even applications that have a basic title bar can be client side decorated. By using client-side decoration rather than traditional server-side decoration, applications are able to draw their own title bar, which allows for a wide range of possibilities to customize window decorations and add additional functionality (
graphical control element A graphical widget (also graphical control element or control) in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a computer user interacts with through direct m ...
s) into what otherwise would be a typical window manager bar with much empty space in the maximized windows.


Terminology

The term ''Client-Side Decoration'' comes from the
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
, where a ''client'' is the application which renders a window and sends it to the X ''server'' that controls the display. The alternative is called ''Server-Side Decoration'' (SSD) even though on X the decoration is drawn by the window manager, which is not actually the "server". Those terms are also used in Wayland, where a client is the application, which renders a window and sends it to the Wayland server, which controls the display and also functions as a
compositing window manager A compositing manager, or compositor, is software that provides applications with an off-screen data buffer, buffer for each window, then Compositing, composites these window buffers into an image representing the screen and writes the result into ...
.


Implementations


Widget toolkits


GTK

GTK GTK (formerly GIMP ToolKit and GTK+) is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both Free software, free and ...
was the first GUI toolkit on Linux that implemented client-side decoration using the GtkHeaderBar widget. GtkHeaderBar merges the title bar,
menu bar A menu bar is a graphical control element which contains Drop-down list, drop-down menus. The menu bar's purpose is to supply a common housing for window- or Application software, application-specific menus which provide access to such function ...
and tool bar into one unified horizontal bar in order to give more space to the application content, potentially reducing the amount of wasted space by showing empty bars. This can help to achieve a flexible UI and consistent UX across different
computer form factor Form factor is a hardware design aspect that defines and prescribes the size, shape, and other physical specifications of components, particularly in electronics. A form factor may represent a broad class of similarly sized components, or it may ...
s from desktop systems to
small form factor Small form factor (SFF) is a classification of desktop computers and for some of their components, chassis and motherboard, to indicate that they are designed in accordance with one of several standardized form factors intended to minimize the vo ...
devices by removing the traditional desktop-oriented parts from applications. These have first-class support in
GNOME Shell GNOME Shell is the graphical shell of the GNOME desktop environment starting with version 3, which was released on April 6, 2011. It provides basic functions like launching applications and switching between windows. GNOME Shell replaced GN ...
and are widely used by
GNOME applications The GNOME Core Applications (also known as Apps for GNOME) are a software suite of software applications that are packaged as part of the standard free and open-source GNOME desktop environment. GNOME Core Applications have a consistent look and ...
.


UWP

Universal Windows Platform Universal Windows Platform (UWP) is a computing platform created by Microsoft and introduced in Windows 10. The purpose of this platform is to help develop universal apps that run on Windows 10, Windows 10 Mobile (discontinued), Windows 11, Xbox ...
applications can choose to draw their own title bars.


macOS

In
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, AppKit applications use client-side decoration when using the NSWindow widget.


Electron

Electron The electron (, or in nuclear reactions) is a subatomic particle with a negative one elementary charge, elementary electric charge. It is a fundamental particle that comprises the ordinary matter that makes up the universe, along with up qua ...
has the option to use a frame-less window (without toolbar, menu bar, tabs), however the application is responsible for drawing its own shadows.


Deepin Tool Kit

Deepin Tool Kit is a small modified
widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of ...
based on Qt6, it is used by the Deepin Desktop Environment.


Applications

Notable applications with client-side decoration: *
Steam Steam is water vapor, often mixed with air or an aerosol of liquid water droplets. This may occur due to evaporation or due to boiling, where heat is applied until water reaches the enthalpy of vaporization. Saturated or superheated steam is inv ...
, used its own
widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of ...
called "VGUI" before over to a HTML-based UI rendered by Steam's embedded CEF in 2023, though some dialogs are still either rendered natively or use VGUI. *
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
uses client-side decorations when the title bar is disabled. *
Google Chrome Google Chrome is a web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS, iOS, iPadOS, an ...
and other
Chromium Chromium is a chemical element; it has Symbol (chemistry), symbol Cr and atomic number 24. It is the first element in Group 6 element, group 6. It is a steely-grey, Luster (mineralogy), lustrous, hard, and brittle transition metal. Chromium ...
based browsers use client-side decorations on Windows and macOS, and support both client and server side decorations on Linux. * Discord is an
Electron The electron (, or in nuclear reactions) is a subatomic particle with a negative one elementary charge, elementary electric charge. It is a fundamental particle that comprises the ordinary matter that makes up the universe, along with up qua ...
app and thus supports client and server side decorations on Windows, macOS, & Linux.


Display servers


Wayland

Wayland was designed to have client-side decorations (including the shadows of windows) by default, but has an optional protocol, known as xdg-decoration, which allows an application (client) to query whether the window manager supports server-side decoration and if so for a client to request it. * Mutter, the compositor used by
GNOME Shell GNOME Shell is the graphical shell of the GNOME desktop environment starting with version 3, which was released on April 6, 2011. It provides basic functions like launching applications and switching between windows. GNOME Shell replaced GN ...
, under Wayland only supports client side decoration. *
KWin KWin is a window manager for the X Window System and a Wayland (display server protocol)#Wayland compositors, Wayland compositor. It is released as a part of KDE Plasma, for which it is the default window manager. KWin can also be used on its o ...
, the compositor used by KDE Plasma, supports both client and server side decoration, defaulting to the latter on Wayland. * cosmic-comp, the compositor used by COSMIC, supports both client and server side decoration, defaulting to the former. (cosmic-comp is not an X11 window manager.) * wl-roots, the Wayland compositor used by Sway
labwcWayfire
and other smaller Wayland compositors, support both client and server side decoration.


Limitations

If the application hangs, the user cannot close it by clicking the close button in the window frame.


History

* In 2008
Adobe Adobe (from arabic: الطوب Attub ; ) is a building material made from earth and organic materials. is Spanish for mudbrick. In some English-speaking regions of Spanish heritage, such as the Southwestern United States, the term is use ...
released
Photoshop Adobe Photoshop is a raster graphics editor developed and published by Adobe for Windows and macOS. It was created in 1987 by Thomas and John Knoll. It is the most used tool for professional digital art, especially in raster graphics editin ...
CS4 that uses client-side decorations. * In 2012
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
uses client-side decorations in their new Metro design language by adding toolbar objects like back buttons to the windows title bar. * In 2013 GTK added support for client-side decorations with the release of GTK 3.10.


See also

* Ribbon (computing) * Window decoration


References

{{GNOME Graphical control elements Graphical user interface elements