Naar inhoud springen

Client-side decoration

Uit Wikipedia, de vrije encyclopedie
GNOME Bestanden met uitgebreide CSD (2021)

Client-side decoration (CSD) is een softwareconcept. Binnen dit concept leveren grafische programma's eigen titelbalken aan, ter vervanging van de traditionele titelbalken van vensterbeheerders.[1][2] Een van de bekendste projecten die gebruikmaakt van CSD's is de Linux-werkomgeving GNOME.

Door programma's zelf garant te laten staan voor titelbalken, kunnen ontwikkelaars aanvullende functionaliteit toevoegen, zoals extra knoppen en menu's.[3] Een CSD met dergelijke functies is dus feitelijk een combinatie van een titel- en werkbalk.

De eerste implementatie van CSD's, of in elk geval de meest gelijkende, is die van GlobalView 2.1 uit 1996.[4]

De term client-side decoration is echter afkomstig uit het X Window System, waar een client een programma is dat een venster opmaakt en vervolgens naar de X-server stuurt, die op zijn beurt weer het scherm aanstuurt. Het alternatief is server-side decoration (SSD), hoewel dat op X niet van toepassing is, daar de vensterbeheerder voor de titelbalk zorgt.

Ook in Wayland worden beide termen gebezigd. De implementatie is vrijwel hetzelfde als op X, met als enige verschil dat de vensterbeheerder daar tevens een zogeheten compositing window manager is.

Implementaties

[bewerken | brontekst bewerken]

GTK was in 2013 de eerste toolkit op Linux die client-side decorations implementeerde met behulp van GtkHeaderBar.[5] GtkHeaderBar voegt de titelbalk, menubalk en werkbalk automatisch samen,[6] om zo meer ruimte te geven aan programma-inhoud en naar eigen zeggen beter gebruik te maken van de beschikbare titelbalkruimte. De implementatie wordt veelvuldig toegepast door op GNOME gerichte programma's.

Metro, UWP en Fluent

[bewerken | brontekst bewerken]

Programma's die gebruikmaken van het Universal Windows Platform (UWP) of Fluent hebben optioneel de mogelijkheid om hun eigen titelbalken aan te leveren.[7] Ook de oudere Metro-omgeving maakte hier gebruik van.

Op macOS kunnen met AppKit gemaakte programma's client-side decorations toepassen door gebruik van de NSWindow-widget.[8]

Deepin Bestandsbeheer met CSD (2024)

Deepin Tool Kit

[bewerken | brontekst bewerken]

Deepin Tool Kit (DTK) is een aangepaste versie van Qt 6. Programma's die gebruikmaken van DTK hebben de optie om CSD's toe te voegen.

Enkele bekende programma's die gebruikmaken van client-side decorations zijn:

Displayservers

[bewerken | brontekst bewerken]

In Wayland zijn client-side decorations standaard beschikbaar, maar met behulp van xdg-decoration kan worden opgevraagd of programma's server-side decorations gebruiken. Enkele Wayland-vensterbeheerders die CSD ondersteunen zijn:

  • Mutter, de vensterbeheerder van GNOME Shell, heeft alleen ondersteuning voor CSD's;[9]
  • KWin, de vensterbeheerder van KDE Plasma, heeft ondersteuning voor zowel CSD's als SSD's, maar maakt op Wayland standaard gebruik van SSD's.[10][11]
  • cosmic-comp, de vensterbeheerder van COSMIC, ondersteunt eveneens beide, maar maakt standaard gebruik van CSD's.[12]
  • wl-roots, de Wayland-compositor van Sway, labwc, Wayfire en andere kleinere omgevingen, ondersteunt ook beide.[13]

Als een programma is vastgelopen, kan het niet worden gesloten door op de sluitknop te klikken.[11]

Zie de categorie Client-side decoration van Wikimedia Commons voor mediabestanden over dit onderwerp.