OS X 中哪些控制保存/默认窗口大小和位置?

cwd*_*cwd 5 mac display-settings macos

我在 Mac 上同时运行 Chrome 和 Chromium。我从来没有注意到 Chrome 的问题,但是使用 Chromium 时,它似乎总是以非常奇怪且太小的屏幕上的尺寸和位置开始。

我知道有一些很好的窗口管理实用程序,但是是什么控制了 OS X 中窗口的默认大小/位置?

图片

slh*_*hck 6

这取决于程序。大多数“主”窗口设置(或者更准确地说,“文档”窗口设置)都是硬编码的。我相信他们使用 Apple 在窗口管理框架中提供的内容,例如 Preview.app。

对于大多数应用程序,只有NSWindow辅助窗口的属性存储在程序的属性列表中,而文档窗口设置可能存储在其他位置。这就是 Chrome 所做的,因为它是跨平台的,并且在多台计算机上使用共享首选项格式。


例如,com.macromates.textmate.plist有以下条目:

NSWindow Frame New File Sheet
568 932 386 209 0 0 1920 1178
Run Code Online (Sandbox Code Playgroud)

您可以更改这些,我相信它们使用矩形坐标和原点进行表示,前四个值是NSRect

  • 左上角X坐标
  • 左上角 Y 坐标
  • 宽度
  • 高度

TextMate确实将其主窗口位置存储在 下OakDocumentWindowFrame,但正如我已经提到的,并非所有基于文档的应用程序都是如此。


Google Chrome 使用自己的方式来处理这个问题,即在 JSON 文件中。它有一个window_placement设置,您可以在以下位置找到它:

~/Library/Application Support/Google/Chrome/Default/Preferences

它看起来是这样的:

"window_placement": {
         "always_on_top": false,
         "bottom": 1046,
         "left": 0,
         "maximized": false,
         "right": 1680,
         "top": 22,
         "work_area_bottom": 1046,
         "work_area_left": 0,
         "work_area_right": 1680,
         "work_area_top": 22
      },
Run Code Online (Sandbox Code Playgroud)