About this project

Loop is a free and open-source macOS window management application (compatible with macOS 13 and later) licensed under GNU GPLv3. It simplifies moving, resizing, and arranging windows through a radial menu triggered by a configurable key press. Key features include: - **Radial Menu**: Hold the trigger key and move the cursor in a desired direction to manipulate windows via mouse or trackpad. The menu is customizable in width, shape, and color, and can be disabled entirely. Cursor interaction and the radial menu itself are independently toggleable. - **Preview Window**: Displays the intended resize action before committing, with adjustable padding, corner radius, border color, and border width. - **Keyboard Shortcuts**: Any key can be paired with the trigger key to initiate specific window actions. - **Cycles**: Chain multiple window manipulations by repeatedly pressing the same key combination or left-clicking. - **Stash**: Hide windows at the screen edge to declutter the workspace; retrieve them by hovering near the edge or using a keybind. Supported window actions cover fullscreen, maximize, center, minimize, hide, halves, quarters, horizontal and vertical thirds, screen switching (next/previous/directional), window growth and shrinkage in all directions, movement, undo, initial frame restore, and custom frames. Loop can be installed via Homebrew (`brew install loop`) or manual download. It supports scripting through a URL scheme (`loop://`) accessible via shell commands or AppleScript, enabling automation and chaining of window actions. The trigger key can be set to a single key or multiple keys, with guidance provided for remapping Caps Lock. The README includes a detailed feature comparison table against numerous macOS window management tools (Rectangle, Rectangle Pro, Magnet, Moom, Swish, BetterTouchTool, Yabai, Amethyst, AeroSpace, and others), highlighting Loop's open-source nature, custom frames, theming options, modifier+mouse interaction, stashed windows, cycles, cross-screen movement, focus switching, and scripting support.