phosphor-shell

Quickshell-style declarative QML framework for layer-shell desktop shells.

The infrastructure layer between phosphor-wayland / phosphor-layer and the consumer QML config that describes what the shell should look like. A shell binary constructs a ShellEngine, points it at an XDG config tree, and the engine instantiates the user's QML which declares PanelWindow, PopupWindow, and friends. Each window type creates the appropriate layer-shell surface through phosphor-layer underneath, so the QML author writes panels without touching wlr-protocol primitives. API mirrors Quickshell where it matters so existing configs port with minimal rework.

Full API →

Key types

ShellEngine
Top-level lifecycle: QML engine, config discovery, reload.
ShellLoader
Discovers and loads the user's QML config from XDG paths.
PanelWindow
Layer-shell-backed panel window with edge anchoring and exclusive zone.
PopupWindow
Top-layer popup with optional keyboard grab and parent anchoring.
Variants
Lazy per-screen instantiation of declarative content.
PersistentProperties
QML-friendly persistence of property values across launches.
Process
Sandboxed subprocess runner exposed to QML.
Toplevels
ext-foreign-toplevel-list-v1 consumer for taskbars and window lists.

Dependencies

See also

References