HyprMac guides

Hyprland-style tiling on a Mac

I use Hyprland on Linux and fell in love with the workflow. Windows tile themselves, focus moves with a keystroke, and my hands never leave the keyboard. I wanted that on macOS, nothing gave me the same feel, so I built HyprMac. This page is about what came across, what could not, and what to do about the parts that behave differently.

What carries over

The shape of the workflow is the same. New windows split the focused one in a dwindle layout, so the space is always divided and you never place a window by hand. One modifier starts every shortcut, and the arrows move focus and swap windows under it. Workspaces are numbers you jump to, not a carousel you scroll through. Gaps, padding, and corner radius are yours to set, the focused window carries a cyan border, and floating windows carry magenta. When you forget a binding, one key puts the whole list on screen.

The mouse is a layout tool rather than a last resort. Drag a tiled window at the edge of another and it is inserted on that side; hold the Hypr key while dragging and the two swap instead. That is close to what dragging does in a dwindle layout on Linux.

What is different, because macOS is not Wayland

HyprMac is not a compositor. It is an ordinary Mac app that drives other apps through Accessibility, so it asks windows to move and resize and then checks what macOS actually did. Nothing is patched, System Integrity Protection stays on, and if you quit HyprMac your windows are just windows again.

There is no hyprland.conf. Configuration is a native Settings window with a live layout preview, backed by JSON you can hand edit, plus optional iCloud sync between Macs. The workspaces are HyprMac’s own, not macOS Spaces: windows on a hidden workspace are parked rather than moved to another desktop, and Mission Control will not show them as separate desktops. One macOS Space per monitor is the arrangement that stays out of the way.

Two macOS habits are worth keeping. Fullscreen apps are left alone, because macOS owns that mode and fighting it is worse than stepping aside. And focus follows the mouse by default, which is lovely until you slide up to the menu bar across another window and get the wrong app’s menus. That is why Hypr and backtick exists: it jumps straight to the menu bar of the app you are in.

Floating windows

Hypr and T takes the focused window out of the layout, and pressing it again puts it back. Coming back is the interesting direction: HyprMac checks whether the layout can really accept the window at a size the app will agree to, and if it cannot, the window stays floating instead of a broken layout being committed.

Floating does not mean always on top. macOS can and will put another app above a floater, so a window you thought was lost is usually just behind a tile. Hypr and Shift with T cycles the floating windows on your visible workspaces and raises them one at a time, which finds it faster than the mouse does. If you want a window near but out of the way, the scratchpad layer is a better home for it than a floater.

Apps that resist tiling

Some Mac apps declare a minimum width or height, or simply refuse the frame they were handed. A tile that is fine on a wide display can be too narrow on a portrait one, and the app says no. HyprMac reads frames back after every move, learns the constraints it runs into, and only commits a layout it has verified, with a bounded recovery when an app will not cooperate.

When one window is the problem, there are three good answers: leave it floating, add it to the per-app list of windows that should never be tiled, or press Hypr and P to pause tiling for as long as you need. Pause keeps working while tiling is off, so it is also the way back.

HyprMac is an independent project of mine. It is inspired by Hyprland and is not a port of it or affiliated with it. Thanks also to yabai, AeroSpace, Amethyst, and skhd, which I learned from along the way.

Ready to try it? Install HyprMac, then keep the shortcut reference open for a week.