Project Icon

Rectangle

基于Swift重写的macOS高效窗口管理应用

Rectangle是一款macOS窗口管理应用,基于Spectacle项目用Swift重新开发。它通过键盘快捷键和拖拽操作实现快速窗口布局,功能包括调整大小、移动位置等。与Spectacle相比,Rectangle新增了单独调整窗口高度、近似最大化等功能,并支持多显示器、忽略特定应用和URL操作等高级特性。该应用旨在提供高效的窗口管理,适用于macOS 10.15及以上版本。

矩形

构建

矩形是一个基于Spectacle的窗口管理应用,使用Swift编写。

截图

系统要求

矩形支持macOS v10.15+。支持macOS 10.13和10.14的最后一个版本是https://github.com/rxhanson/Rectangle/releases/tag/v0.73。

安装

你可以从https://rectangleapp.com发布页面下载最新的dmg文件。

或者使用brew cask安装:

brew install --cask rectangle

如何使用

键盘快捷键是不言自明的,但如果你从未在Windows或其他窗口管理应用中使用过,可能需要对贴靠区域进行一些解释。

将窗口拖到屏幕边缘。当鼠标光标到达屏幕边缘时,你会看到一个轮廓,表示松开鼠标后矩形将尝试调整窗口大小并移动到的位置。

贴靠区域结果动作
左侧或右侧边缘左半或右半
顶部最大化
角落对应角落的四分之一
左侧或右侧边缘,刚好在角落上方或下方上半或下半
底部左侧、中间或右侧三分之一相应的三分之一
底部左侧或右侧三分之一,然后拖到底部中心分别为前三分之二或后三分之二

忽略应用

  1. 聚焦你想要忽略的应用(使该应用的窗口置于最前)。
  2. 打开矩形菜单并选择"忽略应用"。

通过URL执行操作

打开URL rectangle://execute-action?name=[名称]。如果可能,不要激活矩形。

[名称]的可用值:left-half, right-half, center-half, top-half, bottom-half, top-left, top-right, bottom-left, bottom-right, first-third, center-third, last-third, first-two-thirds, last-two-thirds, maximize, almost-maximize, maximize-height, smaller, larger, center, restore, next-display, previous-display, move-left, move-right, move-up, move-down, first-fourth, second-fourth, third-fourth, last-fourth, first-three-fourths, last-three-fourths, top-left-sixth, top-center-sixth, top-right-sixth, bottom-left-sixth, bottom-center-sixth, bottom-right-sixth, specified, reverse-all, top-left-ninth, top-center-ninth, top-right-ninth, middle-left-ninth, middle-center-ninth, middle-right-ninth, bottom-left-ninth, bottom-center-ninth, bottom-right-ninth, top-left-third, top-right-third, bottom-left-third, bottom-right-third, top-left-eighth, top-center-left-eighth, top-center-right-eighth, top-right-eighth, bottom-left-eighth, bottom-center-left-eighth, bottom-center-right-eighth, bottom-right-eighth, tile-all, cascade-all

示例,从shell中:open -g "rectangle://execute-action?name=left-half"

隐藏首选项的终端命令

参见TerminalCommands.md

与Spectacle的区别

  • 矩形使用MASShortcut进行键盘快捷键记录。Spectacle使用自己的快捷键记录器。
  • 矩形有额外的窗口操作:将窗口移动到每个边缘而不调整大小,仅最大化窗口高度,几乎最大化窗口。
  • 下一个/上一个屏幕三分之一被明确的第一个三分之一、前三分之二、中间三分之一、后三分之二和最后三分之一所取代。会考虑屏幕方向,例如在横向屏幕上第一个三分之一是左三分之一,在纵向屏幕上是顶部三分之一。
    • 然而,你可以使用第一个和最后一个三分之一操作来模拟Spectacle的三分之一循环。因此,如果你重复执行第一个三分之一,它将在三分之一之间循环(第一、中间、最后),反之亦然。
  • 有一个选项可以让窗口在连续的左右执行中跨显示器移动。
  • 当窗口被拖到屏幕边缘/角落时会自动贴靠。这可以被禁用。

常见已知问题

矩形没有移动到其他桌面/空间的能力

苹果从未发布过Spaces的公共API。其他可以在空间之间移动窗口的应用使用不受支持或不理想的方式来实现这一点。如果苹果决定发布一个公共API,我会添加这个功能。

iTerm2的窗口调整大小稍有偏差

默认情况下,iTerm2只会以字符宽度的增量调整大小。iTerm2内部可能有设置来禁用这个功能,但你可以使用以下命令来更改它。

defaults write com.googlecode.iterm2 DisableWindowSizeSnap -integer 1

长方形似乎导致通知中心冻结

这似乎只影响少数用户。为防止此情况发生,请取消勾选"通过拖动捕捉窗口"选项。 详见问题 317

故障排除

如果窗口没有按预期调整大小或移动,以下是一些初步步骤来查找原因。此类问题大多是由其他应用程序引起的。

  1. 确保 macOS 是最新版本。
  2. 重启您的机器(这通常可以在 macOS 更新后解决问题)。
  3. 确保没有其他窗口管理应用程序在运行。
  4. 确保行为异常的应用程序没有任何冲突的键盘快捷键。
  5. 尝试使用菜单项执行窗口操作或将键盘快捷键更改为其他组合,以确定是否是键盘快捷键问题。
  6. 按照下一节的说明启用调试日志。
  7. 日志相当直观。如果计算的矩形和结果矩形相同,很可能是另一个应用程序导致了问题。如果需要,保存日志以附加到您创建的问题报告中。
  8. 如果您怀疑可能是另一个应用程序导致问题,请尝试创建并登录一个新的 macOS 用户。

尝试重置 Rectangle 的 macOS 辅助功能权限:

tccutil reset All com.knollsoft.Rectangle

或者,可以按以下步骤操作,而不使用 tccutil 终端命令。

  1. 如果 Rectangle 正在运行,请关闭它
  2. 在系统设置 -> 隐私与安全性 -> 辅助功能中,先禁用 Rectangle,然后用减号按钮将其移除。(按此顺序执行这两个步骤很重要)
  3. 重启您的 Mac。
  4. 启动 Rectangle 并按提示启用相关设置。

查看调试日志

  1. 打开 Rectangle 菜单时按住 alt(选项)键。
  2. 选择"查看日志..."菜单项,该项取代了"关于"菜单项。
  3. 执行 Rectangle 命令时,日志会显示在窗口中。

导入和导出 JSON 配置

在首选项窗口的设置选项卡中有导入和导出 JSON 文件配置的按钮。

启动时,如果 ~/Library/Application Support/Rectangle/RectangleConfig.json 文件存在,Rectangle 将加载该配置文件,并将其重命名为带有时间/日期戳的文件,以避免在后续启动时再次读取。

首选项存储

Rectangle 的配置使用 NSUserDefaults 存储,意味着它存储在以下位置: ~/Library/Preferences/com.knollsoft.Rectangle.plist 注意,v0.41+ 版本中的快捷键以不同格式存储,无法在先前版本中加载。

该文件可以备份或转移到其他机器。

如果您使用的是 Rectangle v0.44+ 版本,还可以使用首选项窗格中的导入/导出按钮,通过 JSON 文件在不同机器间共享您的首选项和键盘快捷键。

[!注意]
如果您在应用程序重启后遇到配置选项无法持续保存的问题,且是通过 Homebrew 安装的,您需要先卸载然后使用 --zap 标志重新安装。

brew uninstall --zap rectangle
brew install rectangle

卸载

可以通过退出应用程序并将其移到垃圾桶来卸载 Rectangle。您可以使用以下终端命令从机器上删除 Rectangle 的默认设置:

defaults delete com.knollsoft.Rectangle

[!提示]
如果您是在使用 Homebrew 安装后卸载,应包含 --zap 标志以确保也删除 plist 条目。

brew uninstall --zap rectangle

贡献

Rectangle 的逻辑在 Multitouch 应用中使用。Rectangle Pro 应用完全建立在 Rectangle 之上。如果您贡献了重要的代码或本地化内容并被合并到 Rectangle 中,请给我发电子邮件以获取 Multitouch 或 Rectangle Pro 的免费许可证。Sparkle、MASShortcut 或 Spectacle 的贡献者也可以获得免费的 Multitouch 或 Rectangle Pro 许可证。

本地化

如果您想为本地化做出贡献,所有翻译都保存在每种语言的 Main.strings 文件中。如果您想添加一个当前不存在的本地化,但不知道如何创建,请创建一个问题,我们可以初始化一个翻译文件。

欢迎提交新本地化或改进现有本地化的拉取请求。

在 Xcode 中运行应用程序(针对开发者)

Rectangle 使用 Swift Package Manager 安装 Sparkle 和 MASShortcut。

MASShortcut 的原始仓库已存档,因此 Rectangle 使用我的分支。如果您想进行任何涉及 MASShortcut 的更改,请在我的分支上提交拉取请求。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号