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,
larchlive 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/bootpartition, 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-shellandlarch-hyprlandvariants (no repo, no packages, no screenshot yet). - A
LICENSEfile.
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/sudofor 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'sspawn-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 itskwin/plasma-workspacedependency chain) to fix KDE app theming, see Known issues.