Transitioner
PlannedSmooth transitions between plugin states like login, desktop, and lockscreen
- Waxed Display Server
- Multiple loaded plugins (Greeter, Desktop, Lock)
Transitioner Plugin
The Transitioner is a meta-plugin that manages smooth visual transitions between different plugin states. Think of it as sitting between the Greeter (login) and the Desktop, orchestrating the handoff with butter-smooth animations rather than jarring screen changes.
Plugin Management
The Transitioner doesn’t provide UI itself. Instead, it loads and manages other plugins. At Waxed startup, it loads an initial plugin, typically the Greeter. When that plugin signals a state change (user successfully logs in), the Transitioner orchestrates the switch to the next plugin, such as the LEF Desktop.
Smooth Transitions
During a transition, both plugins remain loaded and rendering to off-screen buffers. The Transitioner animates between the two rendered frames using crossfade, slide, or custom shader effects. Only the transitioning frame is presented to the display. The result is a transition that feels like part of the experience rather than an interruption.
State Machine
Maintains a state graph defining valid transitions:
- Greeter to Desktop (login)
- Desktop to Lock (lock screen)
- Lock to Desktop (unlock)
Each transition can have its own animation style and duration.
Why It Matters
Traditional Linux desktops handle state transitions poorly. Logging in often means watching a display manager hand off to a session, with flickering screens, loading cursors, and visual inconsistency. Waxed’s plugin architecture makes something better possible - since all plugins run within the same Waxed instance, they share the same rendering context. The Transitioner exploits this to provide truly seamless transitions.