我正在尝试加快在 OS X 上启用和禁用安全/密码功能的速度。具体来说,在本例中是 Mountain Lion 10.8.4。
我目前设置了一个热点(加上快捷键 ctrl + shift + EJECT)来启动 Mac 上的屏幕保护程序。这反过来要求在屏幕保护程序启动后立即输入密码。当我在希望在共享情况下保护我的活动 Mac 的环境中工作时,我会使用此功能。
我正在尝试从终端启用一种快速方法来启用或禁用“睡眠或屏幕保护程序开始后需要密码 X”。
我努力了
defaults -currentHost write com.apple.screensaver askForPassword -int 0
defaults -currentHost write com.apple.screensaver askForPassword -int 1
这似乎成功更新了 /Users/USER/Library/Preferences/com.apple.screensaver.plist。
但是,手动更新或使用终端更新时
askForPassword
,它似乎被忽略了,因此功能上没有任何改变。
如果可能的话,我更愿意从终端执行此操作,但如果不行,我愿意听取其他建议。到目前为止,所有命令都是以非 root 身份运行的。
任何有关此事的帮助或指导都是非常受欢迎的
答案1
您可以killall SystemUIServer
(或者,如果您愿意)编译此代码并在运行命令后运行它defaults
。它比 killall 命令更温和,尽管它需要安装开发人员工具和 C 编译器。
#include <CoreFoundation/CoreFoundation.h>
int main(int argc, char ** argv) {
CFMessagePortRef port = CFMessagePortCreateRemote(NULL, CFSTR("com.apple.loginwindow.notify"));
CFMessagePortSendRequest(port, 500, 0, 0, 0, 0, 0);
CFRelease(port);
return 0;
}
(来源:http://hintsforums.macworld.com/archive/index.php/t-49718.html)
答案2
嗯,对我来说也没用。我列出了默认设置,发现以下内容:
$ defaults read com.apple.screensaver
{
askForPassword = 1;
askForPasswordDelay = 60;
}
因此我也将尝试改变延迟:
$ defaults write com.apple.screensaver askForPasswordDelay -int 1
它可能会对您有所帮助,但是在即将推出的 OS X 版本上不起作用,即使终止了 SystemUIServer...