Yazelix Nova docs
01
Start with Yazelix Nova
Try or install Stable, then choose the Mars or current-terminal entrypoint.Standalone pageYazelix Nova is a Nix-packaged terminal workspace. You need Nix with flakes enabled.
Install
Section titled “Install”nix profile add --refresh github:luccahuguet/yazelix/stableOpen the desktop workspace through Mars:
yzx launchStart the same managed workspace in the current terminal or over SSH:
yzx enterTry without installing
Section titled “Try without installing”nix run github:luccahuguet/yazelix/stable -- launchnix run github:luccahuguet/yazelix/stable#yazelix-no-mars -- enterRun the owned preflight without opening Mars or Zellij:
nix run github:luccahuguet/yazelix/stable -- doctorChoose a channel
Section titled “Choose a channel”| Channel | Install reference | Use |
|---|---|---|
| Stable | github:luccahuguet/yazelix/stable |
Checked and dogfooded release |
| Main | github:luccahuguet/yazelix/main#yazelix-main |
Frequent accepted updates |
| Edge | github:luccahuguet/yazelix/edge#yazelix-edge |
Experimental dogfooding |
Immutable nova-v* tags select exact releases. A Nix lock file keeps its
selected revision until you update it.
Choose a package
Section titled “Choose a package”Package names follow yazelix[-no-mars][-no-helix][-no-yazi]. The suffixes
remove Mars, managed Helix, or managed Yazi while retaining the remaining Nova
integration.
nix profile add --refresh github:luccahuguet/yazelix/stable#yazelix-no-marsUse yzx enter with a Mars-free package. Helix-free packages need an installed
editor selected through editor.command. Yazi-free packages need matching
host yazi and ya commands.
See the canonical installation and package guide for the full matrix, platform evidence, Home Manager, and installed sizes.
First five minutes
Section titled “First five minutes”Start the packaged tutor after entering Nova:
yzx tutor beginyzx launchopens Mars, then the managed workspaceyzx enteropens the managed workspace in the current terminalyzx configopens the Nova configuration UI~/.config/yazelix/config.tomlstores optional sparse semantic overrides~/.local/share/yazelixstores generated runtime state by defaultyzx doctorchecks the owned runtime setup
02
Configure Yazelix Nova
Use Ratconfig, sparse semantic overrides, or owner-native files.Standalone pageOpen Nova’s Ratconfig interface:
yzx configRatconfig shows packaged defaults, saves explicit overrides, and marks Home Manager-owned files as read-only.
Main settings
Section titled “Main settings”The optional root config is:
~/.config/yazelix/config.tomlNova does not create this file until you save a root setting. Missing keys inherit packaged defaults. Unsupported or misspelled paths fail validation.
Common fields include:
| Field | Default | Applies to |
|---|---|---|
appearance.mode |
dark |
Managed component appearance |
shell.program |
nu |
New panes |
editor.command |
yzx-hx |
New editor opens |
welcome.enabled |
true |
New launches |
agent.command |
auto |
New agent popups |
bar.widgets |
Nova widget list | New launches |
For example:
[appearance]mode = "light"
[shell]program = "fish"
[editor]command = "nvim"Ratconfig labels each field with its apply timing. Start a new session for
fields marked next launch or next session.
Native files
Section titled “Native files”Component-specific configuration lives beside config.toml:
| Surface | Path |
|---|---|
| Cursor definitions and selection | ~/.config/yazelix/cursors.toml |
| Mars overrides | ~/.config/yazelix/mars/config.toml |
| Guarded Zellij scalars | ~/.config/yazelix/zellij/config.kdl |
| Extra Zellij plugins | ~/.config/yazelix/zellij/plugins.kdl |
| Starship overrides | ~/.config/yazelix/starship.toml |
| Nushell additions | ~/.config/yazelix/nu/env.nu, nu/config.nu |
| Helix overrides | ~/.config/yazelix/helix/ |
| Yazi config and assets | ~/.config/yazelix/yazi/ |
Ratconfig exposes exact file actions for these surfaces. Native owners keep their own validation and schema.
Home Manager
Section titled “Home Manager”The Home Manager module owns one enable flag, package selection, sparse
programs.yazelix.config.settings, and optional native files. It writes no
runtime config unless you declare one of those options.
Store-backed files appear as read-only in yzx config. Edit the named
programs.yazelix.config.* option, then run your normal Home Manager switch.
Generated state
Section titled “Generated state”Nova writes generated runtime state to
${XDG_DATA_HOME:-$HOME/.local/share}/yazelix unless YAZELIX_STATE_DIR
overrides it. Edit the config inputs, not generated output.
See the canonical configuration guide for the complete field and native-file contracts.
03
Yazelix Nova Keybindings
The packaged workspace key grid and its supported customization surface.Standalone pageNova extends the Helix and Vim h/j/k/l model across the workspace.
Movement grid
Section titled “Movement grid”| Layer | h |
j |
k |
l |
|---|---|---|---|---|
Alt |
Focus left or previous tab | Focus down | Focus up | Focus right or next tab |
Ctrl Alt |
Move tab left | Move pane down | Move pane up | Move tab right |
Alt Shift |
Yazi sidebar | Git popup | Config popup | Agent popup |
Workspace keys
Section titled “Workspace keys”| Key | Action |
|---|---|
Alt Shift M |
Toggle the command menu |
Alt Shift S |
Show a random full-screen visual |
Alt Shift Y |
Toggle the full managed Yazi popup |
Ctrl y |
Toggle focus between the editor and Yazi sidebar |
Alt Shift F |
Toggle the focused pane fullscreen |
Alt 1-9 |
Go to tab 1-9 |
Alt m |
Open a new pane |
Ctrl q |
Quit the Nova session |
Ctrl Alt o |
Open Zellij session mode |
Alt r |
Reveal from the editor or return from Yazi |
Alt z |
Retarget the tab workspace from Yazi with zoxide |
Press a popup key again to hide or close that surface and return to the tiled workspace.
Customize keys
Section titled “Customize keys”Open yzx config to edit the managed config, agent, Git, menu, screen, sidebar,
and sidebar-focus chords. The corresponding keybindings.* fields live in
~/.config/yazelix/config.toml and accept a key chord or false. Changes apply
to new sessions.
The fixed Alt Shift Y, application-local Alt r, and Yazi Alt z bindings
remain in their native packaged owners. Nova rejects collisions among managed
semantic keys.
Ratconfig’s Keys tab is the complete packaged reference. The runtime sources
are defaults/zellij/config.kdl, the managed Helix config, and the managed Yazi
keymap.
04
Update Yazelix Nova
Update the Nix profile or declarative input that owns the installed package.Standalone pageChoose one update owner for each Yazelix install.
Profile installs
Section titled “Profile installs”Confirm the installed profile entry when needed:
nix profile listUpgrade the profile-owned package:
nix profile upgrade --refresh yazelixPass the exact installed package name when your profile uses another entry name.
Home Manager installs
Section titled “Home Manager installs”Run this from the configuration that declares the Yazelix input:
nix flake update yazelixReplace yazelix with your input name, then run the configuration’s normal
Home Manager or nix-darwin switch command. Do not use nix profile upgrade for
a package installed by Home Manager.
Channels
Section titled “Channels”The update follows the input’s stable, main, edge, or immutable tag
reference. Stable is the normal release channel. Main receives accepted updates
more often, and Edge carries experimental dogfood changes.
Live windows
Section titled “Live windows”The updated package applies to future launches. Open Nova sessions keep their current immutable Nix store paths until you close and relaunch them.
See the canonical update guide for package-owner details.
05
Recover a Nova Launch
Use the supported preflight, status, config, and package-owner checks.Standalone pageStart with doctor:
yzx doctoryzx doctor validates Nova’s owned config, helpers, selected editor, Yazi pair,
Zellij package, layout, and plugins. A failed preflight prints the failing
check without opening Mars or Zellij.
Inspect runtime ownership
Section titled “Inspect runtime ownership”yzx statusyzx status --jsonyzx --versionStatus reports the selected package, config home, state directory, shell, editor, popup keys, layout, Yazi source, and session context.
Check the root config
Section titled “Check the root config”The root config is optional:
~/.config/yazelix/config.tomlOpen yzx config to inspect known invalid fields and exact native-file actions.
Back up config.toml before manual recovery. Removing an optional override
restores its packaged default on the next applicable launch.
Clean up old manual installs
Section titled “Clean up old manual installs”If an old clone, wrapper, or shell function shadows the current package:
type yzxcommand -v yzxThe command should resolve to the Nix profile or Home Manager package that owns the install. Remove a stale wrapper only after you identify its owner.
Stale flake cache
Section titled “Stale flake cache”For a profile install:
nix profile upgrade --refresh yazelixHome Manager users update the declared input and run their normal switch.
Treat Classic residue as a warning
Section titled “Treat Classic residue as a warning”Doctor reports recognized Classic state and migration backups in the active roots. Nova does not load, archive, or remove those paths. External scripts may still reference them.
Start a fresh session
Section titled “Start a fresh session”yzx enterUse a new session when the updated package or a next-session setting needs to take effect. Zellij owns existing session lifetime and attachment.
Do not repair Nova by editing generated files under ~/.local/share/yazelix.
Fix the owned config input or package owner instead.
06
Nova Runtime Model
The yzx entrypoints, package variants, config boundary, and component owners.Standalone pageYazelix Nova is a Nix-packaged terminal workspace with one front door: yzx.
yzx launch -> Mars -> managed Zellij workspaceyzx enter -> current terminal -> managed Zellij workspaceyzx run -> prepared Nova environment -> requested programBare yzx prints help. launch is the only Mars route. enter needs an
interactive terminal and works without a display server.
Packages
Section titled “Packages”The full package includes:
- Mars for graphical launch
- the Yazelix Zellij fork and managed layout
- managed Yazi, Helix, and Nushell
- popup, config, screen, tutor, Git, prompt, and completion tools
Package names follow yazelix[-no-mars][-no-helix][-no-yazi]. Each suffix
removes that managed package while retaining the remaining integration.
Mars-free packages use yzx enter; Helix-free and Yazi-free packages use the
selected host tools.
Generated runtime state
Section titled “Generated runtime state”Nova renders runtime state under:
~/.local/share/yazelixThis directory is output. Edit the config inputs instead.
User config
Section titled “User config”The optional sparse semantic config is:
~/.config/yazelix/config.tomlComponent-native files live under the same ~/.config/yazelix/ root. Normal
host config at ~/.config/{helix,yazi,starship} is not loaded by default.
Workspace identity
Section titled “Workspace identity”Nova targets managed panes by identity:
- the file tree is a managed Yazi sidebar
- each tab has one canonical workspace root
- managed opens reuse the tab’s editor
yzx revealopens the persistent Yazi popup at a target- Git and agent tools use workspace-scoped popups
Alt zretargets the tab workspace and editor together
Ownership
Section titled “Ownership”Mars owns the terminal. Yazelix Zellij owns multiplexing, Ratconfig owns the config UI toolkit, and focused first-party packages own popups, pane orchestration, the top bar, screens, cursors, and Yazi themes. Nova pins and composes their package outputs.
See the canonical architecture for component contracts and verification gaps.
07
Nova Customization Surfaces
Choose the semantic root config, an owner-native file, or Home Manager.Standalone pageStart with yzx config. It displays packaged defaults and writes sparse
overrides to ~/.config/yazelix/config.toml.
Main settings
Section titled “Main settings”Use it for:
- appearance mode
- shell and editor commands
- welcome behavior
- managed popup and sidebar keys
- agent command and arguments
- popup margins and top-bar widgets
Native sidecars
Section titled “Native sidecars”Use sidecars for tool-specific preferences that Yazelix does not render:
| Surface | Path |
|---|---|
| Cursor config | ~/.config/yazelix/cursors.toml |
| Mars overrides | ~/.config/yazelix/mars/config.toml |
| Zellij scalar sidecar | ~/.config/yazelix/zellij/config.kdl |
| Extra Zellij plugins | ~/.config/yazelix/zellij/plugins.kdl |
| Starship overrides | ~/.config/yazelix/starship.toml |
| Nushell additions | ~/.config/yazelix/nu/ |
| Yazi config and assets | ~/.config/yazelix/yazi/ |
| Helix config, languages, and Steel files | ~/.config/yazelix/helix/ |
Home Manager
Section titled “Home Manager”Home Manager exposes programs.yazelix.enable, package selection, sparse
settings, and optional native files. Store-backed files remain read-only in
Ratconfig. Change the reported module option and run the normal switch.
Generated state
Section titled “Generated state”Files under ${XDG_DATA_HOME:-$HOME/.local/share}/yazelix are generated output.
Change the config input or package owner instead of editing runtime state.
See the canonical configuration guide for file layering and validation details.
08
Nova Troubleshooting Checklist
Check the owned runtime, package source, config input, and generated-state boundary.Standalone page1. Run doctor
Section titled “1. Run doctor”yzx doctor2. Check command ownership
Section titled “2. Check command ownership”type yzxcommand -v yzxThe command should resolve to your Nix profile or Home Manager owner path, not an old ~/.local/bin/yzx wrapper or shell function.
3. Refresh stale flake evaluation
Section titled “3. Refresh stale flake evaluation”nix profile upgrade --refresh yazelixHome Manager users update their declared input and run the normal switch.
4. Inspect config
Section titled “4. Inspect config”yzx configThe optional root file is ~/.config/yazelix/config.toml. Back it up before
manual recovery. Ratconfig exposes invalid fields and exact native-file actions.
5. Keep generated state generated
Section titled “5. Keep generated state generated”Do not manually edit:
~/.local/share/yazelixRelaunch Nova after fixing the owning input. Open sessions keep their existing package and next-session settings.
6. Report precise failures
Section titled “6. Report precise failures”Useful issue details:
- OS and architecture
- install owner: Nix profile, Home Manager, or one-off
nix run yzx --versionyzx doctoryzx statusoryzx status --json- exact command output
- whether the problem reproduces in a fresh
yzx entersession