矩形是一个基于 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安装:
酿造安装--木桶矩形
键盘快捷键是不言自明的,但如果您从未在 Windows 或其他窗口管理应用程序上使用过捕捉区域,则可以使用一些解释。
将窗口拖到屏幕边缘。当鼠标光标到达屏幕边缘时,您将看到一个足迹,当释放单击时,矩形将尝试调整大小并将窗口移动到该足迹。
捕捉区域 | 结果行动 |
---|---|
左边缘或右边缘 | 左半部或右半部 |
顶部 | 最大化 |
角球 | 各角落的四分之一 |
左边缘或右边缘、角的上方或下方 | 上半部或下半部 |
左下、中间或右三分之一 | 分别第三名 |
左下或右下三分之一,然后拖动到底部中心 | 分别为前三分之二或后三分之二 |
聚焦您想要忽略的应用程序(从该应用程序最前面创建一个窗口)。
打开矩形菜单并选择“忽略应用程序”
打开 URL rectangle://execute-action?name=[name]
。如果可能,请勿激活矩形。
[name]
的可用值: left-half
、 right-half
、 center-half
、 top-half
、 bottom-half
、 top 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
, center-prominently
, 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
, cascade-active-app
例如,在 shell 中: open -g "rectangle://execute-action?name=left-half"
请参阅终端命令.md
矩形使用 MASShortcut 进行键盘快捷键记录。 Spectacle 使用了自己的快捷记录器。
矩形具有额外的窗口操作:将窗口移动到每个边缘而不调整大小,仅最大化窗口的高度,几乎最大化窗口。
下一个/上一个屏幕三分之一被明确替换为前三分之一、前三分之二、中间三分之一、后三分之二和最后三分之一。考虑了屏幕方向,因为前三分之一将在横向上留下第三个,而在纵向上将留下上三分之一。
不过,您可以使用第一个和最后一个第三个动作来模拟 Spectacle 的第三个循环。因此,如果您重复执行第一个三分之一,它将循环通过三分之一(第一个,中间,最后一个),反之亦然,最后一个三分之一。
有一个选项可以让窗口在后续的向左或向右执行时遍历显示器。
当拖动到屏幕的边缘/角落时,窗口将对齐。可以禁用此功能。
Apple 从未发布过 Spaces 的公共 API。其他在空间之间移动窗口的应用程序使用不受支持或不需要的方式来实现此目的。如果 Apple 决定为其发布公共 API,我会将其添加进去。
默认情况下,iTerm2 只会以字符宽度的增量调整大小。 iTerm2 内部可能有一个设置可以禁用此功能,但您可以使用以下命令更改它。
默认写入 com.googlecode.iterm2 DisableWindowSizeSnap -integer 1
这似乎只影响一小部分用户。为了防止这种情况发生,请取消选中“通过拖动捕捉窗口”复选框。参见第 317 期。
如果窗口没有按照您的预期调整大小或移动,请执行以下一些初步步骤来了解问题的根源。大多数此类问题都是由其他应用程序引起的。
确保 macOS 是最新的。
重新启动计算机(这通常会在 macOS 更新后立即修复问题)。
确保没有其他窗口管理器应用程序在运行。
确保窗口运行不正常的应用程序没有任何冲突的键盘快捷键。
尝试使用菜单项执行窗口操作或将键盘快捷键更改为不同的内容,以便我们可以判断是否是键盘快捷键问题。
按照以下部分中的说明启用调试日志记录。
日志非常简单。如果您计算出的矩形与生成的矩形相同,则很可能是另一个应用程序导致了问题。如果需要,请保存日志以附加到您创建的问题。
如果您怀疑可能是其他应用程序导致问题,请尝试创建新的 macOS 用户并登录。
tccutil 重置所有 com.knollsoft.Rectangle
或者,可以通过以下步骤而不是 tccutil 终端命令来完成此操作。
如果矩形正在运行,则关闭它
在系统设置 -> 隐私和安全 -> 辅助功能中,首先禁用矩形,然后使用减号按钮将其删除。 (按顺序执行这两个步骤很重要)
重新启动你的Mac。
启动 Rectangle 并根据提示启用其设置。
在“矩形”菜单打开的情况下按住 alt(选项)键。
选择“查看日志记录...”菜单项,该菜单项代替“关于”菜单项。
当您执行矩形命令时,日志记录将显示在窗口中。
首选项窗口的设置选项卡中有用于将配置导入和导出为 JSON 文件的按钮。
启动后,矩形将在~/Library/Application Support/Rectangle/RectangleConfig.json
中加载配置文件(如果存在),并将使用时间/日期戳重命名该文件,以便在后续启动时不会读取该文件。
矩形的配置使用 NSUserDefaults 存储,这意味着它存储在以下位置: ~/Library/Preferences/com.knollsoft.Rectangle.plist
请注意,v0.41+ 中的快捷方式以不同的格式存储,并且不会加载之前的版本。
该文件可以备份或传输到其他计算机。
如果您使用的是 Rectangle v0.44+,您还可以使用“首选项”窗格中的导入/导出按钮,使用 JSON 文件在计算机之间共享您的首选项和键盘快捷键。
笔记
如果您在应用程序重新启动后仍然遇到配置选项问题,并且您是使用 Homebrew 安装的,则需要使用--zap
标志卸载并重新安装。
brew uninstall --zap rectangle brew install rectangle
可以通过退出应用程序并将其移至垃圾箱来卸载 Rectangle。您可以使用以下终端命令从计算机中删除默认的矩形:
默认删除 com.knollsoft.Rectangle
提示
如果您在使用 Homebrew 安装后进行卸载,则应包含--zap
标志以确保它也删除 plist 条目。
brew uninstall --zap rectangle
Multitouch 应用程序中使用了 Rectangle 的逻辑。矩形专业应用程序完全构建在矩形之上。如果您贡献了重要的代码或本地化内容并合并到 Rectangle 中,请给我发送电子邮件以获取 Multitouch 或 Rectangle Pro 的免费许可证。 Sparkle、MASShortcut 或 Spectacle 的贡献者还可以获得免费的 Multitouch 或 Rectangle Pro 许可证。
如果您想为本地化做出贡献,所有翻译都保存在每种语言的 Main.strings 中。如果您想添加本地化但当前不存在并且您不知道如何创建本地化,请创建一个问题并可以初始化翻译文件。
欢迎提出新本地化或现有本地化改进的请求。
Rectangle 使用 Swift Package Manager 来安装 Sparkle 和 MASShortcut。
MASShortcut 的原始存储库已存档,因此 Rectangle 使用我的 fork。如果您想进行任何涉及 MASShortcut 的更改,请在我的 fork 上提出拉取请求。