melreusthe rectangle field manual

Config

Customising Snap Areas: Regions, Modifiers and the Drag Footprint

Every snap region can be switched off individually, snapping can be gated behind a held key, and the preview overlay is fully themeable. None of it is in the settings window.

15 Jul 2026 · 7 min read · updated for current macOS

Snap areas — bit field mapbit 0bit 1bit 2bit 3bit 4bit 5bit 6bit 7bit 8bit 9bit 10bit 11ignoredSnapAreas = sum of 2^bit
The complete region map with bit indices. Sum the powers of two for the regions you want disabled.

Disabling individual regions

Regions are addressed as a bit field. Each has an index; the value you write is the sum of two raised to each index you want ignored. This sounds worse than it is — the table gives you the value directly.

BitRegionActionAdd
0Top edgeMaximize1
1Bottom edgeThirds2
2Left edgeLeft half4
3Right edgeRight half8
4Top-left cornerTop-left quarter16
5Top-right cornerTop-right quarter32
6Bottom-left cornerBottom-left quarter64
7Bottom-right cornerBottom-right quarter128
8Below top-left cornerTop half256
9Below top-right cornerTop half512
10Above bottom-left cornerBottom half1024
11Above bottom-right cornerBottom half2048
# just the top maximise region
defaults write com.knollsoft.Rectangle ignoredSnapAreas -int 1

# all four half-regions beside the corners: 256+512+1024+2048
defaults write com.knollsoft.Rectangle ignoredSnapAreas -int 3840

# corners only, keep the edges: 16+32+64+128
defaults write com.knollsoft.Rectangle ignoredSnapAreas -int 240

# top and bottom edges: 1+2
defaults write com.knollsoft.Rectangle ignoredSnapAreas -int 3
killall Rectangle && open -a Rectangle
The most common single change

Disabling bit 0. Accidental maximising when moving a window near the top of the screen is by a wide margin the most resented snap behaviour, and turning off that one region keeps everything else intact.

Adjusting how easy a region is to hit

Rather than disabling a region outright, you can make it harder to enter. Each edge has an independent margin, defaulting to 5:

defaults write com.knollsoft.Rectangle snapEdgeMarginTop -int 20
defaults write com.knollsoft.Rectangle snapEdgeMarginBottom -int 10
defaults write com.knollsoft.Rectangle snapEdgeMarginLeft -int 10
defaults write com.knollsoft.Rectangle snapEdgeMarginRight -int 10

Counter-intuitively, a larger number here means the region is entered less easily, so this is the middle ground between leaving a region on and turning it off. Worth trying before reaching for the bit field.

Requiring a modifier key

The decisive option: snapping only occurs while a chosen modifier is held. Ordinary window dragging then never triggers anything, which makes drag-to-snap a deliberate action rather than an ambient hazard.

ModifierValue
Command1048576
Option524288
Control262144
Shift131072
Fn8388608
# hold Command to snap
defaults write com.knollsoft.Rectangle snapModifiers -int 1048576

# hold Control+Shift: 262144 + 131072
defaults write com.knollsoft.Rectangle snapModifiers -int 393216

# remove the requirement entirely
defaults delete com.knollsoft.Rectangle snapModifiers
This is a common cause of "snapping stopped working"

If a configuration was imported from another machine, or set months ago and forgotten, snapping simply does nothing and there is no indication why. Reading this key is the first check when drag-to-snap appears dead.

Extra regions: sixths

Off by default. Once enabled, drag a window to a corner and then slide along the edge toward the thirds region to land on a sixth:

defaults write com.knollsoft.Rectangle sixthsSnapArea -bool true

On a 34-inch or wider display this makes a six-panel arrangement reachable by dragging, which the default region set cannot do. On a laptop it is close to useless — a sixth of a 14-inch panel is not a working area.

Restyling the drag footprint

The translucent preview shown while dragging is the app's only real visual element, and every aspect of it is configurable.

# transparency (default 0.3)
defaults write com.knollsoft.Rectangle footprintAlpha -float 0.45

# border thickness in pixels (default 2)
defaults write com.knollsoft.Rectangle footprintBorderWidth -float 3

# colour, as RGB components between 0 and 1
defaults write com.knollsoft.Rectangle footprintColor -string "{\"red\":0,\"blue\":0.5,\"green\":0.5}"

# disable the fade-out
defaults write com.knollsoft.Rectangle footprintFade -int 2

# animation duration multiplier (default 0 — no animation)
defaults write com.knollsoft.Rectangle footprintAnimationDurationMultiplier -float 1.5

Two practical reasons to change these rather than aesthetic ones. On a very bright display the default alpha can be hard to see, and raising it plus thickening the border makes the target unmistakable. On a dark theme, a colour that contrasts with your wallpaper prevents the preview disappearing into the background entirely.

Mission Control and fast upward drags

Dragging a window quickly toward the top of the screen can trigger Mission Control rather than the maximise region. This is a system gesture. It can be suppressed for fast drags while leaving slow deliberate ones working:

defaults write com.knollsoft.Rectangle missionControlDragging -int 2

# how far off-screen is tolerated, in pixels (default 25)
defaults write com.knollsoft.Rectangle missionControlDraggingAllowedOffscreenDistance -float 40

# how long the suppression lasts, in milliseconds (default 250)
defaults write com.knollsoft.Rectangle missionControlDraggingDisallowedDuration -int 400
Read this before enabling

Suppression is documented to interfere with drag-and-drop in certain applications — Adobe Illustrator is named explicitly — and can affect text selection in a few others. If dragging inside a specific app becomes strange afterwards, this is why. Set it back to 1 and live with Mission Control instead.

Get the current build

Rectangle is free and open source. Everything documented here works in the standard build.

Download from rectangleapp.com

Questions

How do I stop windows maximising when I drag near the top?

Either disable region bit 0 with ignoredSnapAreas set to 1, or increase snapEdgeMarginTop.

Why does dragging to an edge do nothing at all?

Check snapModifiers. If a modifier requirement is set, snapping needs that key held.

Can I have different snap areas per display?

No. The region configuration applies to every screen.

What does the footprint colour string look like?

A JSON object with red, green and blue components between 0 and 1, passed as an escaped string.