Developer Guide
Developer Guide
This page is a practical map for engineers who want to read or modify the PlexyDesk source tree.
Read these first
tasks/README.md- current work areas and implementation notesinstall-deps.sh- the fastest view of build and system dependenciesMakefile- build modes, active runtime entry points, and source groupinginclude/plexy/plexy_ui.h- public client APIexamples/hello_uikit.c- smallest useful UI exampledocker/README.md- package build workflowplexyshell.conf.example- runtime configuration surface
Key source areas
| Path | What you will find there |
|---|---|
src/renderer/
|
Compositing, window effects, dock, menubar, shaders, async renderer, and GPU configuration |
src/backend/
|
DRM, X11-related display backend code, session management, and display backend selection |
src/input/
|
libinput integration, focus policy, and input coordination |
src/core/
|
Shell runtime, event loop, dock manager, drag/resize state, and display layout state |
src/server/
|
Compositor-side protocol server |
src/wayland/
|
Wayland bridge and XWM interoperability work |
src/canvas/
|
Canvas rendering, text, layout, styling, and animation support |
lib/
|
Client-side event loop and protocol support |
Build workflow
Standard release build:
make
Verbose debug build:
BUILD_MODE=debug make
The Makefile groups sources by subsystem and applies different compiler and logging flags for debug versus release mode. Release builds enable aggressive optimization and link-time optimization.
Public client API
The main client-facing API lives in include/plexy/plexy_ui.h. It covers:
- application and window lifecycle
- widget creation
- layout primitives such as row, column, justify, align, padding, and gap
- state changes such as visibility, text, value, and enabled state
- styling helpers such as corner radius, fill color, elevation, and glass material
- event hooks for clicks, values, text changes, keys, and menus
Example-driven learning
The best small files to read early are:
examples/hello_uikit.cexamples/canvas_demo.cexamples/drawer_demo.cexamples/settings_panel.cexamples/showcase_demo.c
Applications and experiments
The apps/ directory includes larger experiments such as:
plexy_termplexy_browserplexy_clockfilemanpcalcvim
Packaging and service helpers
docker/README.mdexplains the Ubuntu Docker package flowscripts/systemd/contains the user slice, service, installer, starter, and status helpers
Good follow-up pages
This page has not yet been filed in a published category.