Main Page: Difference between revisions

Line 2: Line 2:
= PlexyDesk =
= PlexyDesk =


'''PlexyDesk''' is a display server and desktop shell for Linux built around a modern, GPU-driven user interface. It is responsible for drawing the desktop itself, placing application windows on screen, rendering the dock and the menubar, handling animation and visual effects, and presenting a consistent UI toolkit for PlexyDesk applications.
'''PlexyDesk''' is a display server and desktop shell for Linux built around a modern, GPU driven user interface. It is responsible for drawing the desktop itself, placing application windows on screen, rendering the dock and the menubar, handling animation and visual effects, and presenting a consistent UI toolkit for PlexyDesk applications.


{| class="wikitable"
{| class="wikitable"

Revision as of 20:42, 21 March 2026

PlexyDesk

PlexyDesk is a display server and desktop shell for Linux built around a modern, GPU driven user interface. It is responsible for drawing the desktop itself, placing application windows on screen, rendering the dock and the menubar, handling animation and visual effects, and presenting a consistent UI toolkit for PlexyDesk applications.

PlexyDesk at a glance
Focus GPU-accelerated compositor and desktop shell for Linux
Runtime plexyshell
Client stack libplexy, libplexycanvas, libplexyui
License AGPL-3.0-only

What PlexyDesk does

PlexyDesk combines three responsibilities into one system:

  • it acts as the display server that decides what appears on screen
  • it acts as the desktop shell that draws the dock, menubar, background, and window chrome
  • it provides application-facing libraries so apps can create native PlexyDesk windows and controls

In practical terms, PlexyDesk is the part of the desktop that gives applications a place to live, gives windows their shape and motion, and gives the overall environment its visual identity.

Architecture in plain language

PlexyDesk is organised around three main layers:

Layer What it is responsible for
Applications Programs create windows, text, buttons, panels, lists, drawers, and other interface elements
PlexyDesk client libraries The libraries help apps describe their UI, render it locally, and send finished frames to the display server
PlexyDesk compositor and shell The compositor places windows on screen, draws the desktop shell, applies visual effects, handles input routing, and presents the final image

Instead of asking the shell to draw every application widget for them, PlexyDesk applications can render their own interface locally and then hand the finished frame to the compositor. The compositor then combines those application surfaces with system elements such as the dock, menubar, background, window chrome, and transitions. This keeps the shell visually consistent while still allowing applications to manage their own content.

Supported desktop features

Window presentation and motion

PlexyDesk provides its own window chrome and visual framing. Windows are not treated as plain rectangles with static borders; they are part of the shell experience. The compositor supports:

  • animated window movement
  • resize handling
  • window shadows and depth styling
  • rounded corners and smooth surface edges
  • minimise and transition effects
  • focus-aware rendering and presentation

Dock and menubar

PlexyDesk includes built-in desktop shell components instead of leaving those responsibilities to separate tools. Supported shell features include:

  • a dock with launch feedback and running indicators
  • icon magnification behaviour as the pointer moves across the dock
  • a menubar that can show application menus, titles, and status information
  • a desktop-level clock and shell-facing window metadata

Visual materials and effects

The rendering system supports a polished visual layer throughout the shell and the UI toolkit. This includes:

  • glass-style surfaces
  • blur-based materials
  • shader-driven lighting and depth cues
  • smooth rounded geometry
  • scalable vector-style shape rendering for interface elements
  • consistent text and surface styling across windows and widgets

These effects are part of the compositor and UI stack itself, so they can be used across the desktop rather than being isolated to one application.

Application UI toolkit

PlexyDesk includes a UI layer for building applications that look and behave like part of the environment. Supported interface building blocks include:

  • labels and buttons
  • text input and text areas
  • sliders, switches, checkboxes, and progress controls
  • separators, panels, rows, and columns
  • list views and icon views
  • sidebars, toolbars, breadcrumbs, status bars, and drawers
  • menu integration for desktop menubars

The toolkit also supports layout controls such as padding, spacing, alignment, flexible sizing, and batched updates for responsive interfaces.

Multi-display and layout awareness

PlexyDesk is built with display layout awareness in mind. The configuration and compositor layout model support:

  • more than one monitor
  • explicit placement of outputs in desktop space
  • per-layout presets
  • desktop-space positioning that keeps pointer movement and window placement coherent across screens

Backgrounds and appearance

The shell supports desktop appearance controls such as:

  • theme selection
  • UI scale factor control
  • wallpaper backgrounds
  • animated background modes
  • compositor tuning for chrome, blur, and window presentation
  • dock and terminal appearance settings through configuration

Stability through application isolation

PlexyDesk applications can render their own content locally and then submit frames to the compositor. In simple terms, that means the shell manages the desktop while applications manage their own drawing. This separation helps keep the shell in control of composition and reduces the amount of direct rendering work the shell has to do for every application surface.

Internal building blocks

Area Purpose
src/ Compositor, backend, renderer, input, protocol, and shell code
lib/ Client-side support libraries and event loop code
include/plexy/ Public API headers such as plexy_ui.h
examples/ Small client and UI examples
apps/ Application experiments such as terminal, browser, clock, calculator, and file manager
tasks/ Engineering notes, implementation summaries, and optimization work

Explore the project

  • Architecture - a deeper technical explanation of how the compositor and client stack fit together
  • PlexyUI API - generated reference for the UIKit application API
  • Developer Guide - where the important source files and subsystems live
  • Examples - small programs that show what PlexyDesk applications can look like
  • Development Status - implementation notes and the current shape of the project

Current state

PlexyDesk includes a functioning compositor shell, a builtin dock and menubar, a GPU driven rendering path, and a native application UI toolkit. Work is ongoing across performance, compatibility, and broader desktop behaviour (and optimizations), but the front-page story of the project is already clear: PlexyDesk is a complete graphical shell with its own rendering model, desktop components, and application framework.