使用终端切换“屏幕保护程序/睡眠后询问密码”或 10.7 中的延迟

使用终端切换“屏幕保护程序/睡眠后询问密码”或 10.7 中的延迟

在偏好设置面板中有一个选项可以更改 Mac 处于睡眠/屏幕保护状态的时间,之后需要再次输入密码才能解锁。

我正在使用 OS X Lion 10.7。

有没有办法使用终端或 applescript 更改此设置?我尝试使用以下命令更改 plist 文件:

defaults write com.apple.screensaver askForPasswordDelay -int 60

也尝试过

defaults write com.apple.screensaver askForPasswordDelay -float 60

完全禁用密码也不起作用

defaults write com.apple.screensaver askForPassword -int 0

plist 文件已更改,但没有任何效果。它与手动切换偏好设置时更改的 plist 文件相同。

如果有人知道如何解决我的问题那就太好了。

编辑:还尝试:1)添加 -currentHost 标志 2)删除 -int / -float

答案1

尝试使用-currentHostdefaults命令的选项。

defaults -currentHost read com.apple.screensaver

defaults -currentHost write com.apple.screensaver askForPasswordDelay -int 60

除了defaults命令之外,还有/usr/libexec/PlistBuddy

/usr/libexec/PlistBuddy -h

for f in ~/Library/Preferences/ByHost/com.apple.screensaver.*.plist; do
   /usr/libexec/PlistBuddy -c Print "$f"
done

答案2

您可以使用 UI 脚本执行此操作。这需要在“通用访问”偏好设置窗格中启用对辅助设备的支持。您可以使用 从命令行启动脚本osascript,但您需要有一个 GUI 会话才能使其工作。

根据我之前的回答这里,我创建了以下脚本,该脚本可以在启用 File Vault 的 Lion 上运行。显然,禁用密码的复选框已被删除,可能是 Lion 本身删除的,也可能是我启用了 File Vault 2。在后一种情况下,我无法为您修复脚本,但链接的脚本可能有效。

将第 9 行的菜单项索引(6)更改为单击以选择要选择的选项。


在此处输入图片描述

tell application "System Preferences"
    set current pane to pane id "com.apple.preference.security"
    tell application "System Events"
        tell process "System Preferences"
            tell first window
                tell first tab group
                    click radio button 1
                    click pop up button 1
                    click menu item 6 of menu of pop up button 1
                end tell
            end tell
        end tell
    end tell
    quit
end tell

以下是在 AppleScript 中更改此设置的“官方”方法:

tell application "System Events" to set require password to wake of security preferences to false

它有两个主要问题:

  • 它是布尔值(您无法更改宽限期)
  • 它对我不起作用(它取代了我没有的复选框)

答案3

您必须更改配置的版本号并删除锁文件

defaults -currentHost write com.apple.screensaver askForPasswordDelay -int 60
defaults -currentHost write com.apple.screensaver PrefsVersion -int 101

rm ~/Library/Preferences/ByHost/com.apple.screensaver.plist.lock

我没有找到要终止的正确进程,但重新启动后延迟就消失了。

答案4

最好的办法是使用文件上的 plist 编辑器并具体查看...从 Snow Leopard 到 Lion,事情很可能会发生变化。

相关内容