Nova and Zellij
Nova uses Zellij 0.46 as the multiplexer. Tabs, stacked panes, floating panes, layouts, and the plugin API are Zellij. Yazelix ships a default layout, keys, plugins, and yzx around that. The Nova Zellij fork keeps the pinned upstream Zellij base and adds the runtime seams listed here.
Zellij
Section titled “Zellij”Upstream Zellij owns multiplexing: tabs, tiled and stacked panes, floating panes, sessions, layouts, and plugins. Rounded pane corners, pane frames, and swap layouts are Zellij settings. Nova’s default workspace uses those surfaces.
Yazelix around Zellij
Section titled “Yazelix around Zellij”The product shape around the multiplexer lives in packages, layout, and plugins:
| Piece | Owns |
|---|---|
| Packaged layout and keys | Radar-default sidebar, quick zoxide search before startup Yazi, stacked work panes, wrapping work-pane focus and movement, popup chords |
| Zellij Pane Orchestrator | Tab-local workspace roots, focus, sidebar, editor, and popup routing |
| Zellij Popup | Git, agent, Ratconfig, Yazi, and other floating TUIs |
| Yazelix Radar | Sidebar session, pane, command, and agent-activity presentation |
| Nova Bar | Top bar tabs, modes, session details, and status widgets |
yzx and Ratconfig |
Launch, enter, read-only diagnostics, and live config |
Ratconfig can change a Zellij setting while a session runs. The popup is Yazelix. The value it writes, such as rounded corners, is still Zellij.
Nova Zellij fork
Section titled “Nova Zellij fork”Nova Zellij starts from upstream Zellij 0.46 and uses its native Kitty direct-placement path. The fork retains focused fixes for Yazi image correctness alongside the runtime seams below.
Upstream’s explicit_theme_hue and native theme actions own startup appearance.
The remaining Yazelix delta is deliberately narrow:
| Delta | Role |
|---|---|
| Three-island status hints | The native status bar groups mode actions by their real modifiers, so Ctrl-Alt stays distinct from Ctrl and Alt |
| Isolated plugin permission cache | yzx can pre-grant packaged plugins, including Radar, without touching standalone Zellij’s global cache |
| Sixel replacement cleanup | Covered and erased rasters are retired without reusing a live image ID |
| Kitty crop and resize correctness | Distinct source crops keep their pixels, and cell-size changes rebuild scaled rasters |
| Bounded Unix session probes | An unresponsive session socket cannot block session listing indefinitely |
| Named tiled-layout selection | Plugins can select an exact tiled layout without hiding or refocusing floating panes |
| Straight border style | Nova can select single or double straight pane borders; native rounded corners take precedence |
| Stable stacked-pane identity | Stack order survives focus, close, and the sidebar swap layout |
| Replacement-client plugin cleanup | A replacement client gets a fresh ID, disconnected plugin instances retire, and a new background subscription receives its own initial pane and tab state. The fork carries this from upstream pull request 5272 |
Three-island hints change Zellij’s native status bar. Nova Bar is a separate plugin for the top bar. Image-preview coverage, removal conditions, and the pinned upstream base live in the Nova Zellij fork notes.