phosphor-control

Reusable Qt6/QML/Kirigami settings-app framework.

The framework a Phosphor settings application is built on: the window chrome plus the orchestration, so each consumer writes only its own page controllers and QML pages. Each page is backed by a StagingDomain that holds the user's pending edits, and ApplicationController owns the page registry and domains, recomputes a global dirty flag, and drives batched applyAll / discardAll as one transaction. SearchController builds a ranked, typo-tolerant search index from the page registry and registered providers, and a QML module ships the SettingsAppWindow, sidebar, breadcrumbs, and unsaved-changes chrome wired to those controllers. DBusBridge wraps a configured endpoint for daemon calls.

Full API →

Key types

ApplicationController
Top-level orchestrator: page registry, staging domains, global dirty flag, batched apply/discard.
StagingDomain
Abstract unit of staged edits: isDirty(), apply(), discard(), resetToDefaults(), with async result signals.
PageRegistry
Tree-structured catalogue of registered pages driving the sidebar and breadcrumbs.
SearchController
Ranked, typo-tolerant settings search over pages, authored anchors, and dynamic providers.

Dependencies

See also

References