Larch
Development

Roadmap

What's built, what's designed, and what's still open

Built

  • Branding: ISO metadata, boot menus (syslinux/systemd-boot/grub), splash image, os-release/issue, hostname, motd.
  • Package list (niri, noctalia, dev/power-user tooling, install-time extras).
  • Live-session config: niri/noctalia/theming replicated from a real working setup, larch live user with SDDM autologin into niri.
  • Installer: Calamares-based (larch-calamares), not the custom TUI originally planned (see below). Encryption on by default with opt-out, a separate unencrypted /boot partition, GRUB with Larch's theme, zram swap, auto-launches on live boot. Real end-to-end installs confirmed working. See Installation guide.
  • Installed-user provisioning: the installer-created user gets the same niri/noctalia/zsh setup as the live session, with an install-overrides/ mechanism for the few things that have to differ once Calamares itself is gone (e.g. the noctalia bar's install button).
  • Public download hosting for preview builds, see the blog.

Not built

  • The first official release, named "Steady Kaizen". Preview ISOs are downloadable now, but this hasn't shipped yet.
  • larch-dank-shell and larch-hyprland variants (no repo, no packages, no screenshot yet).
  • A LICENSE file.

Why Calamares, not a custom TUI

The original plan (below, kept for history) was a custom TUI installer, in Go with bubbletea, rejected as too much overhead to build and maintain. Calamares turned out cheaper: it already handles partitioning, encryption, bootloader install, and user creation, and forking it (larch-calamares) for branding and the few Larch-specific steps (larch-preinstall, larch-postinstall) was far less work than building and maintaining all of that from scratch.

Original custom-TUI plan (superseded)
  • Runs as root via pkexec/sudo for disk operations.
  • Flow: welcome screen, pre-flight checks (internet, UEFI vs BIOS), disk selection and partitioning (Auto erase-disk vs Manual), system basics (hostname, timezone, locale, keyboard, user account), custom choice pages (shell: fish vs zsh, desktop shell: noctalia vs dank material shell), summary and confirm, automated install with live progress, done screen.
  • Launch: a tray icon (SNI over D-Bus, likely a small Go binary using getlantern/systray) or a terminal command, opening a fullscreen terminal via a niri window rule matching the installer's window title, autostarted through niri's spawn-at-startup.

None of this shipped. The actual installer doesn't offer a shell/desktop-shell choice at all (zsh + noctalia, same as the live session), and launches via niri spawn-at-startup running Calamares directly, not a tray icon or terminal wrapper.

Open decisions

  • Whether to chase full plasma-integration (and its kwin/plasma-workspace dependency chain) to fix KDE app theming, see Known issues.

On this page