Skip to main content

Overview

Size adjustment actions provide fine-grained control over window dimensions and position. Unlike positioning actions that set absolute sizes, these actions make incremental changes relative to the current window state. Four categories of size adjustments are defined (lines 82-85):

General Size Adjustment

Defined in the static sizeAdjustment array (line 82):

larger

WindowDirection
Increases window size by a fixed increment.Raw Value: "Larger"URL Scheme: loop://LargerBehavior:
  • Expands window uniformly in all directions
  • Maintains window center position
  • Increment size is configurable in Loop settings
  • Stops at screen boundaries
Use Case: Quickly make window bigger while keeping it centered

smaller

WindowDirection
Decreases window size by a fixed increment.Raw Value: "Smaller"URL Scheme: loop://SmallerBehavior:
  • Shrinks window uniformly in all directions
  • Maintains window center position
  • Increment size is configurable in Loop settings
  • Stops at minimum window size
Use Case: Quickly make window smaller while keeping it centered

scaleUp

WindowDirection
Scales window up proportionally.Raw Value: "ScaleUp"URL Scheme: loop://ScaleUpBehavior:
  • Increases window size by a percentage multiplier
  • Preserves window aspect ratio
  • Maintains window center position
  • More gradual than .larger
Use Case: Fine-tuned proportional size increases

scaleDown

WindowDirection
Scales window down proportionally.Raw Value: "ScaleDown"URL Scheme: loop://ScaleDownBehavior:
  • Decreases window size by a percentage multiplier
  • Preserves window aspect ratio
  • Maintains window center position
  • More gradual than .smaller
Use Case: Fine-tuned proportional size decreases

Computed Property

Bool
Returns true for all general size adjustment actions (line 92)

Shrink Actions

Defined in the static shrink array (line 83):

Directional Shrinking

WindowDirection
Shrinks window from the top edge downward.Raw Value: "ShrinkTop"URL Scheme: loop://ShrinkTopBehavior:
  • Reduces window height from top edge
  • Bottom edge remains fixed
  • Width unchanged
Visual:
WindowDirection
Shrinks window from the bottom edge upward.Raw Value: "ShrinkBottom"URL Scheme: loop://ShrinkBottomBehavior:
  • Reduces window height from bottom edge
  • Top edge remains fixed
  • Width unchanged
Visual:
WindowDirection
Shrinks window from the left edge rightward.Raw Value: "ShrinkLeft"URL Scheme: loop://ShrinkLeftBehavior:
  • Reduces window width from left edge
  • Right edge remains fixed
  • Height unchanged
Visual:
WindowDirection
Shrinks window from the right edge leftward.Raw Value: "ShrinkRight"URL Scheme: loop://ShrinkRightBehavior:
  • Reduces window width from right edge
  • Left edge remains fixed
  • Height unchanged
Visual:

Combined Shrinking

WindowDirection
Shrinks window width from both left and right edges.Raw Value: "ShrinkHorizontal"URL Scheme: loop://ShrinkHorizontalBehavior:
  • Reduces width equally from both sides
  • Maintains horizontal center position
  • Height unchanged
Visual:
WindowDirection
Shrinks window height from both top and bottom edges.Raw Value: "ShrinkVertical"URL Scheme: loop://ShrinkVerticalBehavior:
  • Reduces height equally from both sides
  • Maintains vertical center position
  • Width unchanged
Visual:

Computed Property

Bool
Returns true for all shrink actions (line 93)

Grow Actions

Defined in the static grow array (line 84):

Directional Growing

WindowDirection
Grows window from the top edge upward.Raw Value: "GrowTop"URL Scheme: loop://GrowTopBehavior:
  • Extends window height upward
  • Bottom edge remains fixed
  • Width unchanged
  • Stops at screen top boundary
WindowDirection
Grows window from the bottom edge downward.Raw Value: "GrowBottom"URL Scheme: loop://GrowBottomBehavior:
  • Extends window height downward
  • Top edge remains fixed
  • Width unchanged
  • Stops at screen bottom boundary
WindowDirection
Grows window from the left edge leftward.Raw Value: "GrowLeft"URL Scheme: loop://GrowLeftBehavior:
  • Extends window width to the left
  • Right edge remains fixed
  • Height unchanged
  • Stops at screen left boundary
WindowDirection
Grows window from the right edge rightward.Raw Value: "GrowRight"URL Scheme: loop://GrowRightBehavior:
  • Extends window width to the right
  • Left edge remains fixed
  • Height unchanged
  • Stops at screen right boundary

Combined Growing

WindowDirection
Grows window width in both directions.Raw Value: "GrowHorizontal"URL Scheme: loop://GrowHorizontalBehavior:
  • Extends width equally left and right
  • Maintains horizontal center position
  • Height unchanged
  • Stops at screen boundaries
WindowDirection
Grows window height in both directions.Raw Value: "GrowVertical"URL Scheme: loop://GrowVerticalBehavior:
  • Extends height equally up and down
  • Maintains vertical center position
  • Width unchanged
  • Stops at screen boundaries

Computed Property

Bool
Returns true for all grow actions (line 94)

Move Actions

Defined in the static move array (line 85):

Directional Movement

WindowDirection
Moves window upward by a fixed increment.Raw Value: "MoveUp"URL Scheme: loop://MoveUpBehavior:
  • Shifts entire window upward
  • Size unchanged
  • Stops at screen top boundary
  • Increment configurable in settings
WindowDirection
Moves window downward by a fixed increment.Raw Value: "MoveDown"URL Scheme: loop://MoveDownBehavior:
  • Shifts entire window downward
  • Size unchanged
  • Stops at screen bottom boundary
  • Increment configurable in settings
WindowDirection
Moves window left by a fixed increment.Raw Value: "MoveLeft"URL Scheme: loop://MoveLeftBehavior:
  • Shifts entire window to the left
  • Size unchanged
  • Stops at screen left boundary
  • Increment configurable in settings
WindowDirection
Moves window right by a fixed increment.Raw Value: "MoveRight"URL Scheme: loop://MoveRightBehavior:
  • Shifts entire window to the right
  • Size unchanged
  • Stops at screen right boundary
  • Increment configurable in settings

Computed Property

Bool
Returns true for all move actions (line 95)

Usage Examples

Incremental Resizing

Edge Adjustment

Precise Positioning

Keyboard-Driven Workflow

Bind these to keyboard shortcuts for precise window control:
  • Cmd+Ctrl+Arrow Keys: Move window
  • Cmd+Option+Arrow Keys: Grow edges
  • Cmd+Shift+Arrow Keys: Shrink edges
  • Cmd+Plus/Minus: Larger/Smaller

Radial Menu Behavior

Size adjustment, shrink, grow, and move actions don’t have directional angles in the radial menu (line 102):
They appear as menu items rather than directional triggers.

Configuration

Increment sizes for these actions are configurable in Loop’s settings:
  • Size adjustment increment: Amount for .larger and .smaller
  • Scale factor: Multiplier for .scaleUp and .scaleDown
  • Grow/shrink increment: Amount for directional grow/shrink
  • Move increment: Distance for directional moves

Halves & Quarters

Absolute positioning alternatives

General Actions

Maximize and fill actions

Focus Actions

Navigate between windows

WindowDirection Overview

Complete action reference