hacker
An opinionated macOS, raised in the fog: tiling windows, a bar, a themed terminal. The desktop most people install haus by installing.
hacker is a Mac arranged like a tiling Linux rig, but native to the grain of the Mac: fog-grey, keyboard-first, and the same after you wipe the machine. It is the desktop you get if you don't pick one, and the one most people meet haus through.
You never edit the desktop 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 haus stays upstream.
curl -fsSL https://hausfold.co/nebelhaus.sh | bashThat URL picks this desktop, so the installer skips the question. Install has the rest: what the script does, how to read it first, and the one command that actually changes the Mac.
What it turns on
haus is organised into rooms, each one a capability with its own switch. hacker turns nearly all of them on.
| Room | What you get |
|---|---|
| Windows | Tiling launched at boot, and Caps-Lock as the leader key instead of a chord |
| Bar | Workspaces, weather, media, battery, clock, and a light that reddens when something has stopped |
| Launcher | pounce on ⌘Space, where every command is a file you can write |
| Shelf | perch, dropping out of the notch to catch a drag on its way somewhere else |
| Development | Ghostty, zellij, zsh, a tinted prompt, helix and a toolbelt that all matches |
| Focus | One hotkey for Do Not Disturb, your Slack status, and your own hooks |
| Security | Touch ID for sudo, inside a multiplexer too, and secrets declared rather than pasted |
| AI | Coding agents, each in its own checkout of the repo, so they never collide |
| Appearance | The nebelung palette and a generated wallpaper, rendered onto twenty-odd tools at once |
Anything it chose, your own file overrides in a line; see Customize a desktop.
First moves
The first switch has finished. Windows now tile themselves, the menu bar has
been replaced, your terminal opens into a themed session, ⌘Space belongs to the
palette, and haus is on your PATH. Here's the muscle memory.
| Keys | What happens |
|---|---|
| ⌘Space | The palette. Type a few letters, hit Return. Start here for everything |
| Tap ⇪, then a letter | Launch or focus that app. T is the terminal, B the browser |
| Tap ⇪, then an arrow | Move focus between tiled windows. Keep arrowing; hold ⇧ to move the window instead |
| Tap ⇪, then a digit | Jump to that workspace. Add ⇧ to throw the current window there |
| Tap ⇪, then / | The cheatsheet, generated from your app list, so it is never out of date |
Tap Caps-Lock, don't hold it
It's a leader key now, not a modifier. Tap and release, then press the letter.
Try these in order: tap ⇪ T and the terminal opens and tiles itself;
⌘Space, type saf, Return and Safari launches; ⇪ then ← / → jumps focus
between the two; ⌥/ flips the split between horizontal and vertical;
⌘Space, type emoji, Return turns the palette into an emoji grid.
One permission to grant: a few palette features use a keyboard path macOS gates behind Accessibility. Everything else works without it.
pounce --request-accessibilityThe rest of the keys are the rooms' own, and they are written out in full where they're configured rather than copied here: Windows has tiling, the leader and every workspace throw, including how to move all of it onto keys you'd rather use; Development has the terminal's chord set; pounce has the palette. There is also a live copy on your own machine (tap ⇪ /), generated from your own tables, so use that one when they disagree.
Making it yours
Your settings live in one file, and haus edit opens it. The tweaks people
reach for first are an accent, an editor, and an app with a launcher key and a
workspace of its own.
haus.theme.accent = "sapphire"; # one accent, everywhere
haus.hearth.editorName = "neovim"; # named, so haus installs it
haus.roster.slack = { # an app, with a launcher key
key = "s";
name = "Slack";
appId = "com.tinyspeck.slackmacgap";
cask = "slack";
};
haus.workspaces.S = { # …and a workspace of its own
key = "s";
icon = ":slack:";
apps = [ "slack" ];
};Then haus rebuild. Customize a
desktop is the rest of what that file can say,
and the haus reference is every command the CLI
has.
Where to go next
Choose a desktop
The four that ship, side by side, and how to switch to another one in a single line.
Customize a desktop
The one file you edit, the dials worth knowing, and how to beat anything a desktop set.
Windows
Tiling, workspaces and the leader key in full: every default binding, and how to move them.
Choose a desktop
haus supplies rooms; a desktop curates them; your host file makes one yours. Exactly one desktop per Mac. Here are the four that ship, and how to switch.
everyday
A Mac for someone who doesn't write code: a better menu bar, a search box that opens anything, and none of the developer tooling.