为特定应用程序关闭恢复窗口功能 [Mac OS X Lion]

Mac OS X Lion 中引入了恢复窗口这个功能,可以在应用程序再次打开时恢复之前的窗口状态,对于某些情况来说在一定程度上让工作流程更为顺畅。

但 Lucifr 发现这个功能在某些程序中并不必要。比如 Lucifr 在用的一个解压缩软件 BetterZip,我就不希望我下次运行时它又把之前没关闭的压缩文件又打开一次。但 Lion 目前只提供了一个通用设置,要么全都有,要么全没有。怎样才能针对某个程序进行单独的设置呢?以下 Lucifr 就介绍一个通过终端命令来实现针对某个程序打开或关闭窗口恢复功能的方法。

以 Safari 为例

以关闭和开启 Safari 的恢复窗口功能为例,要关闭 Safari 的恢复窗口功能,只需要在终端(Terminal)中输入以下命令即可:

defaults write com.apple.Safari NSQuitAlwaysKeepsWindows -int 0

同理,要开启 Safari 的恢复窗口功能,只需把这个键值删除即可:

defaults delete com.apple.Safari NSQuitAlwaysKeepsWindows

举一反三

那么其它的程序的设置也就可以如法炮制了,用应用程序的对应名称替换其中 com.apple.Safari 这部分就可以了,方法如下:

  1. 打开 Finder,按下 Cmd+Shift+G,在出现的对话框中输入 ~/Library/Preferences 并回车。

  2. 在 Preferences 这个文件夹存放着记录有应用程序的设置的 plist 文件,比如 Lucifr 想要关闭 BetterZip 的恢复功能,查找 betterzip,可以发现有这样一个名为:com.macitbetter.betterzip.plist 的文件,这实际上就是 BetterZip 的设置文件,那么 BetterZip 对应的名称就是:com.macitbetter.betterzip

  3. 要关闭 BetterZip 的恢复功能,就在终端中输入:

    defaults write com.macitbetter.betterzip NSQuitAlwaysKeepsWindows -int 0
    

另一种方法

和之前 Lucifr 介绍过的开启 Twitter for Mac 的隐藏功能的方法相同,这两个命令实际上就是在对相应程序的设置文件进行更改,在其中添加和删除 NSQuitAlwaysKeepsWindows 这个键值。应用程序的设置文件都保存在 ~/Library/Preferences 目录当中,命名很规律,不难找到,上面针对 Safari 的设置实际上就是对 com.apple.Safari.plist 这个文件进行了修改。

因此终端修改无效时,手动通过 PlistEdit Pro 等程序对这个文件进行修改也是可行的。比如 Pages,我在试验时用终端改就不行,直接修改 ~/Library/Preferences/com.apple.iWork.Pages.plist 在其中加入 NSQuitAlwaysKeepsWindows(class 设置为 Number, Value 设置为 0)就可以了。


更新(2011-09-26)

目前已经有了专门针对此项修改的第三方程序:RestoreMeNot,可以更为方便的针对具体程序开启和关闭恢复窗口功能了。

Lucifr

Read more posts by this author.

Beijing, China http://lucifr.com