Loop:用径向菜单重做窗口划分的免费开源macOS窗口管理工具
【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop
当你第 7 次把浏览器拖到屏幕左半边时,手会累,窗口大小还会差 3 个像素。Loop 是一款免费开源的 macOS 窗口管理工具:按住一个触发键后,它可以用鼠标、触控板或键盘按方向移动和缩放当前窗口,并且在真正执行前先把目标区域显示出来,避免调错位置再撤销。它还支持快捷键循环执行和把窗口隐藏到屏幕边缘。读完本文,你可以完成安装、配置触发键,并把常用窗口布局嵌入日常编码流程。
项目速览:Loop 窗口管理到底能做什么
径向菜单:按住触发键后,圆形菜单出现在光标处,向某个方向松开按键,当前窗口就移到对应位置并自动缩放。
操作前预览:执行前会先显示目标区域,不满意的区域松开按键即可取消,不用执行完再撤销。
键盘快捷键与循环:可以给任意动作绑定按键组合,重复按同一个组合还能让窗口按顺序切换一系列操作。
窗口暂存:把暂时不用的窗口收纳到屏幕边缘,需要时悬停或按快捷键即可快速调出。
主题定制:径向菜单的宽度、形状、颜色,以及预览窗口的内边距、圆角、边框都可以调整。
适合多窗口、外接显示器重度用户。
Loop径向菜单窗口布局演示
🚀 从零跑起来:安装与首次配置
安装
有两种方式。方式一,用 Homebrew 一行装好:
brew install loop方式二,克隆源码后用 Xcode 编译运行:
git clone https://gitcode.com/GitHub_Trending/lo/Loop打开项目中的Loop.xcodeproj,选择 Run 即可;如果只想用不想编译,也可以到项目的 release 页面下载最新的 .zip 包,解压到 /Applications。
授予权限
- 系统要求 macOS 13 及以上版本
- 首次启动会提示授予辅助功能权限,用于读取和控制其他应用的窗口
- 权限在 系统设置 → 隐私与安全性 → 辅助功能 中可随时查看或撤销
第一次触发
- 启动 Loop,它常驻菜单栏,从菜单栏图标可以打开设置窗口。
- 默认触发键是Fn(地球键),直接用它测试。
- 激活 Safari 窗口,按住 Fn。
- 光标移向屏幕左半边,圆形菜单随光标展开并高亮左半屏区域,松开按键,Safari 就移动到左半屏。
如果 Fn 键有系统功能冲突,可以打开Settings → Behavior页修改触发键,它支持单键或多键。README 还给了一个常见做法:在系统设置的 键盘 → 修饰键 里把 Caps Lock 重映射为 Control,然后在 Loop 里选右 Control 作为触发键,手指放在右手边更顺手。
核心工作流:把功能用顺
径向菜单:免记忆的窗口分区方式
径向菜单解决的是"每个分区位置都要背快捷键"的问题。
- 按住触发键不放。
- 光标移向目标方向,菜单跟随光标展开。
- 在目标区域松开按键,窗口执行对应分区。
可用方向覆盖上下左右半屏、四个四分之一区、横纵三分区、全屏、最大化、居中等。试试:Safari 按 Fn 移到左半屏,再对 Terminal 操作一次右半屏,代码和文档就并排了,全程不需要想按键。
键盘快捷键与循环
偏好纯键盘操作的话,可以把动作绑到按键上。
- 打开
Settings → Keybinds。 - 新建一条快捷键并录入按键组合。
- 从下拉列表选择动作,比如 Left Half、Right Third。
循环(Cycles)值得重点试:把多个动作按顺序绑到同一个按键组合上,之后每次重复按这个组合,窗口就前进一步。例如依次绑定"右半屏 → 右三分之一 → 右三分之二",按三次得到三种宽度,反复微调分栏比例时特别顺手。
窗口暂存 Stash
暂存解决的是"窗口不想关、但也不想占屏"的问题。
- 在
Settings → Keybinds里新建一条 Stash 类型快捷键。 - 选择收纳到屏幕的哪个边缘方向。
- 对目标窗口执行该快捷键,窗口会贴到屏幕边缘收起。
- 鼠标悬停到屏幕对应边缘附近,或再按一次快捷键,窗口立即调出。
试试:把 Safari 里查资料的标签窗口暂存到右边,写代码时屏幕完全干净,需要回查时鼠标移到右边缘就回来了。
按角色拆解:不同人怎么用
开发者:代码、终端、文档三窗口
场景:VS Code 写代码、Terminal 跑服务、Safari 查文档。操作:按住 Fn 把 VS Code 划到左半屏、Terminal 划到右半屏,文档窗口再划到下半区;或者在Settings → Keybinds给"左半屏"单独绑一个键,一键到位。效果:三块区域位置固定,切项目时不用重新拖窗口。
场景:需要把代码投到外接显示器演示。操作:给"下一块屏幕"动作绑定快捷键,按一次即可。效果:窗口直接落到外接显示器的对应分区位置,不用手动把窗口拖出屏幕。
设计师:素材并排与画布保持
场景:Figma 在左、Photos 查参考图在右。操作:左半屏加右半屏,或用三分之一分区再挤一张参考图进来。效果:对比并排进行,不用在应用间来回切换。
场景:素材窗口越开越多,屏幕开始拥挤。操作:把只用一次的参考图窗口、字体预览窗口都暂存到屏幕边缘。效果:主创作窗口留足空间,暂存窗口悬停即可调回。
办公用户:邮件与文档分屏
场景:Mail 回邮件,同时要看 Safari 里的链接内容。操作:一个左半屏、一个右半屏,各按一次触发键完成。效果:回复邮件时网页始终在视线内,不用反复切换窗口。
🔧 进阶玩法:自动化与深度集成
Loop 注册了loop://URL Scheme,shell 脚本和 AppleScript 都能触发窗口操作。先执行一条命令查看当前可用的全部指令:
open "loop://list/all"下面这个脚本把当前窗口移到右半屏,再整块移到下一台显示器:
#!/bin/bash open "loop://direction/right" sleep 0.5 open "loop://screen/next"AppleScript 里同样可以调用,例如osascript -e 'open location "loop://direction/left"'。除了方向类命令,还支持loop://action/<动作名>直接执行任意内置动作、loop://keybind/<名称>执行自定义快捷键,参数不区分大小写。
排除列表:在Settings → Excluded Apps里添加不希望受 Loop 影响的 App,适合全屏游戏和视频播放器。
多显示器:内置的屏幕切换动作覆盖上一块、下一块、左、右、上、下六个方向,分区和暂存在多屏下同样生效。
源码参考
- URL Scheme 命令处理
- 径向菜单实现
- 窗口管理引擎
横向对比:Loop 与其他 macOS 窗口管理工具
| 对比维度 | Loop | Rectangle | Magnet | Moom |
|---|---|---|---|---|
| 价格 | 免费 | 免费 / Pro $9.99 | $4.99 | $15.00 |
| 开源状态 | 开源 | 开源 | 闭源 | 闭源 |
| 核心差异化功能 | 径向菜单、预览、主题定制 | 修饰键加鼠标或方向键分区 | 基础分区 | 窗口状态记忆 |
| 脚本支持 | URL Scheme | 支持 | 不支持 | 支持 |
| 平台覆盖 | macOS 13+ | macOS | macOS | macOS |
高频问题速查
问:Loop 会影响系统性能吗?后台轻量运行,常驻菜单栏,日常使用中资源占用很低,对普通办公和编码场景没有可感知的影响。
问:需要授予哪些权限?主要是辅助功能权限,用于读取和控制其他应用的窗口,首次启动时授权一次即可,之后无需再处理。
问:支持哪些 macOS 版本?macOS 13 及以上版本,包括后续较新的系统版本。
问:多显示器怎么用?分区、缩放、暂存都跨屏幕生效,配合屏幕切换动作可以把窗口移到上一块或下一块显示器。
问:可以完全不用径向菜单吗?可以。径向菜单整体可选,禁用后仅用键盘快捷键操作,所有功能都不受影响。
问:如何卸载或撤销权限?从菜单栏退出并删除应用即可停止使用;如需彻底撤销授权,在终端执行tccutil reset Accessibility com.MrKai77.Loop。
Loop 是一款把径向菜单、预览和脚本集成整合在一起的免费开源 macOS 窗口管理工具,先从一个 Fn 键开始用起,熟悉后再逐步开启循环和暂存。建议安装后先用五分钟把触发键和两三个常用快捷键配好,之后每次分屏都会比手动拖拽快一步。项目以 GPLv3 协议开源,功能建议和问题都可以到仓库的 Issue 区提交,地址见上文安装章节的 git clone 命令。
项目地址:见安装章节的 git clone 命令 | License:GNU GPLv3
【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考