ecliptic

Install

One line installs the latest release. The same packages are on GitHub for installing by hand, and the source builds with cargo.

One line

Linux and macOS

curl -fsSL https://ecliptic.sh/install.sh | sh

Windows, in PowerShell

powershell -ExecutionPolicy Bypass -c "irm https://ecliptic.sh/install.ps1 | iex"

Until ecliptic.sh is live, the same scripts are at https://raw.githubusercontent.com/c0ldfront/ecliptic/main/install.sh and install.ps1; put either URL in the command instead.

What the script does

It finds the latest release, downloads the package for your OS and processor with its sha256, checks it, and installs it. Nothing needs sudo or an administrator prompt, and neither script edits a shell profile: it says when the directory is not on PATH. Each is one file you can read first: install.sh (POSIX sh) and install.ps1.

  • Linux: the binary, desktop entry and icons go under ~/.local, as the archive's own install.sh does.
  • macOS: ecliptic.app goes into /Applications, or ~/Applications when that is not writable, with an ecliptic command in ~/.local/bin. Downloaded this way the app carries no quarantine attribute, so macOS opens it without a Gatekeeper prompt.
  • Windows: the per-user MSI puts ecliptic.exe under %LOCALAPPDATA%\Programs\ecliptic with a Start Menu entry and a PATH entry; the download is unblocked once its sha256 has been checked. On Windows on ARM the x64 build runs through the emulator.

Both scripts follow what rustup's, cargo-dist's and Deno's installers do: https only, TLS 1.2 or newer, a few retries, a temporary directory removed on any exit, and a check that what was installed runs. install.sh needs curl or wget and sha256sum, shasum or openssl. It refuses a musl system (the binary needs glibc), Windows from a Unix shell, and an unknown processor.

Options

Options go after sh -s -- when the script is piped, or in the environment. PowerShell takes -Version and -BaseUrl as parameters when run from a file, and the environment variables when piped.

FlagEnvironment
--version vX.Y.ZECLIPTIC_VERSIONa release instead of the latest
--prefix DIRECLIPTIC_PREFIXLinux: where bin/ and share/ go (~/.local)
--apps DIRECLIPTIC_APPSmacOS: the Applications folder
--base-url URLECLIPTIC_BASE_URLanother server holding the packages, as a flat directory
-h, --helplists them
curl -fsSL https://ecliptic.sh/install.sh | sh -s -- --version v1.0.0 --prefix ~/opt
ECLIPTIC_VERSION=v1.0.0 powershell -ExecutionPolicy Bypass -c "irm https://ecliptic.sh/install.ps1 | iex"

The packages

Every release on GitHub carries the packages, each with its sha256, one SHA256SUMS for all of them, and the version's notes from the changelog.

  • Linux: ecliptic-vX.Y.Z-x86_64-linux.tar.gz (and -aarch64-): the binary, desktop entry, icon, licence and docs. Unpack it and run ./install.sh, which puts them under ~/.local (PREFIX for elsewhere).
  • macOS: ecliptic-vX.Y.Z-macos.dmg, a universal ecliptic.app (Apple silicon and Intel): drag it to Applications. It is signed ad hoc, not notarized, which takes an Apple developer account (see Packaging). A copy downloaded with a browser is quarantined, and macOS 15 and later then asks you to allow it once: open it, dismiss the warning, then System Settings → Privacy & Security → Open Anyway. The install script's copy, downloaded with curl, carries no quarantine and opens at once.
  • Windows: ecliptic-vX.Y.Z-x86_64-windows.msi, a per-user install with a Start Menu entry, a PATH entry and no administrator prompt, or the .zip with the portable ecliptic.exe. Unsigned, so a browser download gets SmartScreen's prompt once (More info → Run anyway); the install script unblocks what it downloads. Needs Git for Windows.

From source

On any of the three, from a checkout with a Rust toolchain:

cargo build --release
./target/release/ecliptic    # ecliptic.exe on Windows
packaging/install.sh          # Linux only: ~/.local/bin + desktop entry + icon

Requirements

  • ecliptic needs git on PATH to run. On Windows that is Git for Windows.
  • Linux: glibc 2.35 or newer (Ubuntu 22.04, Debian 12, Fedora 36 and later) with fontconfig and freetype, which every desktop has; x86_64 or aarch64. A musl system builds from source.
  • macOS: Apple silicon or Intel; the app is universal.
  • Windows: x86_64; Windows on ARM runs the x64 build through the emulator.

It draws with Slint's software renderer, which repaints only what changed; SLINT_BACKEND=winit-femtovg picks the OpenGL renderer instead. ecliptic --version prints the version and --help the options.

Coming from atlas-scm

ecliptic is atlas-scm renamed. The first start copies the old config folder and extensions folder over, settings keys and command ids renamed (ecliptic.*, formerly atlas.*); the old folders stay as they were. The changelog lists everything the rename touched.

Where its files live

LinuxmacOSWindows
Settings, layout, keybindings~/.config/ecliptic/~/Library/Application Support/ecliptic/%APPDATA%\ecliptic\
Extensions~/.local/share/ecliptic/extensions/~/Library/Application Support/ecliptic/extensions/%APPDATA%\ecliptic\extensions\

The docs show the Linux paths. Settings lists every key; Keyboard shortcuts the keys and keybindings.json.