Main Page: Difference between revisions

Refresh main page for PlexyPress editorial layout
No edit summary
 
(9 intermediate revisions by 2 users not shown)
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 ==
== What is PlexyDesk ==


<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>
<div class="pp-frontpage__hero">
[[File:Screenshot 2026-03-03 10-32-43.png|alt=shows plexydesk in use|900px|none]]
<div class="pp-frontpage__hero-caption"></div>
</div>


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.
<p class="pp-frontpage__deck">PlexyDesk is a Linux display server, compositor, desktop shell, and application toolkit for GNU/Linux and BSD. The project provides you with a full rendering infrastructure to create your own desktop environment, and client-side UI libraries to create native applications required for your DE. We are excited to see what you will create, so just ping us on Discord or  update this wiki to share your project</p></div>


* [[Architecture|Read the architecture briefing]]
<div class="pp-frontpage__story pp-frontpage__story--wide">
* [[Documentation|Open the documentation desk]]
<div class="pp-frontpage__label">Section index</div>
* [[Components|Browse the component index]]
</div>


<div class="pp-frontpage__story">
== Main sections ==
<div class="pp-frontpage__label">Architecture spotlight</div>


== Compositor, shell, and toolkit ==
<div class="pp-frontpage__section-grid">


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>
=== 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>'''[[Gallery]]''' - screenshots and short demo captures of PlexyDesk sessions.</li>
<li>'''[[Community]]''' - contribution and wiki participation guidance.</li>
</ul>
</div>


See [[Architecture]] for the full technical model, or jump to [[PlexyUI API]] for the current toolkit surface.
<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>
<li>'''[[Desktop Submissions]]''' - public procedure for uploading screenshots and listing desktops.</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>[[Gallery]] collects submitted screenshots and short demo captures.</li>
<li>[[Desktop Submissions]] explains how public users can contribute desktops.</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>

Latest revision as of 09:03, 22 March 2026


System overview

What is PlexyDesk

shows plexydesk in use

PlexyDesk is a Linux display server, compositor, desktop shell, and application toolkit for GNU/Linux and BSD. The project provides you with a full rendering infrastructure to create your own desktop environment, and client-side UI libraries to create native applications required for your DE. We are excited to see what you will create, so just ping us on Discord or update this wiki to share your project

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.
  • Gallery - screenshots and short demo captures of PlexyDesk sessions.
  • 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.
  • Gallery collects submitted screenshots and short demo captures.
  • Desktop Submissions explains how public users can contribute desktops.
  • 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.