phosphor-popout
Central arbiter for transient popout lifetime, focus, and exclusivity.
The single coordinator every transient surface routes through: control center, launcher, calendar, notification history, OSDs, and tray menus. Centralising layer-shell creation, focus arbitration, screen affinity, exclusive zones, and dismiss-on-focus-loss avoids two popups fighting over a Wayland grab. The arbitration state machine lives in PopoutController, while surface creation hides behind an injected IPopoutTransport so it tests as pure logic. One open entry point resolves three exclusivity modes (Cooperative, Modal, Detached) and returns opaque handles.
Key types
PopoutControllerIPopoutService owning the arbitration state machine; delegates surface creation.IPopoutServiceopen, close, toggle, isOpen, closeAll.IPopoutTransportPopoutRequestDependencies
QtCoreQtGuiQtQml
See also
References
- Full API reference → Doxygen-generated page for
PhosphorPopout. - Namespace index Every symbol under
PhosphorPopout::.