Loop 免费开源 macOS 窗口管理工具:10 分钟跑通,2 秒摆好一个窗口
【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop
在 Mac 上分屏,最常见的动作是把窗口标题栏拖过去、对齐、再微调,一天重复几十次。Loop 是一个免费、开源的 macOS 窗口管理工具,按一个触发键就能在光标前展开径向菜单,用方向移动把窗口摆到半屏、三分之一或全屏,摆之前先画出目标轮廓预览。它支持 macOS 13 及以上版本,适合窗口多、希望手不离键盘区完成布局的人。
效果演示
演示里,一个窗口停在屏幕中间。按住触发键,光标前弹出圆形菜单,每个方向块对应一种布局。光标移向左侧,左半屏立刻画出一个半透明轮廓,窗口要占的位置先亮出来。松开按键,窗口一步落位。从按键到完成大约两三秒,全程手不离开键盘区,鼠标只负责指向方向。
安装步骤
已装 Homebrew 的话,一条命令装好:
brew install loop没有 Homebrew 就克隆仓库,用 Xcode 打开Loop.xcodeproj编译运行:
git clone https://gitcode.com/GitHub_Trending/lo/Loop权限只申请 1 项:辅助功能权限,用于读取窗口列表、移动和调整窗口大小。在「系统设置 → 隐私与安全性 → 辅助功能」里给 Loop 打勾即可,菜单和预览不额外申请权限。
首次设置:5 步摆出第一个窗口
- 打开设置窗口,进入 Behavior 标签,选一个平时不用的键当触发键。
- 点击聚焦要摆放的窗口。
- 按住触发键不放,光标前展开径向菜单。
- 把光标移向左侧,等左半屏出现半透明预览轮廓。
- 松开按键,窗口贴到左半屏。
到这一步 Loop 已经可用。之后所有布局动作都是同一个节奏:按住、指方向、松手。
核心功能详解
径向菜单:以光标为圆心展开,每个方向块代表一种布局,半屏、四分之一、三分之一各就各位,指哪个方向窗口就去哪。它把「修饰键加箭头」换成方向直觉,面向触控板和鼠标用户。菜单宽度、形状、颜色都能单独调,不习惯光标交互也可以整个关掉,入口在 RadialMenuConfigurationView.swift 对应的设置页。适合不习惯记快捷键组合、更习惯手势方向的人。
预览轮廓:动作真正执行前,先在目标位置画一个半透明轮廓,位置和大小不满意就松手取消,不必摆错再撤销。轮廓的边距、圆角、边框颜色和宽度都能改。适合对布局精度要求高、讨厌反复对齐的人。
暂存 Stash:把窗口缩小贴到屏幕边缘,只留一条窄边可见;鼠标悬停到边缘窗口自动滑出,移开再收回。适合 MacBook 这种屏幕空间紧张、需要频繁收放参考窗口的人。核心逻辑见 StashManager.swift。
循环 Cycles:同一个快捷键连续按,窗口在多个预设布局间轮换,比如左半屏、左三分之一、全屏依次切换,连续左击也能触发。适合一天里在两三个布局之间反复横跳、不想每次重新指定的工作流。
主题定制:径向菜单和预览窗口独立可主题化,配色、边框、圆角分开调,菜单本身可开关。配合多套内置应用图标,外观能改成贴合自己桌面风格的样子。适合把窗口管理工具当桌面一部分、在意整体观感的人。
两个真实场景
下午 2 点,开发阿伟在写代码。编辑器按一次触发键贴到左半屏,浏览器指一下右侧占掉另一半。终端暂时用不上,他用 Stash 把它收进左边缘,只留一条窄边。要跑命令时鼠标扫过边缘,终端滑出来,跑完再移开鼠标收回。提交前他用循环快捷键在左半屏和全屏之间来回切,边核对 diff 边调整,手始终没离开键盘。
晚上 9 点,客服小芹要开视频会。会议窗口一键全屏,参考了一下午的工单窗口暂存到底边。查订单号时鼠标悬停底边,工单窗口滑出,查完收回。会前她把工单窗口切回左半屏,等预览轮廓画出来、确认位置对了两点才松手,一次摆正。
功能对比
| 功能维度 | Loop | macOS 原生 | Rectangle Pro | Magnet |
|---|---|---|---|---|
| 径向菜单 | 有 | 无 | 无 | 无 |
| 窗口暂存 | 有 | 无 | 有 | 无 |
| 操作前预览 | 有 | 有限 | 有 | 有 |
| 主题定制 | 菜单、边框均可调 | 无 | 无 | 无 |
| 开源状态 | 开源(GPLv3) | 闭源 | 闭源 | 闭源 |
| 价格 | 免费 | 免费 | $9.99 | $4.99 |
基础布局上各家差距不大,真正的分界线是径向菜单加窗口暂存:两项齐全的只有 Loop,而且完全开源,外观和交互都能按自己的习惯改。
进阶:脚本控制与多显示器
Loop 暴露了 loop:// URL Scheme,终端里直接调度窗口布局:
open "loop://direction/left" open "loop://action/maximize" open "loop://screen/next"多显示器环境下内置 next、previous、left、right、top、bottom 共 6 个跨屏动作,窗口可以先整块换屏再独立布局。不想被管理的应用(比如全屏游戏)加入排除列表即可,入口在 ExcludedAppsConfiguration.swift 对应的设置页。
常见问题
Loop 会影响系统性能吗?它只在触发键被按下时执行动作,平时后台开销很小,日常使用基本无感。
需要哪些权限?只申请辅助功能权限 1 项,用于读取窗口列表和控制移动、缩放,首次运行授予一次即可。
支持哪些系统版本?macOS 13 及以上,包含最新系统版本。
遇到问题找谁?直接在项目仓库提交 Issue,维护者会跟进处理。
先设好触发键,用径向菜单完成第一次左半屏摆放,剩下的主题、边框和暂存宽度用一周后再调也不迟。
【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考