/features

A complete desktop that stays lean.

Pick a desktop and a profile at install time. The full system adds a themed, configured desktop with sensible services; extras add the heavier apps. Anything you don't want can be switched off in a module of your own.

01Profiles

Two ways to start.

"profile": "full" · default

Everything on this page. Home Manager dotfiles, theme, snapshots, OpenSnitch and the options you picked in the installer.

"profile": "minimal"

The small install: a plain desktop with the same encrypted disk, ephemeral root and hardening, Firefox, rootless Podman, Flatpak with Flathub and printing, and the helper commands a machine needs. ephemeral-setup turns it into the full system later.

02Desktops

Four desktops, each in both profiles.

  • PlasmaTiles windows with Krohnkite, three columns to start; colors from the wallpaper through matugen.
  • GNOMEExtension Manager, with the tray and Caffeine extensions on by default.
  • niriA scrollable-tiling Wayland compositor, with the Noctalia shell and login screen.
  • UmbrielWith the Noctalia shell; a keybind cheatsheet at the first login, Mod+/ afterwards.

niri and Umbriel come with Nautilus and the GNOME apps that open what's in it. Every desktop is built, and booted in a VM to its login screen, before a release.

03The full system

Next to a plain desktop, it adds:

Home Manager dotfiles
zsh, git, starship, zoxide, neovim and Ghostty
One theme everywhere
Catppuccin Mocha through Stylix, Noto Sans and JetBrains Mono
Snapshots
hourly snapper snapshots of /persist: 24 hourly, 7 daily, 4 weekly
Disk health
desktop warnings from smartd when a disk starts failing
OpenSnitch
asks before each program connects out
Syncthing and scanning
file sync between your devices, and SANE with driverless scanners
Rebuilds through nh
with a summary of what changed
Laptop extras
thermald on Intel, battery reporting, fingerprint login, when the hardware is there

Off unless you turn them on

NVIDIA
open or legacy drivers, chosen by the installer
Tailscale
with its state kept and an OpenSnitch rule
Control D
all DNS over TLS, no fallback servers
SMB shares
SMB 3.1.1 with encryption; credentials root-only
Proton Pass
settings pulled from a vault, and an SSH agent so keys never sit in ~/.ssh

Optional features in detail

04Extras

"extras": true adds the bigger things.

  • Steam, VS Code, Brave, VLC, distrobox, Syncthing Tray, 7-Zip, unrar, git-crypt and age
  • atuin, fzf, bat, tealdeer, yazi, btop and fastfetch in the shell
  • , runs any program once without installing it, and a missing command names its package
A new Ghostty window with extras: fastfetch beside the wallpaper's snowflake drawn in coloured characters, with btop below.
fastfetch on a new Ghostty window, with btop (bottom left) and fetch (bottom right, not included). From the config's README.

05App picker

No Nix files to edit to add an app.

ephemeral-apps offers over 100 common apps by category: browsers, chat, office, media, graphics, games, development, security and penetration testing, terminal apps, utilities, system tuning and virtual machines. Labels show which are unfree, which come from Flathub, and which carry a warning, such as Docker adding you to a powerful group. Every warning is shown again before anything is saved.

Picks go to apps.json, a plain list, and are installed on the next rebuild along with whatever they need: groups, settings, kept folders, and unfree packages added to the allowlist. The installer offers the same list.

The app catalog

06Helper commands

One command per job.

Everyday jobs never need nixos-rebuild or a path: flake reference. Commands that change the machine ask first and say what they're about to do; every error says what to do next.

ephemeral-updaterebuild, check a change, roll back, move to a new release
ephemeral-doctorcheck the machine; kept and lost show what survives a reboot
ephemeral-setupswitch between the full system and the small install, toggle the main options
ephemeral-appspick extra apps by category, then rebuild
ephemeral-backupsave the settings and secrets a reinstall needs, encrypted
ephemeral-passwdchange your login password safely
ephemeral-reportsystem details for a bug report, without user or host names
luks-header-backupcopy the LUKS header to a USB stick

All commands

07Limits

It's opinionated, on purpose.