Screensaver configuration


For our environment, we are required to enforce a screensaver that comes on after 10 minutes of inactivity and requires a password to clear. Here's how we accomplish that for all users of a system.

In /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ is a file called Engine Defaults.plist

The default contents look something like this:

{
       idleTime = 1200;
       moduleName = "Flurry";
       askForPassword = 0;
}

This makes the default screensaver the "Flurry" module, sets its activation to 20 minutes, and does not require a password to clear it. We changed this file to read:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
       <key>askForPassword</key>
       <integer>1</integer>
       <key>hotCorners</key>
       <array>
              <array>
                     <string>0</string>
                     <string>0</string>
                     <string>1</string>
                     <string>1</string>
              </array>
       </array>
       <key>idleTime</key>
       <integer>600</integer>
       <key>moduleName</key>
       <string>Computer Name</string>
       <key>modulePath</key>
       <string>/System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resoures/Computer Name.saver</string>
</dict>
</plist>

This changes the default screen saver to the Computer Name module, sets it to activate after 10 minutes, requires a password, and sets both bottom corners to “activate now” hot corners.

To prevent our users from changing this default screen saver, we changed the ownership and privileges on the ScreenSaver.prefPane in /System/Library/PreferencePanes/ as follows:
       drwxr-x--- 3 root admin 102 Jul 27 2002 ScreenSaver.prefPane

This prevents non-admin users from using this prefs pane; and therefore they cannot change the screensaver settings.

Posted: Tue - November 18, 2003 at 09:39 PM      


©