HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
rxhanson
Rectangle
Swift2019–2026
rxhanson / Rectangle

Rectangle

Move and resize windows on macOS with keyboard shortcuts and snap areas

54Distinct people
61Mentions
6Explicit recommenders
30.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Move and resize windows on macOS with keyboard shortcuts and snap areas

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Wow, I didn't know there was a paid Pro option, but the same developer also makes the open source app Rectangle, which sounds like the same thing minus a few features. I use it…

varenc used a recommendation phrase. 6 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:03:30 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year61 dated mentions

Observed mentions: 2019-08-06 05:18:24 UTC to 2026-06-23 14:39:02 UTC.

0510152019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 7 mentions; 2 submissions, 5 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 16 mentions; 3 submissions, 13 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 16 mentions; 4 submissions, 12 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 11 mentions; 0 submissions, 11 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC211
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC725
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC16313
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC16412
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC11011
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC606
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 12, 2026.

Read the project’s introduction
Rectangle English | 简体中文 Rectangle is a window management app for macOS based on Spectacle. System Requirements Rectangle supports macOS v14+. For macOS 10.15 - 13: v1.100 For macOS 10.13 and 10.14: v0.73 Installation You can download the latest dmg from https://rectangleapp.com or the Releases page. Or install with brew cask: brew install --cask rectangle How to use it The keyboard shortcuts are self explanatory, but the snap areas can use some explanation if you've never used them on Windows or other window management apps. Drag a window to the edge of the screen. When the mouse cursor reaches the edge of the screen, you'll see a footprint that Rectangle will attempt to resize and move the window to when the click is released. Snap Area Resulting Action Left or right edge Left or right half Top Maximize Corners Quarter in respective corner Left or right edge, just above or below a corner Top or bottom half Bottom left, center, or right third Respective third Bottom left or right third, then drag to bottom center First or last two thirds, respectively In Behavior > Extras, enable Animate windows for smooth window resizing, or in Snap Areas, enable Blur footprint for a blurred snap preview. Both are off by default. Animated snapping keeps the selected edge or center aligned when an app limits its window size or aspect ratio. Dragging a snapped window starts restoring its previous size as the window begins moving, and a quick release lets the remaining restore animation continue. Far-right title-bar grabs can still show visible jumps. Title-bar double-click maximize/restore follows the same animation setting and timing as snapping. Window animation has been tested in known scenarios, but remains experimental because repeatedly updating the window's size and position during the transition may cause issues in some edge cases. Tile windows in rows or columns In Behavior > Extras, enable Show Extra shortcuts in menu to include Rows and Columns in the Tiling submenu. Their keyboard shortcuts remain available when the submenu is hidden. In Settings > Shortcuts, expand ⋯ and then Extra to assign separate keys to Tile in Rows and Tile in Columns. Each action arranges ordinary windows in the current Space on the display containing the focused window, including windows covered by others. When no ordinary window is focused, the display under the mouse pointer is used instead. Tile All uses the same display-selection rule. Normally, windows on another display stay in place, and an empty target display does nothing. When Rectangle's combined-display mode is enabled and macOS "Displays have separate Spaces" is disabled, Rows and Columns instead tile across the combined display area. Rows run from top to bottom; columns run from left to right. Within either direction, Rectangle uses the windows' upper-left positions before moving them to choose their order. From an unrecognized layout, the first press starts with one window per row or column. Repeating the action cycles through distinct grid layouts. Click the gear button next to Tile in Rows to set Maximum windows per column and Maximum windows per row, which control the cycle independently. Both default to 3 and are independent of the single-window Repeated commands setting. Set either limit to 1 to keep that action's original one-window-per-row-or-column behavior. Existing saved limits are preserved. Windows are balanced across occupied rows or columns, with no deliberately empty cells. For example, six windows with a column limit of 3 cycle through six columns of one, three columns of two, two columns of three, then repeat. Five windows cycle through column populations 1,1,1,1,1, 2,2,1, and 3,2. A column with fewer windows still fills its full height; rows behave the same way across their full width. Duplicate layouts are skipped, so four windows with a limit of 3 alternate between four groups of one and two groups of two. Limits above the number of windows add no layouts. Columns have equal widths and rows have equal heights, within one display pixel, when the apps allow it. The grid fills the selected work area inside macOS reservations (such as the menu bar and Dock) and Rectangle's configured screen-edge gaps. App size restrictions take precedence: if two columns share 1000 pixels and one requires at least 600, a feasible allocation is 600/400. If no allocation satisfies all app restrictions, Rectangle still attempts the layout, which may leave a gap or overlap. If an app does not respond in time, the layout may remain partial. Moving or resizing a window, opening or closing one, or changing screen-edge gaps does not rearrange windows automatically. The next press of the same action reapplies its active grid layout using the current windows and their positions. A press that would leave the layout unchanged advances immediately. Lowering a limit below the active layout uses the greatest allowed layout on the next press. Rectangle keeps the active layout only while it is running. After a restart, the first press advances from an intact, recognizable grid; otherwise it starts with one window per row or column. The Todo window is excluded using the same rules as Rectangle's other multi-window actions. The bands respect the existing Todo sidebar reservation. For example, with 1000 pixels available and a 200-pixel sidebar reservation, the other windows tile within the remaining 800 pixels while Todo stays in place. Cycle stacked windows When several windows are snapped to the same area, such as three windows on the left half, only the front one is visible. In Settings > Behavior > Stacked Windows, assign keys to Cycle stacked windows and Cycle stacked windows backward. Each press brings forward one window from the stack that the focused window belongs to. A window is in the stack when it sits at the same position as the window focused at the first press, or is offset from it by Offset window position on overlap, whatever its size.
Read the full README on GitHub

What Hacker News says

7 sources
luizfelberti·Sep 6, 2020Recommendation phrase
I used to use Moom and then Divvy, but switched over to a lighter weight and OSS alternative: Rectangle [0], which is a successor to (now unmaintained) Spectacle Easier to automate setup through Homebrew, no need to store/activate the license or anything, doesn't have the "draw the window position" popup thingy, but I don't really care about that and gotten used to the (very simple) default shortcuts. I highly recommend it, give it a try if you're interested! [0] https://rectangleapp.com or https://github.com/rxhanson/Rectangle
In Hard to discover tips and apps for macOS

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.