Small apps, native and web. iPhone, Mac, browser.
dwmac
A keyboard-first tiling window manager for macOS. Windows arrange themselves and every workspace is one key away.
Coming soon
Not just the newest Macs
Works on macOS 13 Ventura and up
dwmac runs on Ventura, Sonoma, Sequoia and Tahoe, on Intel and Apple silicon alike. It even matches its focus outline to each version’s window corners, so it looks at home on all of them.
- 13 Ventura
- 14 Sonoma
- 15 Sequoia
- 26 Tahoe
Universal binary: one download runs natively on both Intel and Apple silicon Macs. No Rosetta, no separate builds to pick from.
I’ve been using dwm, the dynamic window manager, forever. It’s an amazing Linux window manager that tiles every window, keeps workspaces a key away and never makes you touch the mouse. Nice and simple, nice and fast. I just couldn’t let it go, so I brought it to the Mac.
dwmac is dwm’s way of working, smuggled across to macOS. Windows arrange themselves, a little bar sits over the menu bar, and everything moves from the keyboard. Changing a setting doesn’t mean editing a C header and recompiling, either. It’s all in Settings, or a plain text config file if you prefer. dwmac: dynamic window manager, à la carte.
How it works
Windows tile into a master and stack: the main window takes the left side and the rest stack down the right. Open a window and it slots in. Close one and the others close the gap. Make the master column wider or narrower with a key, or swap any window into the master spot.
Need to focus on one thing? Monocle shows one window at a time, full size, and one key flips you back to tiled.
Workspaces
You get ten workspaces on every display. Option + 1 to 0 switches between them, or use the letter row q to p if that’s easier to reach. Add Shift to send the focused window to another workspace. Give a workspace a name and it shows on the bar.
dwmac remembers where things go. Quit it, restart your Mac, and your windows land back on the same workspaces.
The bar
A dwm-style bar sits over the macOS menu bar: your workspaces on the left, the layout, the app and window you’re in, then the clock, weather and battery on the right. Workspaces with windows on them get a small marker. Show the app name, the window title or both, and set the font, size and margins to taste. Don’t want it? One key hides it.
Looks like it belongs
The focused window gets a thin outline whose corners follow macOS’s own: tighter on Ventura to Sequoia, rounder on Tahoe. Gaps and the outline default to a neat 2 pixels and sit flush with the edge of the screen, and you can set your own sizes in Settings.
It can also tidy the desktop: fill it with a flat colour or your own image, and hide the desktop icons if you’d rather not see them.
Stays out of the way
Dialogs, small panels and Picture in Picture float on their own, so they never get squashed into a tile. Float any window yourself with a key. Got more than one display? Move focus or a window between them from the keyboard.
Focus follows the mouse if you want it to, and Command-Tab still works the way it always has.
Other window managers
dwmac isn’t the only way to tile on a Mac, and there are some great ones out there. These are all open source and well worth a look:
- AeroSpace: i3-style tiling, where windows sit in a tree you split and nest however you like. It runs its own workspaces instead of macOS Spaces, and it’s set up in a text config file.
- yabai: binary space partitioning, so each new window splits the space of the one before it. Very powerful and scriptable, usually paired with skhd for the keys. Some features need System Integrity Protection partly turned off.
- Amethyst: xmonad-style automatic tiling with lots of layouts to flip between, set up in a normal settings window, and it works with macOS Spaces.
They’re all amazing and really well thought out. I just wanted one that works like dwm, because that’s what I’m used to: a master on the left, a stack down the right and nothing to think about. And I wanted to be able to change it to exactly how I work. That’s dwmac.
Setup
First launch asks for Accessibility, to move and resize windows, and Input Monitoring, so the keys work in every app. Turn both on in System Settings and dwmac starts tiling.
Visual options live in Settings. Keys and app rules live in a plain text file, ~/.config/dwmac/config.toml, which dwmac creates for you on first launch. Change the modifier key, rebind anything, or send an app to a workspace every time it opens.
Download the config template. It lists every option in alphabetical order with its default, plus example rules for Firefox, Emacs, Thunderbird and friends, and Calculator and System Settings set to float. Save it as ~/.config/dwmac/config.toml and keep what you want.
If the keys ever stop working, another app has probably left Secure Keyboard Entry on. macOS uses it in password fields to hide your typing from apps like this one. Close that app or prompt and the keys come back.
Privacy
No account, no analytics, no crash reporting. The only time dwmac goes online is for the weather on the bar. It asks macOS for your location once, with the usual Location Services prompt, rounds it to about a kilometre, and gets the forecast from Open-Meteo. Say no and you just don’t get the weather. Nothing about your windows or keys ever leaves your Mac.
Don’t just take my word for it. A network monitor like LuLu (free) or Little Snitch shows every connection an app tries to make, and you should be running one on new software anyway. The only thing you’ll see from dwmac is the weather request to Open-Meteo.
The general stuff is in the Privacy Policy.
Price
Free.
Requirements
macOS 13 Ventura or later. Universal binary, so it runs natively on Intel and Apple silicon.
Why it’s not on the App Store
Apple only takes Mac apps that run inside its sandbox, and a window manager has to move other apps’ windows and listen for keys meant for them. That can’t work in there. So dwmac will be a direct download instead, signed with my Apple Developer ID and notarized by Apple, which means Apple scans every build for malware before it goes out and macOS won’t open a copy anyone has tampered with.
All the keys
The modifier is Option by default. You can switch it to Control or Command, and Control + Option + Command works on every key too.
Workspaces
- Option + 1-9, 0 or q-p: switch workspace
- Option + Shift + 1-9, 0 or q-p: move the window to a workspace
- Option + Tab: back to the last workspace
- Option + N: name the current workspace
Windows
- Option + J / K: focus the next / previous window
- Option + Return: swap the window into the master spot
- Option + H / L: narrower / wider master column
- Option + M: tiled or monocle
- Option + F: float or tile the window
- Option + Shift + C: close the window
Displays
- Option + , / .: focus the previous / next display
- Option + Shift + , / .: move the window to the previous / next display
Everything else
- Option + B: show or hide the bar
- Option + Shift + Return: open your terminal
- Option + Shift + /: reload the config