Main Page: Difference between revisions

Refresh main page for PlexyPress editorial layout
Rework main page into technical section index
Line 5: Line 5:


<div class="pp-frontpage__lead">
<div class="pp-frontpage__lead">
<div class="pp-frontpage__label">Lead article</div>
<div class="pp-frontpage__label">System overview</div>


== The PlexyDesk desktop as one coherent system ==
== PlexyDesk technical documentation ==


<p class="pp-frontpage__deck">PlexyDesk is a Linux display server, compositor, desktop shell, and application toolkit built to present the desktop as one connected system. It is concerned with how windows move, how the dock and menubar behave, how widgets are drawn, and how applications participate in the same visual language.</p>
<p class="pp-frontpage__deck">PlexyDesk is a Linux display server, compositor, desktop shell, and application toolkit. The project combines surface composition, shell-owned desktop components, rendering infrastructure, and client-side UI libraries in one integrated system.</p>


PlexyDesk does not stop at arranging windows on screen. It draws the shell itself, manages presentation and effects, and offers native client libraries so applications can feel like part of the environment rather than separate guests inside it.
This wiki is the technical reference for PlexyDesk. It describes the compositor architecture, desktop shell behaviour, public toolkit APIs, source layout, and current implementation status. Use the section index below to navigate the main documentation areas.
 
* [[Architecture|Read the architecture briefing]]
* [[Documentation|Open the documentation desk]]
* [[Components|Browse the component index]]
</div>
</div>


<div class="pp-frontpage__story">
<div class="pp-frontpage__story pp-frontpage__story--wide">
<div class="pp-frontpage__label">Architecture spotlight</div>
<div class="pp-frontpage__label">Section index</div>


== Compositor, shell, and toolkit ==
== Main sections ==


The system is organised around a compositor that combines application surfaces with desktop-owned elements such as the dock, the menubar, wallpaper, window frames, and transitions. Client libraries help applications render their own interface and submit finished surfaces to the shell, keeping responsibilities clear while preserving a consistent desktop identity.
<div class="pp-frontpage__section-grid">


See [[Architecture]] for the full technical model, or jump to [[PlexyUI API]] for the current toolkit surface.
<div>
=== Primary sections ===
<ul class="pp-frontpage__brief-list">
<li>'''[[Documentation]]''' - top-level map of architecture notes, references, examples, and project pages.</li>
<li>'''[[Architecture]]''' - compositor, shell, client, and rendering model.</li>
<li>'''[[Development]]''' - engineering focus areas and implementation-oriented documentation hubs.</li>
<li>'''[[Components]]''' - subsystem survey and source tree structure.</li>
<li>'''[[News]]''' - project chronicle and milestone summaries.</li>
<li>'''[[Community]]''' - contribution and wiki participation guidance.</li>
</ul>
</div>
 
<div>
=== Reference pages ===
<ul class="pp-frontpage__brief-list">
<li>'''[[Developer Guide]]''' - source orientation and implementation landmarks.</li>
<li>'''[[PlexyUI API]]''' - generated reference for the current UI toolkit headers.</li>
<li>'''[[Examples]]''' - sample programs and UI usage patterns.</li>
<li>'''[[Development Status]]''' - current implementation notes and subsystem coverage.</li>
<li>'''[[Getting Started]]''' - local runtime and setup notes.</li>
</ul>
</div>
 
</div>
</div>
</div>


<div class="pp-frontpage__story">
<div class="pp-frontpage__story">
<div class="pp-frontpage__label">Project features</div>
<div class="pp-frontpage__label">What PlexyDesk is</div>


== What the desktop already supports ==
== System model ==


<ul class="pp-frontpage__brief-list">
PlexyDesk combines several layers that are often documented separately: a compositor responsible for final output composition, a desktop shell responsible for system UI such as the dock and menubar, and client libraries that let applications render native interface surfaces.
<li>GPU-driven window composition and desktop rendering.</li>
 
<li>Integrated dock and menubar owned by the shell.</li>
Applications can render their own content and submit finished surfaces to the compositor. The shell composes those surfaces with desktop-owned elements, manages input routing, and applies the presentation rules that define the environment.
<li>Window movement, resize handling, depth styling, and smooth surface presentation.</li>
<li>Native UI controls through PlexyUI, including text, panels, lists, sliders, and drawers.</li>
<li>Wallpaper, theme, scale, and appearance configuration.</li>
<li>Multi-display layout awareness and desktop-space positioning.</li>
</ul>
</div>
</div>


<div class="pp-frontpage__story">
<div class="pp-frontpage__story">
<div class="pp-frontpage__label">Reference desk</div>
<div class="pp-frontpage__label">Feature areas</div>


== Essential reading ==
== Implemented feature areas ==


* [[Documentation]] for the main documentation map
<ul class="pp-frontpage__brief-list">
* [[Developer Guide]] for source tree orientation
<li>GPU-accelerated composition of windows and desktop surfaces.</li>
* [[Examples]] for small application and UI samples
<li>Shell-owned dock, menubar, wallpaper, and window framing.</li>
* [[Development Status]] for engineering notes and implementation coverage
<li>Window movement, resizing, focus handling, transitions, and presentation effects.</li>
* [[Getting Started]] for the current environment and setup notes
<li>Client-side UI toolkit components exposed through PlexyUI and related libraries.</li>
<li>Theme, scale, wallpaper, and appearance configuration.</li>
<li>Multi-display layout and desktop-space positioning support.</li>
</ul>
</div>
</div>


<div class="pp-frontpage__story">
<div class="pp-frontpage__story">
<div class="pp-frontpage__label">Shell components</div>
<div class="pp-frontpage__label">Technical entry points</div>


== Major building blocks ==
== Key references ==


PlexyDesk is made up of several layers that cooperate closely: compositor and backend code in <code>src/</code>, client-facing libraries in <code>lib/</code>, public headers in <code>include/plexy/</code>, example programs in <code>examples/</code>, and application experiments in <code>apps/</code>. Each layer exists to explain one part of the system rather than hide it.
<ul class="pp-frontpage__brief-list">
 
<li>Start with [[Architecture]] for the runtime model.</li>
The [[Components]] page gives a structured survey of the main areas and why they matter.
<li>Use [[Components]] and [[Developer Guide]] for source orientation.</li>
<li>Use [[PlexyUI API]] for the current public UI interface surface.</li>
<li>Use [[Examples]] to inspect small application patterns.</li>
</ul>
</div>
</div>


<div class="pp-frontpage__story">
<div class="pp-frontpage__story">
<div class="pp-frontpage__label">Development notes</div>
<div class="pp-frontpage__label">Wiki interaction</div>


== What the project is refining ==
== Using this wiki ==


Current work is centred on stabilising compositor behaviour, expanding the UI toolkit, clarifying subsystem boundaries, and documenting APIs in a way that stays close to the source tree. The generated [[PlexyUI API]] reference and the living [[Development]] hub are intended to keep the publication aligned with the code.
<ul class="pp-frontpage__brief-list">
<li>[[Special:AllPages]] provides the complete page index.</li>
<li>[[Special:RecentChanges]] shows the latest documentation edits.</li>
<li>[[Special:Upload]] accepts images and video for diagrams, screenshots, and demonstrations.</li>
<li>Talk pages remain available for technical discussion and page review.</li>
</ul>
</div>
</div>


<div class="pp-frontpage__story">
<div class="pp-frontpage__story">
<div class="pp-frontpage__label">Community and record</div>
<div class="pp-frontpage__label">Current scope</div>


== A working journal for the project ==
== Current documentation scope ==


This wiki is meant to read like a publication, but it also acts as the project record: pages can be edited collaboratively, images and videos can be uploaded to illustrate work, and talk pages remain available for discussion. Visit [[Community]] for editorial and collaboration pointers, or [[News]] for the project chronicle.
The current wiki covers architecture, source structure, generated API reference, example programs, implementation status, and project record pages. It will continue to expand as more subsystem documentation is extracted directly from the codebase.
</div>
</div>


</div>
</div>

Revision as of 04:46, 22 March 2026


System overview

PlexyDesk technical documentation

PlexyDesk is a Linux display server, compositor, desktop shell, and application toolkit. The project combines surface composition, shell-owned desktop components, rendering infrastructure, and client-side UI libraries in one integrated system.

This wiki is the technical reference for PlexyDesk. It describes the compositor architecture, desktop shell behaviour, public toolkit APIs, source layout, and current implementation status. Use the section index below to navigate the main documentation areas.

Section index

Main sections

Primary sections

  • Documentation - top-level map of architecture notes, references, examples, and project pages.
  • Architecture - compositor, shell, client, and rendering model.
  • Development - engineering focus areas and implementation-oriented documentation hubs.
  • Components - subsystem survey and source tree structure.
  • News - project chronicle and milestone summaries.
  • Community - contribution and wiki participation guidance.

Reference pages

What PlexyDesk is

System model

PlexyDesk combines several layers that are often documented separately: a compositor responsible for final output composition, a desktop shell responsible for system UI such as the dock and menubar, and client libraries that let applications render native interface surfaces.

Applications can render their own content and submit finished surfaces to the compositor. The shell composes those surfaces with desktop-owned elements, manages input routing, and applies the presentation rules that define the environment.

Feature areas

Implemented feature areas

  • GPU-accelerated composition of windows and desktop surfaces.
  • Shell-owned dock, menubar, wallpaper, and window framing.
  • Window movement, resizing, focus handling, transitions, and presentation effects.
  • Client-side UI toolkit components exposed through PlexyUI and related libraries.
  • Theme, scale, wallpaper, and appearance configuration.
  • Multi-display layout and desktop-space positioning support.
Technical entry points

Key references

Wiki interaction

Using this wiki

  • Special:AllPages provides the complete page index.
  • Special:RecentChanges shows the latest documentation edits.
  • Special:Upload accepts images and video for diagrams, screenshots, and demonstrations.
  • Talk pages remain available for technical discussion and page review.
Current scope

Current documentation scope

The current wiki covers architecture, source structure, generated API reference, example programs, implementation status, and project record pages. It will continue to expand as more subsystem documentation is extracted directly from the codebase.