帮助您排列窗口的应用程序并不少见。 我发现它们非常有用。 我认识的大多数 Windows(操作系统)用户都非常喜欢它内置的定位窗口的能力,但 OS X 中没有那么多内置的功能。 OS X El Capitan (10.11) 带来了分屏功能,但它有很多限制,当然不能满足挑剔的极客的所有需求。
所以让我们来看看这些选项! **警告:** 此页面上有许多超大的 GIF 文件,我认为这将是展示这些应用程序功能的一种有用的方式。
SizeUp
SizeUp($12.99)自称为“缺少的窗口管理器”。

**我最喜欢的部分:** 智能默认值。 对我来说,我使用这些工具的 95% 是“你! 左边! 你! 右边!”,所以内置的非常简单的默认命令很棒。 如果你更喜欢菜单控制,那么它也设计精良,具有良好的默认值

Cinch
Cinch($6.99)由与 SizeUp(Irradiated Software)相同的公司开发。 它不是使用键盘命令调整窗口大小,而是通过在屏幕边缘设置热区来实现。 当您将屏幕拖到边缘时,它将捕捉到覆盖屏幕的那一侧。

需要了解的事项: 他们说它在单显示器设置中效果最佳。 您可以将它与基于键盘快捷键的窗口管理器一起使用,尽管您可能最终会 更喜欢其中一个或另一个。
Spectacle
Spectacle(免费,请求捐赠)与 SizeUp 非常相似。

它在将窗口立即移动到屏幕的一半、三分之一或四分之一方面具有很好的默认值。 默认的按键命令使用 Option 键(而不是没有,就像 SizeUp 一样),但您可能更喜欢它。 按键命令也可以在首选项中自定义。
Better Snap Tool
Better Snap Tool($2.99)与 Cinch 很像,都有用于将窗口调整到位的“热区”。

Better Snap Tool 可高度配置。 您可以创建完全任意的区域来捕捉窗口。 您可以以像素为单位控制窗口捕捉的间距。 您可以使用可自定义的键盘快捷键禁用它。 您可以设置它的外观。 您可以在按钮中添加自定义菜单以进行自定义点击类型。 如果您喜欢自定义,这可能适合您。

Better Touch Tool 也可以进行窗口捕捉。 我认为它具有 Better Snap Tool 的所有功能,只是更多,例如自定义触控板手势和其他各种输入类型来执行自定义操作。
Divvy
Divvy($13.99)采用了调整窗口大小的新方法。 它为您提供了一个小网格,您可以在其中快速绘制要放置窗口的位置。 这样一来,无需事先进行自定义配置,即可快速创建自定义布局。

您可以通过按下菜单栏中的图标或设置全局快捷键命令来激活它。 您可以自定义网格的细粒度,以及为预定义的窗口放置设置自定义键盘快捷键。
HyperDock
HyperDock($6.95)提供了许多功能来增强 Dock 的工作方式。 例如,在将鼠标悬停在应用程序图标上时,显示所有应用程序窗口的气泡窗口,以及特定应用程序的特殊控制窗口。
它还具有窗口管理工具,包括将窗口捕捉到位的按键命令和边缘捕捉。

一个很酷的小功能是,在标题栏中滚动可以执行操作,例如上下捕捉甚至更改窗口所在的区域。
Moom
Moom($10)功能强大,因为它可以执行我们已经介绍过的所有功能,以及更多。 它的一个独特功能是在您将鼠标悬停在窗口的“最大化”按钮上时,它会显示一个菜单。

这些操作也可以通过可自定义的键盘命令从活动窗口触发,或者如果您选择以这种方式运行该应用程序,则可以通过菜单栏菜单触发。 您可以选择将应用程序作为普通应用程序(码头)、菜单栏应用程序或根本没有非键盘访问权限来运行。
您还可以启用窗口边缘捕捉(如 Cinch/Better Snap Tool),如果您愿意。 如果您使用多个屏幕,您可以让它忽略与其他屏幕相邻的边缘。 如果你不喜欢它捕捉到的位置,稍微移动它一下就会重置它的尺寸。
您可以在 Moom 中设置多应用程序窗口“快照”,这意味着您可以通过单一操作告诉来自多个应用程序的窗口移动到适当位置。

Moom 的真正强大之处在于构建您自己的自定义操作。 每个自定义操作都可以在菜单栏菜单以及您激活全局 Moom 热键(也可以自定义)后的辅助快捷键中使用。 这些操作可以捕捉到网格(您可以像 Divvy 一样绘制网格)、移动窗口、居中……等等。

我最喜欢的一点: 您可以让 Moom 在您插入 X 个屏幕时执行自定义操作。 因此,如果您有时只使用笔记本电脑工作,有时使用显示器工作,那么 Moom 可以在您插入该显示器时将窗口捕捉到位。
Breeze
Breeze($3.99)完全是关于窗口的“保存状态”。 将窗口放置在您想要的位置,将保存/命名/应用快捷键应用于它,这样您就可以随时捕捉回它。

它只适用于单个窗口……与大多数其他应用程序相比,功能相当有限。
Magnet
Magnet($1.99)设计精美,并且可能是有意限制其功能。 它对一半或四分之一进行边缘捕捉,并且可以通过菜单栏菜单进行相同操作。

看起来那里还有一些额外的功能,例如最大化和将窗口移到下一个显示器。
Zooom/2
Zooom/2($19.95)采用了另一种略有不同的方法。
主要思想很简单: 按住一个组合键,然后移动鼠标。 ……你只需要知道两个组合键,你就会完全训练有素!
它还具有其他独特的功能,例如在你将鼠标悬停在窗口上时将窗口“提升”到顶部。
OS X (El Capitan)
正如我在文章开头所说,Windows 用户享受一些直接内置于操作系统的窗口管理功能。从 OS X 10.11 El Capitan 开始,Mac 用户也可以。使用它的技巧是按住窗口上的全屏按钮,它将允许您将窗口拖到您想要的侧面,然后选择另一个打开的窗口作为另一侧。

AppleScript
AppleScript 内置于 OS X 中,当然能够调整窗口的大小和位置。以下是 Arley McBlain 为他写的调整东西位置的脚本。它甚至连接到 Alfred 工作流程。
@chriscoyier AppleScript 布局工作流程的屏幕截图:pic.twitter.com/g9kFi5fak6
— Arley McBlain (@ArleyM) January 2, 2016
值得一提:给硬核玩家
有很多低级工具用于做窗口管理,但也有一些更“生产力”相关的事情。例如,Mjolnir 是“用于 OS X 的轻量级自动化和生产力应用程序”。它允许您安装模块,这些模块允许您控制/API 访问某些东西。然后您可以编写自己的代码来执行操作。
据推测,这(来自文档)会将窗口向右移动 10 像素吗?
local application = require "mjolnir.application"
local hotkey = require "mjolnir.hotkey"
local window = require "mjolnir.window"
local fnutils = require "mjolnir.fnutils"
hotkey.bind({"cmd", "alt", "ctrl"}, "D", function()
local win = window.focusedwindow()
local f = win:frame()
f.x = f.x + 10
win:setframe(f)
end)
Hammerspoon 看起来非常相似,只是它可能附带预先打包的模块?我不知道这些东西超出了我的能力范围。
Hammerspoon 是一款适用于 OS X 的桌面自动化工具。它将各种系统级 API 桥接到 Lua 脚本引擎,允许您通过编写 Lua 脚本对您的系统产生强大的影响。
Phoenix 是“一个可以用 JavaScript 脚本化的轻量级 OS X 窗口和应用程序管理器”
您还可以轻松使用编译成 JavaScript 的语言,例如 CoffeeScript。Phoenix 追求效率和极小的占用空间。如果您喜欢用 JavaScript 编写自己的窗口或应用程序管理工具的想法,Phoenix 可能会提供您想要的东西。使用 Phoenix,您可以绑定键盘快捷键和系统事件,并使用这些来与 OS X 交互。
Slate,“一个窗口管理应用程序”,看起来它正在尝试成为一个原生应用程序竞争对手
Slate 是一个类似于 Divvy 和 SizeUp 的窗口管理应用程序(但更好且免费!)。它最初是为了替换它们而编写的,因为它们在工作方式上存在一些限制,它试图通过简单地提供极高的可配置性来克服这些限制。
它看起来既有粉丝,但有一段时间没有更新了,需要一些专门的极客才能使用。
ShiftIt 看起来也在同一条船上。最近更新了一点,但您仍然需要了解自己在做什么。即使下载构建也会警告您它来自不受信任的来源,因此您必须进行一些操作才能绕过它。
用你那该死的鼠标随意拖动东西
@chriscoyier 我根据需要在显示器之间拖动它们吗?
— Norcross ☕️ (@norcross) January 1, 2016
谢谢!
对于 所有建议。请在评论中告诉我们您使用什么以及如何使用。
就我个人而言,我一直使用 SizeUp 很长时间了。但我想试试切换到 Moom。
我对 Windows 有这个工具有点嫉妒
因为
Chris,关于您超大的 GIF:为什么您不使用 HTML5 视频,也许再用 GIF 作为备份呢?
我使用 Better(Touch|Snap)Tool 已经很多年了,它是我的 OSX 必备应用程序之一(与 ExtraFinder 一样)。
除了窗口捕捉之外,BetterTouchTool 还允许将任意数量的键盘快捷键、鼠标和触控板手势绑定到任何东西,从 OSX 功能到自定义脚本。它甚至支持 Siri 命令!
此外,它的价格低廉,仅为 2.99 美元(BetterTouchTool 以前是免费的。现在它是付费的,您可以随意支付价格),在我看来,它比大多数类似应用程序都要好。
它仍在 这个分支 中开发。
我使用 spectacle。它是免费的,并且可以完成它应该做的事情。我不会为如此基本的功能付费。
这就是我所说的可靠文章,Chris。您将所有这些好东西整合在一起,做得太棒了。
我是 Divvy 的长期用户。也许还有一些更强大的工具,但 Divvy 已经可以满足我的所有需求。自定义快捷键“alt + d”来触发 Divvy,然后使用箭头键对齐到边缘,或使用 1、2、3 或 4 来定位到全屏、居中、左 2/3(我的 Sublime Text 空间)和 1/3(iTerm)。仅占用 5MB,从未崩溃过。
我很惊讶在列表中没有找到平铺 WM。在 GNU/Linux 上,Awesome WM 是最著名的一个(因为它很棒?^^)。对于小型键盘来说,在没有鼠标的情况下管理所有内容对于提高工作效率很有帮助。
快速搜索一下,KWM 出现得最多(通过命中率过滤,不早于一年前)。
我使用 Moom 至少两年了。这种工作方式非常舒服。如果你和我一样,讨厌手动调整和放置窗口时出现的细小间隙和不规则性,你就会非常喜欢使用这样的工具 :)
Hyperdock 具有捕捉功能,这很酷,但我以前从未用过它,现在我每天都会用它 :)
或者,您可以在其他操作系统上使用 KDE、Mate……
(Divvy 和 Moom 的网格看起来很酷,虽然!)
Spectacle 很棒。在显示器之间切换,将窗口调整为一半、三分之一和四分之一,并使用可自定义的键盘快捷键,而且它是免费的!
我想它不具备的一个功能,我认为非常有用,那就是记住您的窗口位置,但是,用 Spotlight 打开所有东西并放置/调整窗口大小(不使用鼠标)只需要 10 秒,所以实际上没什么大不了的。
过去两年我一直是 Spectacle 的忠实用户,我的整个团队在看到它运行后就开始使用它。
此外,Spectacle 是所有列出软件中唯一开源的(github)。
我想补充一点,所有列出的 WM 都可以通过 homebrew-cask 安装,除了 BetterSnapTool 和 Magnet,它们只能在 Mac App Store 中获得。
Slate 有一个社区维护的分支:https://github.com/mattr-/slate,知名度要低得多。这个项目促使我编写了 Lovely Forks Chrome/Firefox 扩展,以便我不会错过这些值得关注的分支:https://github.com/musically-ut/lovely-forks
~
ut
如果你想使用完整的窗口管理器,kwm 是我用过的最强大的管理器。
至于 Mjolnir/Hammerspoon,我确信它们的功能几乎相同,但 Hammerspoon 正在更积极地开发。
我刚开始使用 Hammerspoon。它非常灵活,可以让你做任何你想做的事情,但肯定需要一些学习曲线。我希望有更多社区,更多的人展示他们用它做的一些很酷的事情。
我曾经是“主要使用 Windows 的用户”,后来变成了“主要使用 OSX 的用户”,因此窗口管理的世界发生了巨大的变化。我一直使用 Spectacle,它带来了巨大的积极变化!
我想找到一个工具,能够为 OSX 文件管理的视觉效果带来同样的积极变化。当我切换时,这是另一个发生了改变,变得对我来说更难的体验。它并没有变得糟糕,我一直在使用它。尽管如此,我仍然希望有一些工具来简化体验。
感谢这份综述!
我从未使用过窗口管理器,虽然曾经我尝试在 Leopard/Snow Leopard 中设置 Spaces。感觉为了提高生产力而付出的努力得不偿失。
我认为使用这些工具中的一种会让我更高效,但由于从未使用过类似工具,我无法理解哪一种更适合我的工作方式。
看起来你遗漏了一个
Optimal Layout http://most-advantageous.com/optimal-layout/
我已经使用它很长时间了(以前是 WindowFlow),它完全兼容 El Capitan(Chrome 存在一些小问题)。
多年来我尝试过你列表中的一些工具,但最终又回到了 OL。
怎么样 http://www.nulana.com/flexiglass/?从 OSX Mavericks 开始我就一直在使用这个不错的工具。它甚至在 El Capitan 上也能正常工作。我是一个“快捷键狂魔”,不想使用鼠标技巧来移动我的窗口。对我来说,这份概述中缺少这个应用!(我只是一个通过 Apple Mac Store 购买 Flexiglass 的用户,不是员工;-])
有人测试过它并与其他应用进行比较吗?