Personal apps

Rectangle

Fork of Rectangle that parks app windows behind a colored edge tab

Platform
  • Mac
Status
Shipping
Stack
Swift
Started

This is a private fork of Rectangle, the open-source window manager that snaps windows into halves, thirds, and corners with keyboard shortcuts or by dragging to a screen edge. The fork tracks upstream 0.98 and keeps all of its behavior; the version numbers stay at 0.98.x so they never collide with upstream tags.

The main fork-only feature is Stash. An app listed in the Stash preferences has its main window parked offscreen behind an 8 pt colored tab on a screen edge, in one of the six classic Apple colors. Clicking the tab, or resting the cursor on the edge for a moment, slides the window in; clicking again slides it back out. Each app can use Classic mode, where the window stays out until you put it away, or Pin mode, where it slides back as soon as the cursor leaves it. Pin Open on the tab’s context menu, a double-click on the tab, or a shortcut holds a Pin-mode window out. A parked tab breathes or runs a barber-pole stripe when the window’s title or Dock badge shows unread items, which is how Google Chat and 2Do get noticed while hidden. A Pill style shrinks the tab to a short capsule, one physical inch long, that swells to show the app icon when the cursor comes near.

Other changes on top of upstream:

  • Edge ramp snapping: dragging to a side edge picks the window width from the cursor height, stepping through 5% bands with exact thirds, 35%, and 65%; the top and bottom edges do the same for height.
  • Ordered tiling: Ctrl+Opt+Cmd click numbers windows, Return tiles them in that order, and a settings tab lets you drag to reorder.
  • Left 35% and Right 65% shortcut actions that ignore the split ratio.
  • Drag-to-snap targets the topmost normal window, so transparent overlays such as Grammarly no longer catch the move.

Stash settings cover collapsed and open tab widths, the edge margin, the pin auto-hide delay, the unread style, and a per-app badge toggle, and all of them export with the rest of Rectangle’s config.