Skip to content
YazelixPublic

About

Yazelix Nova is a Nix-packaged terminal workspace built from focused first-party components, including Mars, Nova Zellij, Nova Helix, Yazi, Nushell, Ratconfig, popups, status widgets, cursors, and Anima.

Topics

Resources

Code of conduct

Contributing

Stars

1.2k stars

Watchers

4 watching

Forks

Repository files navigation

Yazelix Nova

Yazelix logo

Delight is the only option.

The Nova docs are the canonical user guide for the current Stable release. Start there for installation, configuration, keybindings, updates, and recovery.

Yazelix Nova is a Nix-packaged terminal workspace built around Nova Rio, a minimal upstream Zellij distribution, Yazi, Nushell, Bash, Zsh, and Fish with Atuin history. It includes a lazygit popup with support for other Git clients and an optional coding-agent popup.

Yazelix Forest provides the default managed Helix file tree, and the narrow Yazelix Radar fork provides the collapsible Zellij rail. Nova uses the Nova Helix fork by default; editor.command can select another terminal editor. yzx launch opens the desktop workspace through Rio, while yzx enter opens Yazelix in any capable terminal emulator or over SSH. Great defaults out of the box!

If Yazelix is useful to you, support its development on GitHub Sponsors.

Yazelix Nova workspace

Install and start

Yazelix requires Nix with flakes enabled. Install the checked Stable release:

nix profile add --refresh github:Yazelix/nova/stable

Open Nova through its packaged Rio terminal:

yzx launch

Enter the same workspace in the current capable terminal or over SSH:

yzx enter

Learn the core workspace keys inside Nova:

yzx tutor begin

To try the split work area, open a second work pane with Alt m, then press Alt ] or Alt [ to switch between the stacked and split arrangements. The Radar sidebar stays open or collapsed as you left it. The command palette's layout entry remains available with Alt Shift M.

Full tab labels use [index name] in both focus states, keeping text and positions steady when focus changes. Active tabs use bold orange on the terminal background; inactive tabs use muted gray. Floating panes and popups add no tab indicator. Initial picker tabs use their directory basename, including lucca for /home/lucca/, without a special home icon or label.

Alt Shift B or Toggle bottom hints in the command palette hides or restores bottom hint rows throughout the current session. Hiding them frees one row for work panes; sidebar and layout switches retain the choice. New tabs inherit it, and fresh sessions start with hints visible unless bottom_hints.start_hidden is true. Attaching preserves the session's current choice. Toggling preserves pane order and work-pane focus, including manually rearranged stacks and splits. Open managed popups resize with the hint row, preserving their running process and keyboard focus. Set keybindings.bottom_hints to remap the shortcut, or false to disable it. The hint row uses compact C, C-A, A and A-S modifier headers. Core workspace and Nova shortcuts take priority as the terminal narrows; managed hints follow shortcut remapping and disabling. C-A hl/jk move groups tab movement with h/l and vertical pane movement with j/k. Alt-Shift hints keep menu first, followed by fullscreen, hints and the HJKL shortcuts.

If startup fails, inspect Nova's owned runtime without opening Rio or Zellij:

yzx doctor

Linux is the dogfooded platform. Native aarch64-darwin builds cover the Rio packages and Home Manager closure; interactive macOS behavior and the Rio GUI do not yet have complete release evidence. Use the website install guide for Stable setup. The repository installation reference covers Main and Edge channels, all eight package variants, platform evidence, Home Manager, updates, and the binary cache.

yzx is the sole public CLI: yzx launch, yzx enter, and yzx help. The product name is Yazelix Nova; packages do not install a nova command.

Documentation

The website holds the user guides:

Source, Edge, and maintainer references stay with the code:

Development

Enter the pinned development shell, then run the local gates:

nix develop
nix flake check
nix flake show --all-systems
nix build .#yazelix --no-link --print-build-logs

The repository works directly on edge. main and stable receive exact verified revisions through the promotion process documented in Development.

Report defects and focused proposals in GitHub Issues. Participation follows the Code of Conduct.

Acknowledgments

Special thanks to soderluk for sustained reports through unstable periods of Yazelix.

Special thanks to tag-und-nacht for detailed macOS, Home Manager, theming, and configuration reports.

Special thanks to TyceHerrman for thorough macOS and Nix packaging reports that hardened Darwin delivery.

LOC Scorecard

Yazelix owns 31,844 code/configuration lines and 6,182 documentation/text lines. The reproducible scorecard excludes Beads, lockfiles, and binary assets. Minor-mode hint formatting, native package tests and installed mode/exit coverage account for the hint readability changes. Mode-scoped separators and bound-key preferences keep the simplified Tab, Pane, Resize, Scroll and Search rows accurate when bindings change. Group preferences require every selected key; renderer tests cover remaps, aliases, duplicate preferences, literal comma keys and remapped search options. Installed checks cover Search Input cancellation, submission and Search exits. Rename hints separate save and cancel; installed checks verify typed names, restoration on Esc, acceptance on Enter and the destination modes. Session hints show detach, manager, config, plugins and Esc with the same pipes; mode-scoped labels hide secondary hints while preserving their bindings. Locked uses the same separator; installed checks verify key passthrough and unlocking. Modifier badges and minor-mode labels use compact brace outlines without interior padding. Native tab verification distinguishes foreground highlighting from styling and backgrounds, waits for requested highlights, and checks stable text and mouse targets across three widths with visible and hidden floating panes. The shared package-root owner, managed-tool bindings, watcher ownership and relocation check account for the runtime-root implementation's growth. Agent guidance covers full-launcher startup, socket-path limits, cache isolation, ordered-pane regressions and historical build artifact identity. It also covers build reuse, bounded CPU budgets, timeout diagnosis and settled CPU measurements. Two-pane stack checks protect focus when restoring hints with either sidebar state. The sole native Zellij patch retains background permission callbacks until the first client connects, then replays them. Mouse selection follows upstream behavior. The startup-picker check uses physical keys and waits for the intended tab's completed handoff or rejected-open notification before continuing. Its control commands share a writable isolated cache and short socket directory; timeout reports include the last screen to distinguish input from cleanup stalls. Documentation covers macOS XDG opt-in and one config source shared between explicit host and Nova destinations. The sole yzx CLI removes alias packaging and compatibility-help logic. Its checks protect the executable namespace, global help, managed PATH and child argument/output/exit status. The bottom-hint startup preference adds configuration, layout propagation and session regression checks; the native background controller keeps the choice across tab closure and consumes its initial value once. Snapshot polls allow 20s under CPU limits; idle captures handle zero terminal output. Product checks use Rust and a Bash archive probe. Python runs GitHub automation. Preserving the native scenarios increases check source lines while removing their Python build input. Linux archive assembly, native-library relocation and input guards account for code growth. The Nix-free interaction check exercises managed tools, previews, host Git and Lazygit in a fresh workspace; public portable installation remains pending. Host Git removes the archive's Git helper rewriting and Perl/Python/Gettext stack. An archive-only compiler selects glibc 2.39 runtime providers; the library bundler enforces the baseline. A focused check covers rejection, provider ownership and failed ELF inspections, including failures after valid output. Managed Yazi's pane-readiness gate prevents a zero-size startup exit; its transition and bounded failure are checked. Radar's private transport alias, upstream version reporting, and conflicting-host regression check account for the agent delivery fix's code/configuration growth. Managed Codex launches keep hooks in the pane process when supported; the capability and argument regression check account for 89 additional code lines. Managed Helix's pinned grammar snapshots keep Codeberg and SourceHut out of package evaluation and grammar builds. Delayed-EOF and native-key sidebar checks account for the additional test lines.

About

Yazelix Nova is a Nix-packaged terminal workspace built from focused first-party components, including Mars, Nova Zellij, Nova Helix, Yazi, Nushell, Ratconfig, popups, status widgets, cursors, and Anima.

Topics

Resources

Code of conduct

Contributing

Stars

1.2k stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages