JOE DESIGNS

A dev shop in Albuquerque New Mexico.

Shaka 🤙

Window management that feels native

Shaka is a macOS window manager that lives in your menu bar and has two personalities. Flow lets windows drift — move, resize, snap and focus them with keyboard shortcuts and spring-based animations, with nothing enforced. Reef is the hard structure underneath: a Hyprland-style dwindle tiling layout where every window is a tile and nothing overlaps, with nine workspaces on every display. Ctrl + / switches between them, and switching back puts every window exactly where Reef found it.

Built with Claude

Shaka was built entirely with Claude. The whole thing — from the Swift accessibility APIs to the spring animation physics to the install script — came together through conversation. It's a good example of what's possible when you pair AI with a clear idea of what you want to build. No boilerplate marathon, no digging through Apple documentation for hours. Just describe the behavior, iterate, and ship.

One-Line Install

curl -fsSL https://raw.githubusercontent.com/wes/shaka/main/install.sh | bash

That's it. The script pulls the repo, builds from source with Swift Package Manager, and drops the app in /Applications. No Homebrew tap, no DMG, no drag-and-drop. Requires macOS 13+ and Xcode Command Line Tools.

How It Works

Shaka runs as a menu bar app (🤙 in Flow, 👊 in Reef) and listens for global keyboard shortcuts. Everything uses Ctrl as the leader key, and there is only one column of keys — the same binding does the equivalent thing in each mode:

ShortcutFlow 🤙Reef 👊
Ctrl + ArrowsFocus the nearest windowFocus the tile in that direction
Ctrl + Opt + ArrowsNudge the windowSwap the tile with its neighbour
Ctrl + Shift + ArrowsGrow or shrink from centreResize the split
Ctrl + Cmd + ArrowsSnap, cycling ½ → ⅓ → ⅔Send to the next display
Ctrl + ReturnCentre the windowPromote to the master tile
Ctrl + Shift + ReturnFill the screenToggle fullscreen
Ctrl + /Switch to ReefSwitch to Flow

| Ctrl + K | Cheat sheet for this mode | Cheat sheet for this mode |

Reef adds the keys a tiler needs and a floating manager has no use for: Ctrl + Shift + S flips a tile's split direction, Ctrl + Shift + F floats a window out of the tiling, and Ctrl + Opt + Tab cycles focus. In Flow those keys are left unbound, so they pass straight through to whatever app you are in.

In Flow, windows snap to screen edges automatically at 20px, so everything stays clean without manual alignment. In Reef nothing needs aligning — the tree fills the screen exactly, with configurable gaps.

Workspaces

Every display gets nine workspaces, and each one is a full dwindle tree of its own — its own windows, its own splits, its own ratios. Ctrl + 1–9 brings one to the screen, Ctrl + Shift + 1–9 sends the focused window to one without following it there, and Ctrl + ` bounces back to the one you were last on.

Windows on a workspace that is not showing are slid off the bottom of the display rather than minimised or closed, so returning to it springs them back up into their tiles. These are Shaka's own workspaces, not macOS Spaces: they leave Mission Control alone, and their keys are unbound in Flow, so if you have macOS's own "Switch to Desktop N" on Ctrl + 1–9, Flow still hands those to macOS and Reef takes them for itself.

Resizing, and the mouse

Every edge of a tile that is not the screen border is the split line of exactly one node in the tree, so resizing is never approximate: move that edge and the tiles either side of it reflow. Three gestures reach the same machinery — Ctrl + Shift + Arrows, Ctrl + Cmd + right-drag inside a tile, and grabbing the window's own border.

The last one is the interesting one. Shaka does not intercept that drag at all: the app resizes itself the way it always has, and Shaka reads the frame it lands on and folds the difference back into the split ratios. The window keeps the size you gave it because the layout changed to agree with it. Ctrl + Cmd + drag throws a tile around the layout, with tiles trading places as the cursor crosses them.

A cheat sheet built from your own config

Ctrl + K puts every shortcut that means something in the mode you are in on screen, built from the live bindings rather than a hard-coded list — so it stays right the moment after you rebind something. The same list lives in the menu bar under Shortcuts, where every row runs its action when you pick it. One catalogue in the source feeds the overlay, the menu and the generated config file, so an action cannot show up in one of them with the wrong key.

Spring Animations

The animations aren't just cosmetic. Shaka uses spring-based physics (stiffness and damping) so windows feel like they have weight. When you nudge a window it accelerates, decelerates, and settles naturally. It makes the whole experience feel like part of macOS rather than a third-party bolt-on.

Configuration

Everything is configurable through a TOML file at ~/.config/shaka/config.toml:

default_mode = "flow"     # or "reef", to tile from launch

move_step = 80            # points per nudge            (Flow)
resize_step = 80          # points per resize
edge_snap = 20            # sticky screen edges         (Flow)

gaps_in = 6               # space around each tile      (Reef)
gaps_out = 12             # space at the screen edge    (Reef)
min_tile_size = 120       # smallest tile a resize may leave
workspaces = 9            # per display, each its own tiling
workspace_hide = "offscreen"   # or "minimize"

mouse_modifier = "leader+cmd"  # hold to drag or resize a tile
mouse_edge_drag = true         # border drags reshape the tiling

animation_stiffness = 300
animation_damping = 28

The [bindings] table below that lists every action with a comment saying what it does in Flow and then in Reef. Bindings you leave out fall back to the defaults, so an older config keeps working and picks up new actions automatically.

Edit it from the menu bar icon — changes apply without restarting.

Why Shaka

Most window managers either do too much or feel foreign on macOS, and most of them make you pick a side: float or tile. Shaka does not — it does both on one set of keys, and the tiling is something you drop onto your screen for an afternoon and lift back off, not something you commit your desktop to. It supports multiple displays, gives each of them nine workspaces, respects screen edges, and never touches your dock. The whole project is open source under MIT. There is a full tour of the app at /shaka, including a drawn desktop you can drive with the real shortcuts.