第 6 章,共 13 章
窗口记忆
Lattika 会记住每个窗口原先在哪个区域,并在窗口再次出现时把它放回去。这项功能不需要你打开;App 本来就是这样工作的。
记住了什么
每次贴靠窗口,无论是通过拖移、快捷键、规则、工作区还是“快捷指令” App,Lattika 都会记下它落在哪台显示器、哪个布局、哪个或哪些区域。这条记录以 App 和窗口标题为索引。每个 App 另有一条记录,记下该 App 的任意窗口最后去的区域。
没有标题的窗口只有 App 级别的记录。最多保留 400 个带标题的窗口,最旧的记录会给新的让位。
这些记忆存储在这台 Mac 上的 memory.json 中(第 12 章),不会通过 iCloud 同步。
区域编号会应用到显示器 现在 使用的布局上。如果你把一个窗口贴靠到三列布局的区域 2,后来又把那台显示器切换到 2 × 2 网格,这个窗口会被恢复到网格的区域 2。
窗口何时被放回原处
窗口出现时。App 打开窗口约半秒后,Lattika 会在记忆中查找 App 和标题都完全匹配的记录:比如你上周贴靠过、现在再次打开的文稿,或者你放置过、随后随 App 退出而关闭的浏览器窗口。如果找到了,而且对应的显示器已连接,窗口就会被移到那里,该区域会亮一下。Lattika 从未见过的窗口会留在 App 打开它的位置,除非打开了 将新窗口移到其上次所在的区域(见下文)或有规则适用。规则(第 7 章)会先被检查,并且优先于记忆。
显示器变化时。当你接上或拔下显示器,或者更改分辨率时,Lattika 会等待一秒半让一切稳定下来,然后把每个 App 和标题完全匹配的已打开窗口放回它的区域,前提是它原先所在的显示器以相同尺寸重新接入。之后,匹配的工作区也可能进行恢复(第 8 章)。
你要求时。菜单中的 将窗口恢复到区域、⌃⌥R 或“快捷指令”操作,会把每个在本次会话中贴靠过、或在记忆中 App 和标题完全匹配的已打开窗口放回原处。
恢复时绝不会动排除的 App 的窗口、已最小化的窗口以及非标准窗口。
两项偏好设置
两项都在 设置 › 通用 › 窗口记忆 中。第一项默认打开,第二项默认关闭。
- 显示器更改时将窗口恢复到其区域 控制显示器变化时的恢复。如果你更希望外接显示器之后窗口留在 macOS 放置它们的位置,请把它关闭。
- 将新窗口移到其上次所在的区域 还会把 Lattika 从未见过的窗口(例如新的访达窗口或无标题文稿)移到其 App 上次使用的区域。它默认关闭:新窗口在同一个区域里层层叠起,很容易让人以为窗口根本没有打开。App 和标题完全匹配的窗口无论如何都会回到它们的区域,规则也仍然有效。


遇到问题时
- 新窗口在错误的位置打开。 有些 App 在打开窗口后片刻会自行设定窗口的大小和位置,盖过了 Lattika 的放置。请再贴靠一次窗口,或者为这个 App 添加一条规则。第 12 章有关于 Electron 和 Java App 的说明。
- 新窗口根本没有被放置。 除非打开了 将新窗口移到其上次所在的区域,Lattika 只放置它见过的窗口,按 App 和标题识别。否则就是 App 已被排除、窗口打开时是最小化的,或者窗口上次所在的显示器没有以相同尺寸连接。
- “将窗口恢复到区域”跳过了某个窗口。 只有在本次会话中贴靠过的窗口或标题完全匹配的窗口才会被恢复。贴靠之后标题变了的窗口(例如文稿被重新命名)无法识别。请再贴靠一次。
- 显示器变化后窗口移动了,可我并没有贴靠过它们。 它们曾在某个时候被贴靠并被记住了。请关闭显示器变化时恢复的那项偏好设置,或者删除
memory.json重新开始(第 12 章)。 - 试用期结束后什么都不恢复了。 窗口记忆需要许可证,其他会移动窗口的功能也都一样。