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 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 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

61 sources
Package manager: Nix(alternative to homebrew) https://nixos.org/download/#nix-install-macos Package management: Nix-darwin https://github.com/nix-darwin/nix-darwin Browsers: - Librewolf https://librewolf.net - Tor https://www.torproject.org - Orion https://orionbrowser.com Video downloader: Yt-dlp https://github.com/yt-dlp/yt-dlp Video/audio player: Mpv https://github.com/mpv-player/mpv Video editor: LosslessCut https://github.com/mifi/lossless-cut Video encoding: Ffmpeg https://search.nixos.org/packages?&query=ffmpeg Office suite: LibreOffice https://www.libreoffice.org IDE: Zed https://github.com/zed-industries/zed Window management: Rectangle https://github.com/rxhanson/Rectangle Menubar system monitor: Stats https://github.com/exelban/stats Screen tweaks: MonitorControl https://github.com/MonitorControl/MonitorControl Autorun ch
Read the rest
ecker: KnockKnock https://github.com/objective-see/KnockKnock Video streaming platforms: Grayjay https://grayjay.app/desktop Communication: Signal https://signal.org/download/macos Torrenting: Transmission https://github.com/transmission/transmission VPN: Mullvad https://mullvad.net/en/download/vpn/macos DNS: NextDNS https://nextdns.io Add the following in denylist to block the constant communication with apple servers: aaplimg.com apple-cloudkit.com apple.com apple.com.akadns.net apple.com.edgekey.net apple-dns.net apple.news cdn-apple.com icloud-content.com icloud.com me.com mzstatic.com push-apple.com.akadns.net safebrowsing.apple Connect to the mac from anywhere: Tailscale https://tailscale.com/download/mac
In Ask HN: New clean macOS install. Must-have apps? Best browser?
I'm stuck with macOS at work and these have also been the most painful parts of the experience for me. Luckily, I recently found Rectangle[0] and InstantSpaceSwitcher[1]. The former gives keyboard based arranging (though not focus; still just use cmd+tab for that) while the latter gives instant transitions between virtual desktops (including shortcuts for navigating directly to a target, rather than sliding over sequentially). [0]: https://github.com/rxhanson/Rectangle [1]: https://github.com/jurplel/InstantSpaceSwitcher Recent discussion on the latter: https://news.ycombinator.com/item?id=47708818
In It's hard to justify buying a Framework 12
As someone who grew up on DOS, Windows, OS/2 and Linux, macOS definitely took some getting used to (and I still have many gripes with it, especially the window management). Rectangle makes it better: https://github.com/rxhanson/Rectangle That said, though, Macbooks are far and away the best laptop hardware you can get right now, and the combination of a POSIX/unix-like CLI environment and the ability to run common general-user desktop apps (Adobe/Microsoft/entertainment/etc) is very nice. On Linux you'd have to emulate some of the desktop apps, and on Windows you'd have to use WSL or Docker or such to gain a good *nix shell. And you'd have to put up with all the Windows ad spam and copilot spam. But I do wish Apple would allow other operating systems on their laptops, and properly support them. I'd love to be able to properly BootCamp int
Read the rest
o Asahi or Windows for Arm with all the required drivers, etc.
In From M1 MacBook to Arch Linux: A month-long experiment that became permanenent
Interesting, I don’t have any of these issue due to 2 pieces of software: displayplacer [0] and Phoenix [1]. Both free and open source. displayplacer is a CLI tool that once you have your monitors configured how you want them, it can give you a command you can run in the future to reconfigure your monitors the same way again. I have 2 commands stored (that I activate via Alfred but I could have also set up aliases in zsh) for the 2 locations I work at. When I sit down I run the command and everything snaps into place. I could automate this to run automatically but I haven’t felt the need. Phoenix is a tool that lets me write my own keyboard shortcuts for window management. I have 1 key combo that detects which location I’m at (by looking at monitor UUIDs) then positions all my windows how I like them. I also have shortcuts for resizing wi
Read the rest
ndows on a monitor or moving windows between monitors. You can accomplish something similar with Moom [2] (paid) and Rectangle [3] (free) or Magnet [4] (paid). As for the dock issue, I use right-side dock with auto-hide and I don't find this bothersome at all. I use it plenty in addition to Alfred to launch apps. I have 3 monitors, 1 horizontal in the middle and 2 vertical on each side. Lastly the Menu Bar, I have it only on my center display, always visible. Never felt like that was a problem or limiting to me. [0] https://github.com/jakehilborn/displayplacer [1] https://github.com/kasper/phoenix [2] https://manytricks.com/moom/ [3] https://github.com/rxhanson/Rectangle [4] https://magnet.crowdcafe.com
In Multiple Displays on a Mac Sucks
I'm not sure they appeal to the same group of users. macOS is IMNHO much worse than GNU/Linux with a proper window manager, much less comfortable to use with multiple desktops, and forces the use of a mouse/trackpad way too much.[1] The m2 can run Linux - but external display support is probably a long way off. So for the user wanting to run Linux - m2 isn't really viable - unless you actually work on it with just the built-in screen - for me that doesn't work ergonomically. I have the m2 - it's not terrible - I suspect I'd prefer one of these. [1] Rectangle and AutoRaise helps a lot, making the UX livable: https://github.com/sbmpost/AutoRaise https://github.com/rxhanson/Rectangle
In Framework 13 AMD 7040 Series: A Developer's First Impressions

Showing the 15 most recent of 61 sources. Enable JavaScript to search and browse every indexed mention.

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.