Skip to content

Repository files navigation

⌂ haus

One flake raises the whole Mac.

pre-release · Nothing here changes your Mac without a way back: every rebuild is a Nix generation haus rollback returns to, and macOS's own settings — the one thing a rollback can't reach — are what haus capture and haus revert-settings are for. That's the intent, not a warranty: run it on a machine you can afford to rebuild, and tell us what breaks.


Tiling windows, a status bar, a ⌘Space palette, the terminal, Touch ID for sudo, and every app you actually use — declared in one file, applied by one command, native to the grain of the Mac rather than a Linux desktop bolted onto it. Wipe the machine, run one line, and the house stands again exactly as it was, down to the fog-grey.

haus is the layer: nix-darwin modules, the haus.* options you set, the haus CLI you run. A desktop is one complete set of answers to those options. hacker is the first desktop — grey, quiet, developer-shaped. This repo ships both; hausfold is the org that makes them, which is why the repo is hausfold/haus.

curl -fsSL https://hausfold.co/haus.sh | bash

That puts the prerequisites in place and scaffolds a thin config of your own at ~/.config/nix. It selects no desktop, so nothing you can see changes until you turn a room on; hausfold.co/hacker.sh selects hacker instead. You never edit this repo to use it.

the manual

📖 hausfold.co/docs/haus — and it only lives there: installing, choosing a desktop, what each room does, every haus command, every option, keeping it current and leaving.

Taking one room into a flake of your own — the tiling, the bar — is how the flakes fit together. Changing your Mac by asking an agent is the AI room.

in this repo

  • AGENTS.md — hacking on the house
  • THANKS.md — the founding testers, and the projects haus is built on
  • docs/model.md — the contract the modules are written against: layer, room, desktop, host, and what each one may own
  • docs/macos-settings.md — what a desktop can actually set, measured domain by domain
  • docs/focus.md — the design record for a room built against an API Apple does not ship: the declarative hotkey, the alternatives rejected, and the rules the scene daemon loses every argument by. The user-facing half is hausfold.co/docs/haus/rooms/focus
  • docs/night-shift-internals.md — the seams an unattended merge shift leans on here, none of them visible from the shift's own side: why the always lid hold draws nothing, the fixer-lane endings that leave no record, the nine-column usage feed it meters against, and what a night puts on screen. The operator half is hausfold.co/docs/haus/night-shift

⌂ hausfold

About

nix-darwin for the settings you always change by hand

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages