nebelhaus
An opinionated macOS, raised in the fog.
macOS arranged like a tiling Linux rig but native to the grain of the Mac — one Nix flake raises the whole house. Fog-grey, quiet, and reproducible: wipe the machine, run one command, and the house stands again exactly as it was.
You never edit the rice to use it. The installer scaffolds a thin
config of your own at ~/.config/nix that consumes it as
an input, so your machine stays yours and the rice stays upstream.
Install
curl -fsSL https://nebelhaus.com/init.sh | bash
Or straight from the flake, once Nix is installed:
nix run github:hausfold/haus#bootstrap
It installs the prerequisites and scaffolds a host file for this
machine, then stops — it won't switch a config you haven't
personalised, so the first run hands the machine back to you. Once
you've made it yours, that first switch puts haus on your
PATH: haus rebuild to apply a change,
haus rollback to undo one, haus plan to see
what a rebuild would do before it does it.
What it looks like
[ shot not taken yet ]
[ shot not taken yet ]
[ shot not taken yet ]
What's in it
The house is built from composable nix-darwin modules. Take the whole thing, or import one room into a config of your own.
- den
- macOS defaults, the Homebrew framework, core CLI tools, fonts
- prowl
- AeroSpace tiling, launched at boot, Caps Lock as the leader key
- sill
- a SketchyBar bar perched on the top edge
- hearth
- zsh, a tinted starship prompt, git, helix and a themed toolbelt
- collar
- Touch ID for sudo, and rebuilds that don't stop to ask twice
- secrets
- declarative secrets — projects commit which, never the values
- pounce
- the launcher on ⌘Space, its permissions intact across rebuilds
- perch
- the notch file shelf, installed and kept at a fixed path
- hush
- one hotkey for Focus, with optional shell and Slack hooks
- theme
- the wallpaper and a wordmark derived from your accent
- apps
- the picks a finished machine gets, one switch each
Four presets ship with it — minimal,
everyday, full and
large-print — plus a writing pack. A preset is data, not
code: you can read one in a minute and know the worst it can do.
What it needs
- macOS
- the installer stops on anything that isn't a Mac
- Xcode CLT
- installed for you if it isn't there
- Nix
- Determinate Nix, installed for you. An existing Nix that Determinate doesn't own has to be removed first.
- an admin account
- the first switch needs sudo
Elsewhere
- nebelhaus.com — the docs, the guides, and support.
- first run — what to do once it's on the machine.
- github.com/hausfold/haus — the flake itself.