site: review — Loop radial window manager (graduates from find)
4-slide carousel (radial menu, preview, cycles, stash) sourced from the project's GitHub assets/graphics directory and re-encoded at 1280p.
This commit is contained in:
@@ -9,6 +9,7 @@ topics:
|
||||
- macos-apps
|
||||
tags: [window-management, indie, open-source, keyboard]
|
||||
description: "Hold a key, flick the cursor in a direction, and Loop snaps the active window. A radial menu instead of a hotkey grid."
|
||||
promotedTo: loop-radial-window-manager
|
||||
---
|
||||
|
||||
Loop replaces the Rectangle/Magnet hotkey grid with a radial menu: hold the trigger key, move the cursor toward the half/quarter/edge you want, release. The preview window shows the resize before commit, so muscle memory builds without overshoot. Free, GPLv3, macOS 13+.
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,53 @@
|
||||
---
|
||||
name: Loop
|
||||
subtitle: Window snapping by gesture, not by hotkey
|
||||
date: 2026-05-09
|
||||
category: interface
|
||||
tags: [macos, window-management, indie, open-source, keyboard]
|
||||
description: "A free, open-source macOS window manager that swaps the Rectangle/Magnet hotkey grid for a radial menu — hold a key, flick the cursor toward an edge, release."
|
||||
link: https://github.com/MrKai77/Loop
|
||||
linkText: github.com/MrKai77/Loop
|
||||
source: "r/macapps"
|
||||
fromFind: loop-radial-window-manager
|
||||
---
|
||||
|
||||
import slide1 from './radial-menu.mp4';
|
||||
import slide2 from './preview.mp4';
|
||||
import slide3 from './cycles.mp4';
|
||||
import slide4 from './stash.mp4';
|
||||
|
||||
<div class="carousel">
|
||||
<figure id="s1">
|
||||
<video src={slide1} autoplay loop muted playsinline />
|
||||
<figcaption>Hold the trigger key and flick the cursor toward a half, quarter, or edge — release to commit.</figcaption>
|
||||
</figure>
|
||||
<figure id="s2">
|
||||
<video src={slide2} autoplay loop muted playsinline />
|
||||
<figcaption>The live preview outlines the destination frame as you aim, so a wrong flick can be aborted before the resize fires.</figcaption>
|
||||
</figure>
|
||||
<figure id="s3">
|
||||
<video src={slide3} autoplay loop muted playsinline />
|
||||
<figcaption>Cycles: re-flick in the same direction to step through halves, thirds, and quarters without picking new keys.</figcaption>
|
||||
</figure>
|
||||
<figure id="s4">
|
||||
<video src={slide4} autoplay loop muted playsinline />
|
||||
<figcaption>Stash: tuck a window to a screen edge for quick recall later.</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
|
||||
<nav class="carousel-nav" aria-label="Carousel navigation">
|
||||
<a href="#s1">1</a>
|
||||
<a href="#s2">2</a>
|
||||
<a href="#s3">3</a>
|
||||
<a href="#s4">4</a>
|
||||
</nav>
|
||||
|
||||
> A free, open-source macOS window manager that replaces the Rectangle/Magnet hotkey grid with a radial menu. Hold a trigger key, move the cursor toward the half, quarter, or edge you want, release to commit.
|
||||
|
||||
Hold the trigger key and Loop pops a translucent radial menu over the active window. Move the cursor toward a half, quarter, or edge; release to commit. A live preview outlines the destination frame as you aim, so a wrong flick can be corrected before the resize fires.
|
||||
|
||||
Rectangle and Magnet ask you to memorize a grid: a chord per position, more chords as you add halves, thirds, and quarters. The chord is symbolic — you have to remember which modifier you mapped to "left third." Loop's gesture *is* the position. A "cycles" feature lets you re-flick in the same direction to step through halves → thirds → quarters without picking new keys for each.
|
||||
|
||||
The radial menu, preview, and theming are tunable (width, shape, color, padding); a stash gesture tucks a window to a screen edge for quick recall. Per-app behavior and keyboard shortcuts are still there for people who want both. GPLv3, Swift, signed and notarized, macOS 13+.
|
||||
|
||||
The trade-off versus a grid-based manager is a day or two of muscle-memory rebuild — flicking is fast once it's in your hands, but coming from a decade of `⌃⌥←` makes the first afternoon feel slower. Free, with no nags or telemetry.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -24,6 +24,7 @@ import cotypist from '../content/reviews/cotypist/hero.mp4';
|
||||
import dockdoor from '../content/reviews/dockdoor/alttab.mp4';
|
||||
import fluxMarkdown from '../content/reviews/flux-markdown/demo.mp4';
|
||||
import homerow from '../content/reviews/homerow/overlay.mp4';
|
||||
import loop from '../content/reviews/loop-radial-window-manager/radial-menu.mp4';
|
||||
import monocle from '../content/reviews/monocle/spotlight.mp4';
|
||||
import shottr from '../content/reviews/shottr/text-erase.mp4';
|
||||
import typewhisper from '../content/reviews/typewhisper/demo.mp4';
|
||||
@@ -56,6 +57,7 @@ export const heroes: Record<string, Hero | undefined> = {
|
||||
dockdoor: { kind: 'video', src: dockdoor },
|
||||
'flux-markdown': { kind: 'video', src: fluxMarkdown },
|
||||
homerow: { kind: 'video', src: homerow },
|
||||
'loop-radial-window-manager': { kind: 'video', src: loop },
|
||||
monocle: { kind: 'video', src: monocle },
|
||||
shottr: { kind: 'video', src: shottr },
|
||||
typewhisper: { kind: 'video', src: typewhisper },
|
||||
|
||||
Reference in New Issue
Block a user