melreusthe rectangle field manual

Config

What Happens on the Second Press: Cycling Modes Explained

One preference key governs whether repetition changes the size, moves to another display, or does nothing at all. Choosing wrong is why people say the app is unpredictable.

23 Jul 2026 · 6 min read · updated for current macOS

Mode 0 — size cycling1/2then 2/3then 1/3Mode 1 — display cycling1/2 herethen next screen
The two modes people actually choose between. Both are defensible; running the wrong one feels broken.

The five modes

A single integer preference decides what a repeated press does. Everything else about repetition follows from it.

ValueNameSecond press does
<code>0</code>Halves to thirdsCycles the width: 1/2 → 2/3 → 1/3 → back
<code>1</code>Cycle displaysMoves the window to the adjacent display (left/right actions)
<code>2</code>DisabledNothing. The window stays exactly where the first press put it
<code>3</code>MixedDisplays for left/right, size cycling for everything else
<code>4</code>Repeat on next displayApplies the same action again, on the next screen
defaults write com.knollsoft.Rectangle subsequentExecutionMode -int 0
killall Rectangle && open -a Rectangle
The setting is partly exposed

The interface has a checkbox labelled along the lines of moving to an adjacent display on repeated left or right commands. That checkbox toggles between two of these five values. The other three are reachable only from the terminal.

Choosing between size cycling and display cycling

This is fundamentally a question about your hardware, and it explains why advice about it is so contradictory online — people on different desks reach opposite conclusions and both are right.

One display: choose size cycling (0). There is nowhere to send a window, so mode 1 wastes the most valuable interaction you have. Cycling means two arrow shortcuts reach six widths, which is the single biggest reduction in how much you have to memorise.

Two or three displays: consider display cycling (1). Moving a window between screens is the operation you perform most, and binding it to a repeated press of a key you already use is efficient. You give up size cycling on left and right in exchange.

Mixed (3) is the compromise. Left and right cycle displays; thirds, quarters and everything else still cycle sizes. For a docked laptop with one external monitor this is often the best of both, and it is the behaviour older versions had by default.

Disabled (2) is for people who value determinism. A shortcut always produces exactly one geometry regardless of how many times it is pressed. If you have ever been annoyed by an accidental double-tap resizing a window, this is why the mode exists.

⌃ Control+⌥ Option+First press — left half⌃ Control+⌥ Option+Second press — left two thirds (mode 0) or next display (mode 1)⌃ Control+⌥ Option+Third press — left third (mode 0)
The same keystroke, three times, under mode 0.

Cycling the centre-half commands

Centre-half commands do not cycle by default. Turning it on gives you a centred column that steps through 1/2, 2/3 and 1/3 — which is, for writing and reading, one of the most useful commands in the whole app once you have it:

defaults write com.knollsoft.Rectangle centerHalfCycles -int 1

With this enabled, a single key produces a comfortable text measure on any display, adjusted by tapping. On a 27-inch screen the two-thirds step is usually right; on an ultrawide, the third.

Directional moves and resizing

Move-left and move-right are distinct from left-half and right-half: they relocate a window without changing its size. Two settings alter that.

# make directional moves resize too, using halves-to-thirds
defaults write com.knollsoft.Rectangle resizeOnDirectionalMove -bool true

# don't centre the window along the edge it is moved toward
defaults write com.knollsoft.Rectangle centeredDirectionalMove -int 2
These two settings interact

With <code>resizeOnDirectionalMove</code> on and the mode set to cycle displays, move-left and move-right always resize to one half, and pressing again moves to the next display. That combination is documented and surprises people who expected the width to keep cycling. If your directional moves behave unexpectedly, check both keys together rather than one at a time.

Unsnapping and restore

A related repetition behaviour: dragging a snapped window away from its position restores its original pre-snap size by default. This is usually helpful — a window you snapped to a half and then dragged loose returns to the size it had before.

It is also occasionally infuriating, because a window you deliberately sized while snapped will snap back to something you did not want when moved. To turn it off:

defaults write com.knollsoft.Rectangle unsnapRestore -int 2

A decision table

Your setupRecommendedWhy
Single laptop display<code>0</code>Nowhere to send windows; size cycling is pure gain
Laptop plus one external<code>3</code>Display moves where they matter, size cycling everywhere else
Two or three externals<code>1</code> or <code>4</code>Cross-display movement is the dominant operation
One ultrawide<code>0</code> with <code>centerHalfCycles</code>One physical screen, many useful widths
You dislike surprises<code>2</code>Every shortcut has exactly one outcome, forever

Whichever you choose, live with it for a week before changing again. The complaint that a window manager is unpredictable is almost always a half-learned cycling mode rather than a defect.

Get the current build

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

Download from rectangleapp.com

Questions

Why did my window jump to another monitor?

Cycling mode 1 or 3 is active and you pressed a left or right command twice. Set it to 0 to cycle sizes instead.

Can I have both size and display cycling?

Mode 3 is the compromise: displays for left/right, sizes for everything else.

How do I stop repetition doing anything?

Set subsequentExecutionMode to 2.

Why does a two-thirds window become a third?

That is size cycling working as designed. Press again to return to a half, or disable cycling.