别再记快捷键了Loop 让 macOS 窗口管理靠鼠标一滑就完成【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop下午三点你的屏幕上挤着五个窗口左边是写了一半的文档中间是挤到变形的浏览器右下角还压着一个只能露出三分之一的终端。你握着鼠标先把浏览器拖到右侧——太宽了往回缩一点又去拽文档的标题栏好让正文能完整露出来。三分钟过去你还没开始写代码而屏幕依然乱得像刚经历了一场文件地震。如果你也在 macOS 上被窗口整理反复折磨那么这篇文章要介绍的开源项目 Loop很可能就是你一直在找的那个解法。Loop 是一款免费开源的 macOS 窗口管理工具它把记住快捷键、背布局名称这件事整个砍掉改成最直觉的方式按住一个键鼠标往想去的方向一滑窗口就位。三分钟跑通装好就能用的最小配置先别急着听功能动手最快。Loop 支持 macOS 13 及以上系统安装只需要一条命令brew install loop装完后打开系统会弹窗索要辅助功能Accessibility权限——这是所有窗口管理工具的必经之路在系统设置 → 隐私与安全性 → 辅助功能里勾上 Loop 即可。接下来最关键的一步是配置触发键。Loop 的触发键Trigger Key是所有操作的启动开关我的建议是别用常见的 ⌃ ⌥ ⌘而是把 Caps Lock 变废为宝打开系统设置 → 键盘 → 键盘快捷键 → 修饰键把Caps Lock映射为Control (^)回到 Loop 的行为Behavior设置里把触发键选为Right Control配置完成后立刻试一下按住 Right Control把鼠标往屏幕右侧一推当前窗口自动贴到右半屏往上推占满上半屏。整个过程不需要记任何组合键——这就是 Loop 和传统窗口管理器最根本的区别。上手后的真实体验从操作变成条件反射用了一周后我最大的感受是Loop 不是给操作加了层皮而是把窗口管理从刻意动作变成了肌肉记忆。下面这三个能力是我在日常使用中最依赖的。径向菜单看得到的方向盘按住触发键后屏幕上会出现一个以鼠标为中心的径向菜单八个方向对应八种窗口布局。菜单是实时跟随鼠标高亮的所以哪怕你忘了左上四分之一对应哪个位置看一眼菜单就知道。这个菜单的视觉样式完全可以自定义——圆环粗细、颜色、透明度都能调。如果你像我一样觉得菜单挡住视线也可以只保留按住触发键 滑动鼠标的手势把菜单彻底关掉用盲操作换来最大视野。预览窗口动手前先看到结果Loop 有一个我特别想夸的细节预览Preview。当你按住触发键并开始移动鼠标时屏幕上会先出现一个半透明的框标出窗口将要占据的位置等你松开按键才真正执行。这个设计救了我好几次——尤其是在双屏环境下鼠标稍微滑过头窗口就可能被甩到另一块屏幕上。有了预览你可以在执行前微调方向把误操作的成本降到零。循环操作一个键位承载整套布局序列这是 Loop 最聪明的功能。普通的窗口管理工具是一个动作一个键但 Loop 允许你把多个布局串成一个循环Cycle。比如给向右这个动作绑定一组序列右半屏 → 右三分之二 → 最大化。每次按同一个键窗口就在这三个状态间轮转。我实际用下来的场景是写代码时终端在右下角占三分之一、文档在右侧占三分之二、全屏专注三种状态用同一个按键切换。想回到上一个状态再按一下就行循环是双向的。一个键完成别人三个键的活儿这就是 Loop 的循环逻辑最实用的价值。进阶玩法深度使用者才知道的三件事用到第二周我开始翻它的设置和源码发现三个普通教程不会讲到的点分享给你。第一件Stash 不是最小化是贴边待命Stash 功能把窗口藏到屏幕边缘只露出一点点边角。但它的高明之处在于鼠标滑到屏幕边缘藏起来的窗口会自动滑出来鼠标离开后再滑回去——整个过程不打断你的工作流。我常把聊天软件和参考文档 Stash 到屏幕右侧边缘需要时鼠标一甩就能瞄一眼不需要时它完全隐形。相关逻辑在项目的 StashManager.swift 里它甚至考虑了多个窗口堆叠在同一侧边缘时的错位布局避免互相遮挡。第二件窗口可以不靠鼠标用 URL 协议遥控Loop 内置了一套 URL scheme任何能执行命令的场景都能调用它。我最常用的几个open loop://direction/right # 窗口移到右半屏 open loop://direction/maximize # 最大化窗口 open loop://screen/next # 移到下一块屏幕你可以把它写进 AppleScript、Shortcuts甚至挂到其他工具的快捷键上。比如我配了一个 Alfred workflow输入右三就自动执行open loop://direction/rightThird。完整的命令列表可以用open loop://list/all查看命令处理的核心代码在 URLCommandHandler.swift 里格式是loop://命令/参数区分大小写都行。第三件触发延迟和排除列表决定你用得顺不顺手两个容易被忽略但影响巨大的设置。一是触发延迟Trigger Delay按住触发键后Loop 会等一小段时间才开始响应鼠标滑动默认值很小。如果你总在按住触发键时不小心移动鼠标触发误操作把这个延迟调到 100 毫秒左右误触率会明显下降。二是排除应用列表Excluded Apps某些全屏游戏或专业软件不希望被窗口管理工具碰。在设置里把这些应用加进排除列表后Loop 会完全无视它们的窗口。这个设置在 ExcludedAppsConfiguration.swift 中实现排查问题时也记得先看这里。踩过的坑与解决方案坑一触发键失灵。90% 的情况是你把 Caps Lock 映射成 Control 后没有在 Loop 里重新选择触发键或者系统里有多块键盘只改了一块。每块键盘都要单独设置修饰键映射。坑二Stash 的窗口消失了。窗口被 Stash 后只剩几个像素的边露在屏幕边缘如果你把stashedWindowVisiblePadding可见边距设成 0它就真的找不到了。设置里把可见边距保留在 10 像素左右鼠标贴边就能唤出。坑三双屏上窗口飞走了。移动鼠标方向时滑过头窗口被甩到另一块屏幕。用预览功能 适当调大触发延迟基本能避免。现在就可以开始Loop 不需要你花时间学装好、设好触发键、把 Caps Lock 利用起来剩下的交给肌肉记忆。我建议你的第一步很简单今天下午工作时专门用 Loop 完成每一次窗口整理——不用管它有没有做到最优化先用起来。你会发现几天之后你再也不想手动拖窗口了。如果你想把 Loop 用得更深可以去翻项目的源码窗口动作的定义在 WindowAction.swift窗口移动的核心引擎在 WindowActionEngine.swift图标主题资源在 Theming 目录下。开源项目的好处是你能看到每一个功能背后是怎么实现的也能顺手为它贡献代码。从今天下午开始试着让窗口自己听话——你只需要按下一个键然后滑向你想去的方向。【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考