在偏好设置面板中有一个选项可以更改 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
尝试使用-currentHost
该defaults
命令的选项。
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,事情很可能会发生变化。