如何让 OSX 记住不同 Chrome 窗口的桌面分配

如何让 OSX 记住不同 Chrome 窗口的桌面分配

问题:在 OSX (10.11.6) 上使用 Google Chrome 浏览器 (51.0.2704.103) 时,我经常发现自己在多个桌面之间精心排列的窗口位置丢失了。如果 Chrome 退出,或者 OSX 重新启动,就会发生这种情况。OSX 倾向于记住每个应用程序的桌面分配,但每次 Chrome 重新启动时,所有 Chrome 窗口都会捆绑在同一个桌面中。

动机:这对我来说至关重要,因为我交替进行不同的项目,并且出于提高效率的原因,我将每个项目放在不同的桌面上。

答案1

编辑:这对我来说仍然不完全有效:有些窗口恢复了,有些则没有。新的错误 ID 是1012034


最新开发版本 (Chrome 79) 已修复此问题,错误 #74812

不过,默认情况下,为了符合 Apple 的 UI 要求,如果您使用 Cmd-Q 退出 Chrome,此功能仍不会恢复工作区。引用sdy功能作者的话:

对于希望 Chrome 始终将窗口恢复到原始空间的用户,可以通过在终端窗口中运行此命令进行设置(对于 Canary,使用com.google.Chrome.canary):

defaults write com.google.Chrome NSWindowRestoresWorkspaceAtLaunch -bool YES

要恢复默认行为,请运行:

defaults delete com.google.Chrome NSWindowRestoresWorkspaceAtLaunch

答案2

OSX 似乎会在同一桌面空间中打开应用程序的所有窗口。因此,您需要将每个窗口作为单独的应用程序实例打开。

对于大多数应用程序(但对于 Chrome 除外),通过 打开它就足够了 open -naF "App Name",但对于 Chrome,您还必须 --user-data-dir为每个实例指定不同的参数。您需要的临时目录数量与要打开的实例数量相同。

参考 :

答案3

我也遇到了这个问题,这就是我尝试解决这个问题的方法。

  1. 右键点击chrome->options->Assign To(选择none)。如下图所示

快照1-chrome

  1. 现在您可以单击 chrome 窗口到另一个桌面。然后您将在第二个桌面上看到 chrome。

快照2-桌面

答案4

我已经通过开发一个小型个人模块解决了这个问题锤子勺基于hs.spaces包,循环遍历每个空间并存储每个空间上的窗口及其大小。您可以在Github

相关内容