ecliptic

Changelog

All notable changes to ecliptic are recorded here. The format follows Keep a Changelog, and the project uses Semantic Versioning: the version lives once, in the workspace Cargo.toml, and every release is a vX.Y.Z tag.

Unreleased

Added

  • The demo plays a tour: ecliptic-demo --demo DIR --tour FILE reads a script of captions and of a drawn pointer that glides to a row, an icon or a file in the drawer and clicks it, with commands, the theme picker and the pages, one step per line, and quits at its end (packaging/demo/README.md lists the steps). record.sh plays demo/promo.tour on a private X display and records it until it quits, which is how the README's recording is made. Under a tour the agents edit every 4 s, and their commits take one file at a time, so the columns keep their changes while the graphs grow.
  • Packages for macOS and Windows beside the Linux archives: a universal ecliptic.app in a .dmg, an MSI (per-user, Start Menu and PATH entries, no elevation) and a portable .zip, and a Linux aarch64 archive. The GitHub Actions workflow tests on all three platforms and attaches every package to a tag's release; packaging/release.sh builds the platform's package wherever it runs (docs/packaging.md).
  • One-line installers: install.sh for Linux and macOS and install.ps1 for Windows find the latest release, verify the package's sha256 and install it without sudo or an administrator prompt, with flags or environment variables for a pinned version and the place, curl or wget, and a check that the result runs. The packaging jobs run them against the packages they built before a release is published, which comes with one SHA256SUMS for every package. Linux packages are built on Ubuntu 22.04, so they run on glibc 2.35 and newer.
  • Atlas Ember, the Atlas design system's Dark · Ember (ink surfaces, bone text, the Ember accent), in the built-in Atlas Themes extension, and Tokyo Midnight, Tokyo Night's palette on deeper surfaces, in the built-in Tokyo Night extension. The theme picker and the Color Theme setting list the two defaults first and the rest by name.
  • The diff drawer has a side bar of its own, down its left: the repository's changes, or a commit's files, with the open one highlighted, so the next file is a click away without leaving the drawer (right-click a row for its menu; ecliptic.drawer.sideBar turns it off). A new config opens the drawer 1020 px wide to make room for it.
  • A Home icon at the top of the Activity Bar, lit while the columns are showing, that returns to them from the Settings, Keyboard Shortcuts and extension pages (the ecliptic.home command).

Changed

  • Renamed to ecliptic. The binary (ecliptic), the config and extensions folders (~/.config/ecliptic, ~/.local/share/ecliptic, and their macOS and Windows equivalents), the settings keys, command ids and colour ids (ecliptic.*, formerly atlas.*) and the built-in extension ids (ecliptic.vscode, ecliptic.atlas-themes, ecliptic.tokyo-night) take the new name. The first start copies an existing atlas-scm config folder and extensions folder over, keys and ids renamed; the old folders stay as they were.
  • Files open, folders reveal and links launch through each desktop's own command (xdg-open and FileManager1 on Linux, open on macOS, the shell's open verb and explorer /select, on Windows); the monospace font defaults to Menlo on macOS and Consolas on Windows; settings, layout, keybindings and extensions live in each platform's own config folder; a file the desktop has no icon for shows a codicon in its row.

Fixed

  • The Keyboard Shortcuts page writes the home folder as ~ in its file's location, as the Settings editor does.
  • Scrollbars are thin at rest and fill out under the pointer, and the row of columns shows its slider only while scrolling sideways or when the pointer reaches it, instead of lying over the top row's Graph headers whenever the pointer was anywhere in the row.
  • The task bar and the launcher show ecliptic's icon: the window sets its app id (Wayland) and class (X11) once its backend is chosen, the one moment Slint takes it, carries its own icon, the desktop entry names its class, and the Linux package installs the icon at every size the desktop asks for and refreshes KDE's icon cache.
  • The drawer's right edge stays on the window's edge while the drawer or the window is resized. Only its slide in and out animates, so dragging the handle no longer lets the columns show through beside it.

1.0.0 - 2026-10-15

The first release.

Added

  • Columns, one repository each, in one or two rows: Repositories, Changes (staged and unstaged, with +12 −3 line counts and VS Code's file icons) and the commit Graph with lanes and ref pills, each updating live as agents edit the repository. Changes stay marked until the column is looked at.
  • A watch-only git backend: optional locks and the diff index refresh off, so a repository is never written to; one worker per column watching with inotify and refreshing once changes settle, with no timers at idle.
  • The drawer: a file's diff or a commit, as one document of lines in git's own format, with an editor-tab header, edge marks, selection and copy as text or patch.
  • VS Code's window: its own title bar and menus, the Activity Bar, the Primary Side Bar (Source Control with repository rows, their hover actions and a filter; Extensions with a search box), the status bar, overlay scrollbars, tooltips, and keyboard navigation through columns and lists.
  • Context menus on files, commits, columns, the drawer and repository rows, as commands, with their entries configurable in settings (ecliptic.menu.*).
  • settings.json as VS Code keeps it (comments kept, keys edited in place) and a Settings editor over it; config.toml for the layout.
  • Keyboard shortcuts as commands: keybindings.json for the user's, extensions' from their manifests, and a Keyboard Shortcuts page listing what is in effect; the Command Palette runs any command.
  • Extensions in VS Code's shape: a package.json manifest contributing colour themes, commands, keybindings, menus, settings, views and view containers; a process over JSON-RPC that reaches the status bar, views, decorations, the drawer and the notice bar; an extension page with its README, features and changelog. The built-in VS Code Themes extension ships Dark Modern, Light Modern, Dark+ and Light+.
  • ecliptic.editor.command to choose the editor Open in Editor uses.
  • --version and --help, a release archive with the desktop entry and icon (packaging/release.sh), a GitHub Actions workflow, and a demo mode (--demo DIR, in a separate demo archive) for recording.
  • A performance toolbox after the Rust Performance Book, as one standalone executable.