Overview
Cycles are one of Loop’s most powerful features, enabling you to perform multiple window manipulations in quick succession by pressing the same key combination repeatedly or by left-clicking multiple times on the radial menu. Instead of memorizing different shortcuts for related actions (like thirds and halves on the same edge), you can create a cycle that transitions through them sequentially.How Cycles Work
A cycle is a sequence of window actions that Loop remembers on a per-window basis. Each time you trigger the same cycle keybind, Loop advances to the next action in the sequence.Example Workflow
Consider a cycle with these actions:- Left Half
- Left Two Thirds
- Left Third
Loop remembers where each window is in its cycle progression. Switching between windows maintains their individual cycle positions.
Creating Cycles
Navigate to Settings > Keybinds to create custom cycles:Configuration Options
Cycle Behavior Settings
Navigate to Settings > Keybinds > Cycles to configure global cycle behavior:When enabled, every cycle activation starts from the first action instead of resuming from the last position.Default behavior: Loop remembers each window’s position in the cycle and resumes from there.
Hold Shift while triggering a cycle to move backward through the sequence.
Implementation Details
Cycles are implemented as a specialWindowAction type with an array of child actions:
Loop/Window Management/Window Action/WindowAction.swift
Cycle Direction Check
Cycles are identified by their direction:Reverse Cycling Eligibility
Only certain cycles support backward traversal:Cycle Configuration View
The cycle configuration interface is implemented inCycleActionConfigurationView:
Loop/Settings Window/Settings/Keybinds/Modal Views/CycleActionConfigurationView.swift
Use Cases
Progressive Resizing
Create cycles that gradually resize windows: Right Edge Progression:- Right Half → Right Two Thirds → Right Third
- Maximize → Almost Maximize → Center
Multi-Screen Workflows
Combine screen switching with positioning: Cross-Screen Cycle:- Right Half (current screen)
- Next Screen
- Left Half (new screen)
- Previous Screen
Vertical Stacking
Cycle through vertical arrangements: Vertical Layout Cycle:- Top Half
- Top Two Thirds
- Maximize Height
- Center
Radial Menu Integration
Cycles work seamlessly with the radial menu:- Left-click: Step forward through cycle actions
- Visual feedback: The radial menu shows the current cycle action
- Angle display: Each action in the cycle displays at its appropriate angle
“Left-click to step through cycle actions.” - Settings > Theming > Radial Menu > Actions
Per-Window Memory
Loop tracks cycle state independently for each window:- Have different windows at different points in the same cycle
- Switch between windows without losing cycle state
- Use the same cycle keybind across all applications
Advanced Configuration
Restart Behavior
When “Always start cycles from first item” is enabled:- Enabled: Predictable, consistent behavior every time
- Disabled (default): Contextual resizing that remembers your preferences
Backward Cycling
When “Cycle backward with Shift” is enabled:Best Practices
Group related actions
Group related actions
Limit cycle length
Limit cycle length
3-5 actions per cycle is optimal. Longer cycles become hard to remember and use.
Consider frequency
Consider frequency
Place your most-used action first in the cycle for quick access.
Use descriptive names
Use descriptive names
Name cycles clearly (“Left Sizes”, “Vertical Stack”) so you can identify them easily.
Test your cycles
Test your cycles
Try out your cycle configurations with real workflows before committing to them.