Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Client-side decoration

From Wikipedia, the free encyclopedia
(Redirected fromClient-Side Decoration)
Graphical user interface design concept
Example of an application that uses Client-Side Decoration to draw its own window controls. (GtkHeaderBar widget onGNOME Files, 2014-01)

Client-side decoration (CSD) is the concept of allowing agraphicalapplication software to be responsible for drawing its ownwindow decorations, historically the responsibility of thewindow manager.[1]

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.[2]

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 elements) into what otherwise would be a typical window manager bar with much empty space in the maximized windows.[3]

Terminology

[edit]

The termClient-Side Decoration comes from theX Window System, where aclient is the application which renders a window and sends it to the Xserver that controls the display. The alternative is calledServer-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 inWayland, 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 acompositing window manager.

Implementations

[edit]

Widget toolkits

[edit]

GTK

[edit]

GTK was the first GUI toolkit on Linux that implemented client-side decoration using the GtkHeaderBar widget.[4]

GtkHeaderBar merges thetitle bar,menu bar andtool 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 differentcomputer form factors from desktop systems tosmall form factor devices by removing the traditional desktop-oriented parts from applications. These have first-class support inGNOME Shell and are widely used byGNOME applications.

UWP

[edit]

Universal Windows Platform applications can choose to draw their own title bars.[5]

macOS

[edit]

InmacOS,AppKit applications use client-side decoration when using the NSWindow widget.[6]

Electron

[edit]

Electron has the option to use a frame-less window (without toolbar, menu bar, tabs), however the application is responsible for drawing its own shadows.[7]

Deepin Tool Kit

[edit]
Deepin File Manager, a Qt-based application with client-side decoration.

Deepin Tool Kit is a small modifiedwidget toolkit based onQt6, it is used by theDeepin Desktop Environment.

Applications

[edit]

Notable applications with client-side decoration:

  • Steam, used its ownwidget toolkit called "VGUI" before over to a HTML-based UI rendered by Steam's embeddedCEF in 2023, though some dialogs are still either rendered natively or use VGUI.[8]
  • Firefox uses client-side decorations when the title bar is disabled.
  • Google Chrome and otherChromium based browsers use client-side decorations on Windows and macOS, and support both client and server side decorations on Linux.
  • Discord is anElectron app and thus supports client and server side decorations on Windows, macOS, & Linux.

Display servers

[edit]

Wayland

[edit]

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.[9]

  • Mutter, the compositor used byGNOME Shell, under Wayland only supports client side decoration.[10]
  • KWin, the compositor used by KDE Plasma, supports both client and server side decoration, defaulting to the latter on Wayland.[11][12]
  • cosmic-comp, the compositor used byCOSMIC, supports both client and server side decoration, defaulting to the former.[13] (cosmic-comp is not an X11 window manager.)
  • wl-roots, the Wayland compositor used bySway,labwc,Wayfire, and other smaller Wayland compositors, support both client and server side decoration.[14]

Limitations

[edit]

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

History

[edit]
  • In 2008Adobe releasedPhotoshop CS4 that uses client-side decorations.
  • In 2012Microsoft uses client-side decorations in their newMetro 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.[15]

See also

[edit]

References

[edit]
  1. ^"Client-side decorations, continued".blogs.gnome.org. Retrieved2019-01-17.
  2. ^"A small note on window decorations | Florian Müllner". Retrieved2019-11-13.
  3. ^"The CSD Initiative Is Pushing For Apps To Abandon Title Bars In Favor Of Header Bars - Phoronix".Phoronix. Retrieved2018-01-28.
  4. ^"GtkHeaderBar: GTK+ 3 Reference Manual".developer.gnome.org. Retrieved2019-01-17.
  5. ^mijacobs."Title bar customization - Windows UWP applications".docs.microsoft.com. Retrieved2019-01-17.
  6. ^"NSWindow - AppKit | Apple Developer Documentation".developer.apple.com. Retrieved2019-06-07.
  7. ^"Frameless Window | Electron".electronjs.org. Retrieved2019-01-17.
  8. ^https://youtube.com/watch?v=e8jv24NjOWQ
  9. ^Wayland protocol development, Wayland, 2019-10-07, retrieved2019-11-13
  10. ^Bernard, Tobias."Introducing the CSD Initiative – Space and Meaning".GNOME. Retrieved2018-01-28.
  11. ^Flöser, Martin (2018-01-27)."Server side decorations and Wayland".Martin's Blog. Retrieved2025-04-29.
  12. ^abZahorodnii, Vlad (2020-07-23)."CSD support in KWin".Vlad Zahorodnii's Blog. Retrieved2024-03-05.
  13. ^"GTK and QT applications ignore the COSMIC header · Issue #1132 · pop-os/cosmic-comp".GitHub. Retrieved2025-04-29.
  14. ^"wlroots / wlroots · GitLab".GitLab. Retrieved2025-04-29.
  15. ^"GTK+ 3.10 released [LWN.net]".lwn.net. Retrieved2019-01-17.


Command input
Data input-output
Informational
Containers
Navigational
Specialwindows
Related concepts
Core Applications
Extras
Development
Office
Graphics
Internet
Media
Games
Utilities
Components
User interface
GNOME 40
  • Mutter on GSK
GNOME 3
GNOME 2
Other
GNOME Base
Other
freedesktop.org
Community
People
Retrieved from "https://en.wikipedia.org/w/index.php?title=Client-side_decoration&oldid=1288027895"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp