leonardoaguiar.com Workspace
语言

Workspace

Workspace 是一款 macOS 菜单栏 App:它把窗口吸附到区域中,让每个 App 在你指定的区域里打开,还能把每个窗口的位置存储为会话,以后随时恢复。它完全在你的 Mac 上运行。

在 1.2.2 版本之前,这个 App 名为 Workspace Manager。

系统要求与安装

系统要求

项目要求
系统macOS 13 Ventura 或更高版本
处理器Apple 芯片(M1 或更新);不支持 Intel 芯片的 Mac
空间约 12 MB
权限辅助功能,用于移动窗口和调整窗口大小
价格免费

安装

  1. 从 leonardoaguiar.com/workspace 下载 .pkg 安装器。
  2. 打开它并按照安装器的提示操作。App 会安装到 /Applications/Workspace.app。
  3. 安装结束后,Workspace 会自动打开,以图标形式出现在菜单栏中。

在旧版本上安装新版本会保留你的布局、会话、快捷键和设置。如果 App 正在运行,安装器会先将其关闭,安装完成后再重新打开。

注: Workspace 尚未经过 Apple 公证。如果 macOS 拦下了安装器,请打开“系统设置” › “隐私与安全性”,找到关于 Workspace 的提示并点按仍要打开。只有第一次安装时需要这样做。

数据存放位置

布局、存储的会话、快捷键以及分配给模板区域的 App 都保存在 ~/Library/Application Support/WorkspaceManager:

设置保存在 App 的系统偏好设置中。设置 › 数据 › 在访达中显示会打开数据文件夹。

卸载

Workspace 没有卸载程序。

  1. 如果也要删除你的布局和会话,请先使用设置 › 数据 › 全部抹掉…(或在退出后删除 ~/Library/Application Support/WorkspaceManager)。
  2. 退出 App:打开菜单栏面板,点按电源按钮(退出 Workspace)。
  3. 将 Workspace 从“应用程序”文件夹拖到废纸篓。

快速上手

首次启动

Workspace 常驻在菜单栏中。窗口关闭时,它不会在程序坞中显示图标;窗口打开时,它会出现在程序坞和 ⌘Tab 中。安装的副本第一次运行时会打开登录时启动;你可以在“设置”中关闭它。

同一时间只运行一个副本。App 运行时再次打开它(从访达、聚焦搜索或“应用程序”文件夹),会调出主窗口。

辅助功能权限

只有获得辅助功能权限,macOS 才允许一个 App 移动其他 App 的窗口和调整其大小。没有这项权限,拖移吸附、“应用”和全局快捷键都无法使用。

  1. 首次启动时,App 会请求这项权限。
  2. 在“系统设置” › “隐私与安全性” › “辅助功能”中打开 Workspace。
  3. App 会在一两秒内察觉到这一变化,开始吸附和响应快捷键;无需重新启动。

如果权限处于关闭状态,仪表盘(授予权限)和“设置” › “权限”(授予权限…)会再次请求。

菜单栏图标

图标是由四个括角框起来的四个方块。点按它会打开菜单栏面板,其中列出布局和存储的会话(请参阅“菜单栏面板”)。再次点按图标、点按面板外的任意位置或按下 Escape 即可关闭面板。

面板上的齿轮按钮(打开 Workspace)用于打开主窗口。图标可以在“设置”中隐藏;之后可以通过聚焦搜索或“应用程序”文件夹打开 App,也可以使用打开 App(⌃⇧Space)。

主窗口

主窗口是屏幕顶部附近的一条金属栏,上面有仪表盘、布局、会话、快捷键和设置几个标签页。打开时只显示顶栏,所有标签页都收起。点按某个标签页,其页面会从顶栏下方滑出;再次点按已打开的标签页,页面就会收起。

窗口打开时,屏幕顶部的菜单包括 App 菜单(关于 Workspace、文档、检查更新…、堆叠窗口(请参阅“与其他 Mac App 一起使用”)、报告问题…和退出 Workspace(⌘Q)),以及帮助菜单(Workspace 文档、更新日志和报告问题…)。

点按顶栏上的搜索,或在窗口中任意位置按下 ⌘F,会打开一个页面,用一个搜索栏覆盖 App 中的所有内容:每项设置、每个快捷键、仪表盘的各个部分和快捷操作、模板、你存储的布局和会话,以及帮助页面。

三步完成吸附

  1. 选择一个布局:在仪表盘中点按选择布局,或在菜单栏面板中点按一张布局卡片。
  2. 拖移任意窗口。指针经过时,区域会亮起。
  3. 在某个区域上松开。窗口就会采用该区域的位置和大小。

仪表盘

显示实时仪表和显示器地图的仪表盘

仪表盘显示你屏幕上有什么,以及吸附的状态。它的读数每 2 秒刷新一次,且只在仪表盘打开时刷新。

状态

顶部的铭牌会显示以下三种状态之一:

状态标题含义
需要权限窗口吸附已离线辅助功能权限处于关闭状态。授予权限会请求该权限。
待命选择一个布局以启用吸附没有启用的布局。
吸附中正在吸附到“布局名称”拖移的窗口会吸附到此布局的区域。

在这里选择的布局会在主显示器上启用,如果它原本已在某台显示器上启用,则仍在那台显示器上。

表盘

显示器地图与遥测

显示器地图按照显示器的实际排列绘制它们,每台都标有编号、分辨率和窗口数量;每个窗口都按比例以其 App 的颜色绘出,当前布局的区域以虚线叠加在上面。将指针悬停在窗口上可查看其 App 的名称。

遥测显示最近 3 分钟的窗口、CPU 和内存。这些数据都来自你自己的 Mac,不会发送到任何地方。

快捷操作

App 分布与会话记录

App 分布列出屏幕上窗口最多的六个 App 及各自所占的比例;其余的归入“更多 App”。

会话记录以图表显示最近 14 个存储的会话的窗口数量,并列出最近的三个,每个都有一个恢复按钮(部分模式)。显示全部会打开“会话”标签页。

布局

布局编辑器,其中有一个包含三个区域的布局

布局是绘制在屏幕上的一组区域,以屏幕可用区域(菜单栏和程序坞以内的区域)的百分比表示,因此同一个布局适用于任何显示器。一个布局最多有 16 个区域。每个区域都有名称、位置和大小、优先级、颜色,还可以选择分配 App。

模板与存储的布局

左侧的列表分为两部分:

模板区域
Half Split左、右(各 50%)
IDE Layout编辑器(65%),右侧上下排列着边栏和终端
Thirds左、中、右
Thirds + Row上面三个高区域,下面三个矮区域
Quad Grid四个四分之一
Grid 3×3九个相等的格子,按行和列命名
Tall + Stack左半边,右侧上下排列三个区域
Focus + Aux专注(70%)、辅助(30%)
Ultrawide Dev参考(25%)、编辑器(50%)、工具(25%)

点按模板或存储的布局,即可在编辑器中打开它。打开的那个会保持高亮。

模板不能重新绘制:它们的区域、名称、位置、大小、优先级、颜色和间距都已锁定。你可以为模板的区域分配 App,这些 App 会随模板一起保存。存储副本(⌘S)会把模板存储为一个同名的新布局(如果名称已被使用,则加上编号,例如“Thirds 2”),之后你就可以修改它。

编辑器栏

控制作用
边栏按钮隐藏或显示布局列表(⌃⌘S)。
显示器有多台显示器时显示:选择画布显示哪台显示器的形状,以及应用把窗口放到哪台显示器上。
间距打开布局的间隙设置:窗口之间(间隔)和屏幕边缘(边距),0 到 32 pt,步长为 2,附带预览。模板不可用。
网格(#)在画布上显示 12 × 8 的网格(⌘G)。
应用打开每个区域的 App,并把它们的窗口放入区域中(请参阅“应用”)。在有区域分配了 App 之前不可用。
清除移除布局中的所有区域。模板不可用。
存储存储布局(⌘S)。只有在有未存储的更改时才会亮起。对于模板,此按钮为存储副本。

间距在窗口吸附到布局时生效;点按存储即可保留。存储当前启用的布局会立即更新吸附。

画布

画布按真实比例显示所选的显示器,上方显示布局名称、区域数量(“N / 16 个区域”,以及“模板”或“未存储”)和显示器的分辨率与缩放比例。

每个区域都会显示其名称、以百分比表示的大小,如果分配了 App,还会显示它们的图标以及最上层那个 App 的名称。

画布右侧的栏中有三个开关:

开关下方的预览会以缩略图显示布局,并标明显示器的类型和分辨率。

区域属性

选中区域时,画布下方的面板会显示它的属性。没有选中区域时,会显示使用提示。

属性描述
名称区域的名称,显示在画布和吸附叠层上。
复制复制该区域,偏移 5%,颜色和 App 相同(⌘D)。已有 16 个区域时不可用。
删除移除该区域。
位置 X、Y区域左上角的位置,以屏幕宽度和高度的 % 表示。按下 Return 应用。
大小 W、H区域的宽度和高度,以屏幕的 % 表示(5 到 100)。按下 Return 应用。
优先级1 到 99。区域重叠时,数字较小的那个获得窗口。它也决定“应用”和区域快捷键所用的区域顺序。
颜色蓝色、紫色、绿色、橙色、粉色、蓝绿色、黄色、红色、靛蓝色、青色、薄荷绿色或棕色。
App应用布局时,其窗口会放入该区域的 App。

对于模板,只能更改 App,面板上会显示模板标记。

区域中的 App

点按 App 栏(为空时显示“选取 App”)会打开该区域的 App 列表:

一个区域中的 App 数量没有限制。这台 Mac 上没有安装的 App 会显示虚线图标,“应用”时会被跳过。

应用

应用会把每个区域的 App 放入编辑器所选显示器上的对应区域:

  1. 未运行的 App 会被打开。
  2. 已经位于其区域中的窗口(覆盖区域至少 80%,且区域至少占窗口的 80%)保持不动。
  3. 该 App 在那台显示器上的其他窗口会移到离它们最近的区域。
  4. 仍然空着的区域会获得新窗口,方式是使用该 App 的 ⌘N 菜单项,如果没有该菜单项,则直接键入 ⌘N。
  5. 不肯再打开窗口的 App,会从另一台显示器上让出一个窗口。
  6. 同一区域中的窗口会堆叠起来:区域列表中的第一个 App 最终位于最上层。

区域按优先级顺序填充。一次“应用”正在运行时,各个“应用”按钮都不可用。

会话

“会话”标签页,其中有一个横跨两台显示器的存储会话

会话会记住每台显示器上每个窗口的位置。会话只在你要求时存储;不会自动存储任何内容。

存储会话

会话包含存储那一刻屏幕上可见的窗口:最小化的窗口和 Workspace 自己的窗口不包括在内。

存储的会话

左侧的列表按从新到旧的顺序显示每个存储的会话,包括名称、存储时间(“今天 17:40”“昨天 09:12”或日期)和窗口数量。点按某个会话可以查看其详细信息。

会话详细信息

恢复模式

模式作用
完整打开未运行的 App,等待两秒,然后移动所有窗口并调整其大小。这是“会话”标签页中的默认模式。
部分只移动已打开 App 的窗口并调整其大小。菜单栏面板、仪表盘和恢复上一个会话快捷键使用此模式。
仅位置把窗口移到存储的位置,但不调整其大小。

每个存储的窗口都会与同一 App 的某个已打开窗口配对:首先是仍恰好位于存储位置的窗口,其次是标题相同的窗口,然后是离存储位置最近的窗口。每个已打开的窗口只使用一次,因此有多个窗口的 App 会让每个窗口各回原位。

快捷键

“快捷键”标签页,显示窗口操作及其按键

“快捷键”标签页列出 23 个全局键盘操作,分为窗口、布局、会话和 App 几组。它们在任何 App 中都有效,需要辅助功能权限。窗口操作作用于最前面 App 的当前焦点窗口,使用该窗口所在显示器上当前布局的区域。

默认快捷键

操作默认作用
将窗口移到下一个区域⌃⌥→把窗口移到下一个区域,循环进行。不在任何区域中时,移到第一个区域。
将窗口移到上一个区域⌃⌥←把窗口移到上一个区域,循环进行。不在任何区域中时,移到最后一个区域。
将窗口移到下一台显示器⌃⌥M把窗口按从左到右的顺序移到下一台显示器。如果窗口位于某个区域中,就移到那台显示器上的同一区域;否则保持相同的相对位置和大小。
将窗口移到区域 1 … 9⌃⌥1 … ⌃⌥9把窗口放入该区域。
浮动窗口无把窗口放回快捷键第一次移动它之前的位置。没有被快捷键移动过的窗口会居中,大小为屏幕的 60% × 70%。
在区域中最大化⌃⌥F填满窗口所在的区域;不在任何区域中时,填满整个可用屏幕。
在区域中居中⌃⌥C让窗口在其所在区域(或屏幕)中居中,保持其大小,但不超过区域。
重新应用布局⌃⌥R如果当前布局分配了 App,就再次应用它(与“应用”相同)。否则,把屏幕上的每个窗口移回它覆盖面积最大的区域。
切换到下一个布局⌃⌥L按菜单栏面板中的顺序,将下一个模板或存储的布局设为启用的布局。
切换到上一个布局⌃⌥⇧L将上一个布局设为启用的布局。
存储会话⌃⌥S存储一个名为“会话 N”的新会话。
恢复上一个会话⌃⌥⇧S以部分模式恢复最近的会话。
打开菜单栏⌃⇧W打开或关闭菜单栏面板。图标隐藏时,打开主窗口。
打开 App⌃⇧Space打开主窗口。
切换叠层⌃⌥O在屏幕上显示或隐藏当前布局的区域。

区域按优先级编号(数字小的在前),优先级相同时按布局中的顺序编号。

屏幕顶部附近会出现一条简短提示,确认快捷键做了什么(切换到的布局、存储的会话),或说明为什么无法执行:“没有启用的布局”“没有区域 N”“没有存储的会话”。找不到焦点窗口,或 Workspace 本身位于最前面时,Mac 会发出提示音。

更改快捷键

  1. 连按某个操作的按键(没有按键的操作则点按录制…)。
  2. 当该行显示按下快捷键…时,按下新的组合键。
  3. 要不做更改就停止,请按下 Escape 或点按取消录制。

快捷键至少需要一个修饰键(⌃、⌥、⇧ 或 ⌘)。⌘Q、⌘W、⌘H、⌘M 和 ⌘Tab 由系统保留。已被另一个启用的操作使用的组合键会被拒绝,并显示该操作的名称。录制快捷键也会同时打开该操作。

其他控制

设置

“设置”,包括“通用”“吸附”“权限”和“数据”

通用

设置描述
登录时启动登录时在菜单栏中启动 App。默认打开。仅适用于安装在“应用程序”文件夹中的副本。
在菜单栏中显示图标显示或隐藏菜单栏图标。图标隐藏时,要打开窗口,请再次通过聚焦搜索或“应用程序”文件夹打开 Workspace。

自动检查更新(及立即检查)和自动安装更新请参阅下面的“更新”;发送匿名使用统计请参阅“使用统计与隐私”。

吸附

设置描述
显示区域始终:当前布局的区域始终绘制在屏幕上。拖移时:只在拖移窗口时显示。默认:始终。
吸附距离窗口在区域外多远(在区域之间的间隙中或屏幕边缘旁)松开时仍会吸附进去。0 到 60 pt,步长为 5;0 表示关闭。默认:20 pt。

权限

辅助功能显示已授予或未授予。未授予时,授予权限…会请求该权限,并打开“系统设置”中的“隐私与安全性” › “辅助功能”。

数据

关于

“关于”页面,一张 App 的技术图纸

“关于”页面可以通过顶栏上的 i 按钮或 App 菜单中的关于 Workspace 打开。它显示版本和构建号、一块标有型号、版本、系统和制作者的铭牌,以及指向 leonardoaguiar.com 的链接。

包含模板和会话的菜单栏面板

面板在菜单栏图标下方打开,作用于你点按图标时所在的显示器:预览、吸附和“应用”都在那台显示器上进行。

标志、App 名称、显示器名称和版本。齿轮按钮(打开 Workspace)用于打开主窗口;电源按钮(退出 Workspace)用于退出 App。

布局

每个模板和存储的布局都显示为一张卡片,上面有其区域的缩略图。

会话

存储的会话按从新到旧的顺序列出名称(显示五个,其余的可滚动查看)。

吸附窗口

拖移吸附

启用布局后,按住任意窗口的标题栏拖移。指针移动约 10 pt 后,指针下方的区域会亮起,并显示“松开即可放在这里”。松开后,窗口会采用该区域的确切位置和大小,并应用布局的间距;区域会闪烁一下。

显示区域

当显示区域设为始终时,当前布局的区域会一直以带名称的虚线轮廓绘制在选择它的那台显示器上。设为拖移时时,区域会出现在拖移所在的显示器上,松开后消失。切换叠层(⌃⌥O)可随时显示或隐藏它们。

关闭吸附

吸附会一直保持开启,直到你将其关闭。以下任一操作都会关闭吸附:

退出 Workspace 不会移动任何窗口。吸附和快捷键会停止工作,直到再次打开 App。

键盘快捷键

全局快捷键列在“快捷键”中。以下按键在 App 内有效:

按键位置操作
⌘W主窗口关闭窗口
⌘F主窗口搜索 App
↑ ↓ Return搜索在结果中移动,打开一个结果
Escape搜索先清空搜索栏,再关闭页面
⌘Q主窗口退出 Workspace
⌃⌘S布局隐藏或显示布局列表
⌘G布局显示或隐藏网格
⌘S布局存储布局(对于模板,则为存储副本)
⌘D布局复制所选区域
Delete布局删除所选区域
Escape布局取消选择区域
Return名称和数字输入栏确认名称或数值
Escape重新命名布局时取消
Escape快捷键取消录制
Escape菜单栏面板放弃正在输入的会话名称,或关闭面板
Escape任意 App(已启用布局时)关闭吸附
⌘X ⌘C ⌘V ⌘A ⌘Z ⇧⌘Z文本输入栏剪切、拷贝、粘贴、全选、撤销、重做

疑难解答

辅助功能已打开,但什么都不吸附

“系统设置”中的权限可能属于该 App 的旧副本。打开“系统设置” › “隐私与安全性” › “辅助功能”,选择 Workspace,用 − 按钮将其移除,然后用 + 重新添加 /Applications/Workspace.app(或在“设置”中点按授予权限…),并将其打开。App 会在一两秒内获得该权限。

拖移的窗口没有吸附

快捷键没有反应或发出提示音

新的快捷键不被接受

快捷键至少需要一个修饰键,不能是 ⌘Q、⌘W、⌘H、⌘M 或 ⌘Tab,也不能与另一个启用的操作相同。按键下方的信息会说明是哪种情况。

“应用”呈灰色,或留下一个空区域

恢复会话时漏掉了一些窗口

模板无法更改

模板不能重新绘制;只能设置其区域的 App。点按存储副本即可用它制作一个可编辑的布局。

布局无法重新命名

名称为空,或者已被另一个布局使用(不区分大小写)。请换一个名称。

菜单栏图标不见了

在菜单栏中显示图标已关闭。通过聚焦搜索或“应用程序”文件夹打开 Workspace(或按下 ⌃⇧Space),前往“设置”将其打开。

无法打开“登录时启动”

这个开关只对安装在 /Applications 中的副本有效。请使用网站上的 .pkg 安装 App。

导入时提示文件不是备份

“导入”只能读取由“设置” › “数据”中的导出…生成的文件。

与其他 Mac App 一起使用

安装了 Workspace、Manager、Clipboard 和 Network 中的多个时,它们会像一个整体一样协同工作。

更新

Workspace 每天会到 leonardoaguiar.com 检查一次新版本。此功能默认开启;可在设置 › 自动检查更新中关闭。

帮助与问题报告

帮助菜单和“关于”页面上的帮助铭牌中包含:

报告问题

栏位填写内容
类型错误、崩溃或建议。
频率每次、有时或一次(建议无需填写)。
标题用几个词概括问题,最多 140 个字符。
发生了什么你当时在做什么、看到了什么(如果是建议:你希望 App 做什么)。
复现步骤 · 可选如何让问题再次出现,每行一个步骤。
预期结果 · 可选原本应该发生什么。
电子邮件 · 可选用于通过邮件接收回复;绝不会公开或分享。
附件最多 5 个文件,每个不超过 10 MB:把文件拖到该栏上,或点按添加文件…。截屏、屏幕录制和日志最有帮助。
包含系统信息默认开启:App 的版本和构建号、macOS 版本、Mac 的机型、处理器和内存,以及语言。点按显示可准确查看将发送的内容。

填好标题和描述后,即可使用发送报告(⌘↩);在此之前,旁边的一行文字会说明还缺什么。所有内容会作为一份报告发送,并显示报告编号;清除会清空表单。发送前 Mac 需要先计算片刻,这样可以防止网站被自动化报告淹没。

你的报告

从这台 Mac 发送的报告会列在表单旁边,显示各自的状态(已收到、已确认、处理中、已修复(附带修复它的版本)或已关闭);有未读回复时会亮起橙色指示灯。点按某份报告即可阅读对话并补充细节。从此列表中移除会把它从这台 Mac 的列表中移除;报告仍会保留在开发者那里。每次打开该页面时,或点按标题旁的按钮时,列表都会刷新。

使用统计与隐私

Workspace 每天向 leonardoaguiar.com 发送一次匿名使用统计。此功能默认开启,帮助决定优先修复和改进什么。设置 › 发送匿名使用统计可将其关闭,尚未发送的内容会被丢弃。

会发送的内容:App 版本、macOS 版本、Mac 的机型标识符(例如 Mac15,3)、处理器类型、语言、几项设置的开关状态(例如是否自动检查更新)、App 被打开的次数、窗口打开的分钟数,以及每个标签页和功能被使用的次数,均按天统计。同时发送的还有一个随机标识符,由 App 生成,仅用于此目的。

绝不会发送的内容:名称、窗口标题、App 名称、布局或会话、文件,以及你键入的任何内容。网站只记录统计数据来自哪个国家或地区,不记录 IP 地址。

除统计数据外,Workspace 仅在以下情况连接 leonardoaguiar.com:检查和下载更新、显示更新日志,以及在你填写问题报告时发送报告并查看回复。