Loop:三秒摆好窗口布局的免费开源 macOS 窗口管理
【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop
你正在打字,想把参考窗口挪到当前窗口旁边。抓起标题栏、拖动、再对齐几次,才算摆正。Loop 把这个过程换成一次按键:按住触发键,光标移向哪个方向,窗口就落到哪。Loop 是一款免费、开源的 macOS 窗口管理工具,适合窗口常开好几个、不想再靠鼠标摆窗口的人。
三分钟装好 macOS 窗口管理
有 Homebrew 的话,一行命令装好:
brew install loop没有 Homebrew 就克隆仓库,用 Xcode 打开项目编译运行:
git clone https://gitcode.com/GitHub_Trending/lo/Loop需要 macOS 13 及以上,首次运行授予 1 项辅助功能权限即可,用于读取窗口列表和移动、缩放窗口。
第一次摆放窗口,四步走完:
- 打开设置窗口的 Behavior 标签,选一个平时用不到的触发键。
- 点一下要摆放的窗口,按住触发键不放。
- 光标移向左侧,屏幕画出目标位置的半透明轮廓。
- 位置满意就松开按键,窗口贴到左半屏。
到这里已经可以日常用了。
按住触发键,圆形菜单展开 🖱️
按住触发键,macOS径向菜单以光标为中心展开,光标移向哪个方向就高亮对应区块,松手即执行移动和缩放。半屏、四分之一、三分之一布局都收进一个圆圈里,对触控板和鼠标用户来说比“修饰键加箭头键”更直观。菜单宽度、形状、颜色都能单独调,不习惯光标交互还能整个关掉,配置入口见 RadialMenuConfigurationView.swift。
摆窗口之前,先看清落点
动作执行前,预览会在目标位置画一个半透明轮廓,窗口落地后的大小和位置先看清楚,不满意直接取消。你不需要挪完再撤销。轮廓的内边距、边框颜色和粗细都可以调,见 PreviewConfiguration.swift。
暂时不用的窗口,让它隐身
暂存把窗口缩小贴到屏幕边缘,只留一条窄边可见,鼠标靠近边缘时窗口自动滑出,再按快捷键收回。适合屏幕空间有限的 MacBook。贴边后露出多少可单独设置,核心逻辑在 StashManager.swift。
同一个键连按,布局跟着换
同一个快捷键重复按,循环会让窗口依次切换到多个布局,比如左半屏、左三分之一、全屏,鼠标重复点击同样触发。适合一天里反复在两三个布局之间来回切换的场景。轮换序列在快捷键设置里配置,见 CycleActionCoordinator.swift。
用键盘重排整块屏幕 ⌨️
写代码时你开着编辑器、浏览器和终端。按住触发键,把编辑器推到左半屏,浏览器推到右半屏,各按一次。终端暂时用不上,按快捷键暂存到左边缘,只露一条窄边;要跑命令时鼠标悬停到边缘,窗口滑出;跑完再按一次收回去。
换成查资料写文档的场景,逻辑一样,步骤更少。
写文档时屏幕左右分屏:左边是论文 PDF,右边是写作工具。想核对某段内容,按循环键,论文窗口在左三分之一、左半屏、全屏之间依次切换;看完再按一次切回来。需要临时处理别的事,就把写作窗口暂存到右边缘,办完事悬停调出继续写。
对比几款窗口管理工具
Rectangle 同样免费开源,布局库很全,但只提供修饰键加箭头键式的操作,没有径向菜单,也没有暂存。Rectangle Pro 是它的付费版,定价 9.99 美元,多出的选项更偏键盘党。Magnet 卖 4.99 美元,是 Windows PowerToys 式吸附功能在 Mac 上的移植。Loop 的差别在三点:光标可参与操作、菜单带预览、暂存内置,且免费开源,代码都能改成贴合自己的习惯。
用一条命令自动化窗口布局
Loop 暴露了 loop:// URL Scheme(URL Scheme 是应用响应特定链接格式的方式,类似 http:// 唤起浏览器),终端里就能驱动窗口操作:
open "loop://direction/left" open "loop://action/maximize" open "loop://screen/next"命令可以串进 shell 脚本或 AppleScript,实现开机批量摆窗口。完整命令清单见 URLCommandHandler.swift。
上手前唯一要选的,就是一个日常绝不按到的触发键,选好后 macOS 窗口管理日常就够用了。菜单形状、预览边框、暂存露出宽度先用默认值,用一周再决定要不要改。遇到 bug 或者想要新功能,直接在项目仓库提交 Issue 即可。
【免费下载链接】LoopWindow management made elegant.项目地址: https://gitcode.com/GitHub_Trending/lo/Loop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考