ZMAX-GUI // DESKTOP EDITOR SHELL

// Helix-fork editor · Tauri v2 · embedded terminal · zgui baseline

zmax-gui is a native desktop GUI for the zmax editor — a Helix fork — the way MacVim wraps the Vim CLI. A thin Tauri v2 shell runs the zmax binary in an embedded PTY terminal filling the window, wrapped in the shared zgui-core app baseline (ZGui.appShell: ⌘K command palette, colour‑scheme picker, settings, CRT/splash). Same modal core underneath; a native window, chrome and theming on top. In active development.

Same Editor Core

The full zmax modal editor (Helix lineage — tree‑sitter, LSP) runs unchanged inside the window. The GUI is the shell, not a reimplementation.

Ecosystem Only

Terminal from the shared zpwr-embed-terminal; chrome from zgui-core. No bolted‑on widgets.

Standard Layout

The MenkeTechnologies GUI app layout: app/src-tauri shell, crates/ Rust embeds, frontend/lib/zgui-core + frontend/lib/zpwr-clip-engine. Verified by the baseline gate.

Project Workbench

Quick Open fuzzy finder (⌘P), Find in Files with regex (⇧⌘J), Search & Replace (⇧⌘H), Go to Symbol (⇧⌘O), Find Definition (⇧⌘D), TODO/Markers (⇧⌘T), Bookmarks (⌘B), persisted Recent Files (⌘E), a Project Files tree manager (⇧⌘E), Batch Rename, persisted Snippets (⇧⌘I), a Project Stats report and a two-file Compare — all in the ⌘K palette, opening results at path:line:col.

Text Transforms

On-disk file helpers with a dry-run preview: Sort Lines (reverse / ignore-case / numeric / unique), File Cleanup — line-ending (LF/CRLF), trailing-whitespace, tab expand/tabify and final-newline normalisation, Align Columns on a delimiter (align-regexp), Comment/Uncomment a range (⇧⌘/) with the language's prefix, and File Encoding detect + transcode (UTF-8 / UTF-16 / Latin-1). Applied on disk, then reloaded in the editor; binary/oversized files skipped.

Git Tools

A Git Changes panel that stages / unstages / discards files inline, per-line Blame (⇧⌘B), per-file History with the diff each commit introduced, a repository-wide Log and ASCII Commit Graph, Diff Revisions between any two branches/tags/hashes, a two-file Compare via git diff --no-index, Branch list / checkout / create, and Stash save / pop / drop / show. All driven by the Rust host, opening results in the editor.

Reversible Verbs

The workbench is published on the GUI Automation Bus as typed verbs with a declared reversibility class. Reads and dry runs are pure; every file mutation is inverse, backed by a content snapshot taken before it runs and written back by its undo(). A multi-file mutation learns its snapshot set from its own dry run — and refuses to run if that dry run was truncated, rather than half-covering itself.

Batch Plan

The shared zpwr-clip-engine arrangement grid over the project: lanes are the reversible operations, columns are the files. Paint the refactor, then run the whole painting as one transaction — if any step fails, every file already rewritten is restored, newest first.

Coverage, Not Just Rollback

A batch run witnesses the tree before its first step — every file stamped by length and mtime, no content read. When it finishes it subtracts the paths its own steps recorded, and reports what is left: the files that moved while it ran that no compensation covers. The paths it does cover are verified the other way, by content, against the run’s own pre‑image, so an unwind ends with a byte‑level receipt instead of its own word for it. Both halves are readable off the bus (zmax.txn.coverage), so a peer process can ask what a finished refactor could not take back.

Honest Status

The editor runs in the embedded terminal with the zgui baseline; the MacVim menu bar, Open / Save As dialogs and the Tabs menu have shipped. Still open: the app’s own UI strings are not in the shared zpwr-i18n catalog, so the 27 locales resolve only the chrome — pnpm i18n:audit reports the exact number.

Architecture

The desktop app (this repo) is the Tauri v2 shell + the zgui front‑end that mounts ZGui.appShell and the fullscreen terminal. The editor is the external zmax binary, run in a PTY — so unlike the engine‑hosted apps in the stack, the "core" here is a standalone editor, not an embeddable webui engine.

Where it goes next

Bundle zmax as a Tauri sidecar (no PATH dependency); launch the editor directly via a spawn_program addition to the shared terminal; then native tabs, menu bar and GUI dialogs. See the MenkeTechnologiesMeta umbrella for the wider stack.