hva*_*rug 4 macos cocoa command-line screensaver
有谁知道如何发现mac上当前用户的屏幕保护程序的超时.如果可能的话,我更喜欢编程方法,但我也很乐意解析命令行实用程序的输出.我已经用pmset做这个以获得睡眠时间.
作为正确原始答案的后续(在对有关El Capitan的答案的评论的回复中),似乎上述属性在10.11中不存在于默认值集合中,但它确实存在于currentHost:
$ defaults read com.apple.screensaver
{
askForPassword = 1;
askForPasswordDelay = 5;
tokenRemovalAction = 0;
}
Run Code Online (Sandbox Code Playgroud)
然后为currentHost:
$ defaults -currentHost write com.apple.screensaver idleTime 60
$ defaults -currentHost read com.apple.screensaver
{
PrefsVersion = 100;
idleTime = 60;
moduleDict = {
moduleName = iLifeSlideshows;
path = "/System/Library/Frameworks/ScreenSaver.framework/Resources/iLifeSlideshows.saver";
type = 0;
};
showClock = 0;
tokenRemovalAction = 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的write命令设置了我的用户的空闲时间,这正是我要找的.希望这可以帮助!
小智 5
在当前用户(在从10.6.x的至少向上)存储在用于屏幕保护程序设置的值属性列表文件中~/Library/Preferences/com.apple.screensaver.plist。如果用户决定禁用自动屏幕消隐/保存,则可能没有值。
您可以使用名为defaults(1)的命令行实用程序读取该值:
defaults read com.apple.screensaver idleTime
defaults -currentHost read com.apple.screensaver idleTime
Run Code Online (Sandbox Code Playgroud)
前者提供对当前用户设置的访问,后者提供对系统默认值的访问,如果存在的话。
使用 defaults(1) 读取值有些复杂,因为该值可能存在也可能不存在。defaults read com.apple.screensaver idleTime如果当前用户禁用了屏幕保护程序,假设它将返回零是明智的,但事实并非如此。相反, defaults(1) 将在终端上抛出错误消息并返回非零退出代码。而不是仅仅解析 defaults(1) 的输出,您必须首先检查退出代码并仅在它为零的情况下才进行解析。另一方面,在解析外部命令的输出时,这可能是一个明智的策略。
Apple 也为他们的 Xcode提供了用于读取/写入属性列表的编程接口。
| 归档时间: |
|
| 查看次数: |
3840 次 |
| 最近记录: |