Mac 窗口管理工具 Loop:径向菜单、循环布局与窗口暂存
【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop
五个窗口来回 Cmd+Tab 切到手酸,拖动窗口边缘对齐半天又歪回去——这是多数 Mac 用户的日常。Loop 是一款开源 Mac 窗口管理工具,用径向菜单把"按住、移动、松手"变成布局窗口的方式,并内置循环切换与窗口暂存,兼容 macOS 13 及以上版本。
五分钟跑通 Loop
下载安装后,默认配置即可直接用:按住 Function 键(默认触发键)并移动鼠标,径向菜单立刻出现。
| 安装方式 | 步骤 | 适合人群 | 特点 |
|---|---|---|---|
| Homebrew | brew install loop | 习惯终端的用户 | 一条命令装好,后续可自动更新 |
| 下载压缩包 | 从项目 Releases 页取最新 .zip 解压 | 绝大多数用户 | 无需终端,可视化操作 |
| 克隆源码构建 | git clone https://gitcode.com/GitHub_Trending/lo/Loop后用 Xcode 打开构建 | 想体验最新特性的开发者 | 可参与贡献 |
首次启动时,在"系统设置 → 隐私与安全性"中授予 Loop「辅助功能」与「屏幕录制」权限,缺少任一项它都无法读取窗口信息或执行布局。
触发键推荐用系统自带方案配置 Caps Lock,无需第三方工具:
- 系统设置 → 键盘 → 键盘快捷键… → 修饰键,把 Caps Lock 重映射为 Control;
- Loop 设置 → 行为(Behavior)标签页,把触发键选为 Right Control;
- 按住 Control 移动鼠标验证径向菜单,再按 Control + 空格试试最大化。
设置面板也支持三指点击、中键点击或任意双键组合触发,按个人手感调整即可。
三种核心交互模式
Loop 的全部操作围绕三种肌肉记忆模式:按住-移动-松手、连按同一方向、甩到边缘。
🖱️ 按住-移动-松手:径向菜单布局
按住触发键,环形菜单在光标处展开;移动鼠标,对应扇区高亮,松手窗口随即飞入目标区域并自动缩放。默认菜单有八个方向:上下左右四个扇区是"半屏 → 三分之一 → 三分之二"的循环入口,四个角落扇区是四分之一屏,中心是"最大化 → 居中"循环。
它底层的做法是:触发键按住期间 Loop 持续监听鼠标位置,松手时按光标与菜单中心的夹角算出目标方向,再把窗口 frame 一次性写入。
最典型的用法:按住触发键,向上移动,松手——窗口贴到上半屏。
默认还开启预览框:光标移动时,半透明边框先画出目标区域(内边距默认 10pt、圆角 10pt),确认后窗口才真正过去,所见即所得。
⚡ 连按同一方向:循环布局切换
同一个组合键按三下,窗口依次经过"上半屏 → 上三分之一 → 上三分之二",第四下回到起点;按住 Shift 再按则反向循环。
原理:循环动作在内部排好多个布局步骤,每次触发只推进一格,状态由 Loop 自己维护。
默认快捷键已内置四条循环:上/下/左/右箭头各对应一个方向,另外空格是最大化、回车是窗口居中。示例:触发键 + ↑ 连按三次,窗口完成"上 → 1/3 → 2/3"的完整循环。
甩到边缘:窗口暂存与召回
触发 Stash 动作后,当前窗口滑到屏幕边缘,只露出约 20pt 的一条"把手";鼠标靠近边缘它自动弹回,鼠标离开又藏回去。桌面瞬间清爽,窗口随时可召回。
原理:Loop 记录窗口原始位置,把它移到屏幕边缘外并持续监听鼠标移动事件,靠近显示、离开隐藏;退出时自动还原所有暂存窗口。
最典型的用法:打开设置 → 快捷键(Keybinds),新增一个动作选 Stash 并绑定字母 S。之后触发键 + S 即可把当前窗口甩到边缘,需要时把鼠标移到屏幕边缘召回来。
深度定制
如果你想要固定的自定义布局
用"自定义(Custom)"动作可以指定宽高(支持像素或百分比)、锚点位置与尺寸模式,绑定到任意按键。下面的配置结构展示了一个"左 60% 编码区"的动作(在快捷键面板中逐项填写即可):
{ "name": "Coding Zone", "direction": "custom", "width": 60, "height": 100, "unit": "percent", "anchor": "topLeft", "keybind": ["s"] }同样的方式可以做出"写作居中 800pt 宽"、"终端贴底 40%"等任意布局,每个布局一个按键。
如果你想用脚本驱动窗口布局
Loop 提供 URL Scheme,终端、AppleScript 或快捷指令都能调用。两条可直接复制的命令:
open "loop://direction/right" # 当前窗口移到右半屏 open "loop://action/maximize" # 最大化当前窗口还支持loop://screen/next切换屏幕、loop://keybind/动作名调用自定义快捷键、loop://list/all列出全部可用命令,方便接入 Alfred、BetterTouchTool 等工具。
如果你想换个外观
径向菜单的厚度(默认 22pt)、圆角(默认 50pt)、颜色都可以单独调,也可以整环关闭只留快捷键;预览框的边框粗细(默认 4pt)、内边距、模糊背景独立可调。强调色可跟随系统、自选或启用渐变,应用图标提供十余种风格随时切换:

三个真实场景实战
前端开发:编辑器左三分之二,终端右三分之一
- 打开 VS Code,按 触发键 + ← 三次,编辑器到左三分之二;
- 打开终端,按 触发键 + → 两次,终端收窄到右三分之一,正好贴住编辑器右缘;
- 跑长任务时终端要宽:按 触发键 + → 一次,终端回到右半屏;
- 需要查文档:触发键 + S 暂存终端到右边缘,浏览器移到右半屏;看完鼠标扫过右边缘,终端自动弹回原位。
写作:参考资料窄栏悬浮
- 浏览器打开参考资料,按 触发键 + → 两次,浏览器收窄到右三分之一,作为窄栏;
- 写作软件按 触发键 + ← 三次,占满左三分之二,与浏览器严丝合缝;
- 进入心流状态:触发键 + 空格最大化写作软件,参考资料用 触发键 + S 甩到右边缘;
- 卡壳需要回看:鼠标靠近屏幕右缘,浏览器窄栏自动浮现。
远程会议:会议大、笔记窄、随时可切
- 会议应用按 触发键 + ← 三次,占左三分之二;
- 笔记应用按 触发键 + → 两次,缩到右三分之一,扫一眼就够;
- 演示要更大的画面:再按一次 触发键 + ←,会议窗口循环回左半屏;
- 需要专注听会:触发键 + S 暂存笔记,边缘一瞥即可召回,全程不用 Cmd+Tab。
避坑与调优
- 触发键无响应:确认已授予「辅助功能」和「屏幕录制」权限,然后重启 Loop。
- 窗口移动卡顿:行为页把动画换成 Snappy,或关闭"使用光标所在屏幕"减少多屏计算。
- 与 Rectangle 等工具打架:把冲突应用加入"高级 → 排除应用",或停用不用的中键触发。
- 多显示器布局错乱:取消勾选"使用光标所在屏幕",改由菜单中心决定目标屏。
- 暂存窗口越积越多:Loop 退出时自动还原全部暂存窗口,重启即清理。
收尾
Loop 把"找窗口、拖窗口、对像素"压缩成了几个条件反射。现在就去:设好触发键,绑上 3 个最常用的布局,再试一次循环动作。
项目仓库(源码与构建):https://gitcode.com/GitHub_Trending/lo/Loop ,采用 GPLv3 许可,欢迎提交 issue 参与社区讨论。
【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考