这个项目能做什么
Rectangle 是一款 macOS 窗口管理应用,基于 Spectacle 开发。支持 macOS v10.15 及更高版本;支持 macOS 10.13 和 10.14 的最后一个版本为 v0.73。可从 rectangleapp.com 或 Releases 页面下载 dmg 安装,也可通过 Homebrew cask(`brew install --cask rectangle`)安装。
核心功能是通过键盘快捷键和吸附区域移动和调整窗口大小。将窗口拖至屏幕边缘会显示布局预览:左右边缘为半屏,顶部最大化,四角为四分之一屏,角落上方或下方的边缘为上下半屏,底部三等分为对应三分之一(配合拖向中心的组合可实现三分之二)。
启用"在菜单中显示更多尺寸"后,可通过 Tiling 子菜单(行和列)进行平铺,也可在 Settings > General > Extras 中分别设置 Tile Windows in Rows/Columns 的快捷键。平铺会在包含焦点窗口的显示器上的当前 Space 中排列普通窗口,或在无普通窗口焦点时由指针所在显示器处理。行从上到下排列,列从左到右排列,顺序按窗口左上角位置排序。Band 布局在 macOS 预留区域(菜单栏、Dock)和配置的屏幕边缘间隙内填充工作区(前提是应用允许);尊重最小窗口尺寸,若应用未及时响应则布局可能不完整。Todo 窗口被排除在外,其侧边栏预留区域受尊重。
可通过 Rectangle 菜单设置忽略某个应用,使 Rectangle 快捷键在该应用处于前台时取消注册,之后重新注册,适用于快捷键冲突的场景。
可通过 URL 触发操作:`rectangle://execute-action?name=[name]`,名称涵盖半屏、三分之一、四分之一、六分之一、九分之一、八分之一、最大化变体、缩小/放大、居中、还原、显示器导航、移动方向、全部平铺/行/列以及级联操作等。`rectangle://execute-task?name=...` 可调用忽略/取消忽略等任务,可选附带 bundle identifier。隐藏偏好设置在 TerminalCommands.md 中有文档说明。
与 Spectacle 的差异包括:使用 MASShortcut 进行快捷键录制;新增操作(移动至边缘不调整大小、最大化高度、近似最大化);明确的首个/居中/末个三分之一而非循环切换(感知方向);可选的跨显示器遍历;可禁用的拖拽边缘吸附。
已知问题包括:无公开 API 用于在 Spaces/桌面间移动窗口;应用强制最小尺寸时出现重叠(显示"Window size limited"消息);iTerm2 以字符宽度增量调整大小(可通过 defaults 命令修复);罕见情况下通知中心冻结,可通过禁用拖拽吸附缓解。故障排除指南包括锁定/解锁、重启、调试日志(通过 alt 键菜单项"View Logging...")、检查是否存在冲突的窗口管理器或快捷键、在新 macOS 用户下测试,以及使用 `tccutil reset All com.knollsoft.Rectangle` 重置辅助功能权限。
配置存储在 NSUserDefaults `~/Library/Preferences/com.knollsoft.Rectangle.plist` 中,首选项中提供 JSON 配置导入/导出;置于 `~/Library/Application Support/Rectangle/RectangleConfig.json` 的配置文件会在启动时加载并重命名为带时间戳的版本。卸载方式为退出并删除应用,可选择删除偏好设置或使用 `brew uninstall --zap rectangle`。
欢迎贡献,包括 Main.strings 中的本地化以及通过 Extra Shortcuts 部分添加更多尺寸/位置。项目使用 Swift Package Manager 管理 Sparkle 和分支版 MASShortcut,并注意到在 macOS 版本低于 26 时由于 Liquid Glass 图标会导致构建失败,除非在本地移除 Asset Catalog Other Flags。
评论
0 评分人数达到10人后显示
登录后参与讨论。