Zachary Gray

A keyboard-driven tiling window manager for macOS. Caps Lock becomes a Hypr key and windows stop being your problem.

An eighteen-second showreel. A Caps Lock key labelled hypr is pressed, and the words "Tile your Mac from the keyboard" appear. A Mac desktop full of overlapping windows snaps into a tiled layout, then each shortcut plays in turn, shown as keycaps under the screen: open a terminal, move focus, swap windows, resize, flip a split, float a window, and switch workspaces. The tiles fold into the HyprMac logo, followed by the line "Keyboard-driven tiling for macOS" and the address hyprmac.app.

  • Public, MITStatus
  • 2026Started
  • Agents and toolsKind

What it is

The code is public, and you can run it yourself.

If your Mac usually looks like a pile of windows stacked on top of each other, and the one you want is always at the bottom, HyprMac is for you. It takes after Hyprland, and it gives your Caps Lock key its first real job.

Open an app and it slots into a tiled layout. No dragging, no resizing, no digging. Hold Caps Lock, which becomes your Hypr key, and tap an arrow to jump between windows. Add Shift to swap them. Tap a number to switch workspaces. If you forget a shortcut, Hypr + K shows all of them.

It has dwindle tiling, ten workspaces, and directional focus and swap across monitors, and you never have to disable SIP. It's event-driven off the accessibility APIs instead of polling, ships through a Homebrew tap, and updates itself.

A handful of keys covers the basics, and most people have them down in a few minutes. When you want more, every keybind can be remapped, and you can point keys at your own scripts.

Five keys

That's all you need to know on day one.

KeysWhat happens
Hypr + ← → ↑ ↓Move between windows
Hypr + Shift + ← → ↑ ↓Swap windows around
Hypr + 1 to 9, Hypr + 0Jump to workspace 1 to 9, or 10
Hypr + ReturnOpen Terminal
Hypr + KShow every keybind

The full list of defaults is at hyprmac.app/guides/keybinds. Every one of them can be changed in Settings.

Install

Two lines of Homebrew, or a DMG if you prefer.

Homebrew
brew trust --cask zacharytgray/hyprmac/hyprmac
brew install --cask zacharytgray/hyprmac/hyprmac

Homebrew won't load casks from a third-party tap until you trust it. The first line trusts only the HyprMac cask, which also lets brew upgrade --cask hyprmac work later.

Or download HyprMac.dmg, open it, and drag HyprMac to Applications. The install guide covers first-run setup, permissions and the macOS settings I recommend.

You need macOS 13 (Ventura) or later, and the Accessibility permission in System Settings. System Integrity Protection stays on. For the default Caps Lock Hypr key, leave Caps Lock set to Caps Lock under Keyboard Shortcuts, Modifier Keys. HyprMac does the remapping itself.

It checks for updates on its own through Sparkle and offers to install them. After an update, macOS may ask you to grant Accessibility again, because the signature changes with each release.

For Hyprland people

You'll feel at home. The differences are mostly macOS being macOS.

  1. Tiling

    BSP dwindle, like Hyprland's default layout. New windows split the focused one, and Hypr + J flips the split. Drag a window by its title bar onto another tile's edge to insert it there, even on another monitor.

  2. Workspaces

    Ten of them, plus a scratchpad and an overview on Hypr + O. macOS has no public API for this, so HyprMac keeps its own virtual workspaces and hides the other workspaces' windows when you switch.

  3. Fullscreen

    Native macOS fullscreen spawns its own Space and wrecks the layout. Hypr + F fills the display with the window over its workspace instead, and pressing it again puts the window back in its tile.

  4. Config

    Everything, the Hypr key included, lives in Settings and is saved as JSON. Focus follows the mouse by default. You can pin apps to workspaces and save a layout for each display setup.

The catch

macOS was not built to let other apps manage its windows.

Every tiling window manager on the Mac is working against that. Some apps push back, and now and then a window will insist on doing its own thing. HyprMac is in active development and very usable day to day. When something misbehaves, open an issue and tell me about it.

Chasing its bugs is where the idea for The time between prompts came from.

From source

If you would rather build it yourself.

Build
git clone https://github.com/zacharytgray/HyprMac.git
cd HyprMac

brew install xcodegen
xcodegen generate

export DEVELOPMENT_TEAM=YOUR_TEAM_ID
xcodebuild -project HyprMac.xcodeproj -scheme HyprMac -configuration Debug \
  -derivedDataPath build DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM build

cp -r build/Build/Products/Debug/HyprMac.app /Applications/

Bug reports, ideas and pull requests are all welcome. The repo has docs on the architecture, the tiling algorithm and the release pipeline.

Go run it

The repo has everything on this page, and the rest.