Main Page

PlexyDesk

PlexyDesk is a GPU-accelerated display server and desktop shell for Linux. It renders window chrome, the dock, the menubar, and client widgets with OpenGL, signed distance field rendering, blur, and glass-style materials. Client applications render locally with libplexycanvas and submit frames to the compositor using DMA-BUF-backed buffers.

PlexyDesk at a glance
Focus GPU-accelerated compositor and desktop shell for Linux
Runtime plexyshell
Client stack libplexy, libplexycanvas, libplexyui
Build system GNU Make with C11 and C++20
License AGPL-3.0-only

What makes it interesting

  • GPU-first desktop shell with compositor effects built into the core runtime
  • Custom display protocol optimized for local client rendering and DMA-BUF frame handoff
  • macOS-inspired polish including blur, glass materials, dock magnification, and animated window effects
  • Multi-monitor oriented architecture with a built-in shell instead of a separate panel-and-window-manager stack

Core features

  • Glass materials with blur, refraction, and shader-based visual effects
  • Resolution-independent SDF rendering for chrome and widgets
  • Built-in dock with hover magnification, launch animation, and running indicators
  • Menubar integration with application title, menus, and clock
  • PlexyUI widget toolkit with buttons, sliders, text input, sidebars, drawers, list views, and more
  • Client isolation: applications render locally and submit frames to the compositor instead of drawing directly into the shell
  • Native compositor work plus active bridge work around Wayland and X11 compatibility

Quick start

# Install dependencies on Debian/Ubuntu
./install-deps.sh

# Build the compositor
make

# Run PlexyDesk
./plexyshell

For debug builds:

BUILD_MODE=debug make

Documentation guide

  • Getting Started - dependencies, build, run, systemd service, and package workflow
  • Architecture - compositor model, client libraries, protocol flow, and repository layout
  • Developer Guide - what to read first and where to work in the source tree
  • Examples - minimal PlexyUI code plus example programs worth studying
  • Development Status - current shape of the project and useful implementation notes

Repository map

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
scripts/ Packaging, systemd, and development helpers
docker/ Ubuntu container workflow for building .deb packages
tasks/ Engineering notes, implementation summaries, and optimization work

Project status

PlexyDesk is under active development. The rendering pipeline, compositor shell, dock, menubar, and widget toolkit are all present, but the project should still be treated as a developer-facing system rather than a finished general-purpose desktop environment.

Suggested next pages

If you are starting from source, begin with Getting Started. If you want to understand the shape of the codebase before building, start with Architecture and Developer Guide.