Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Change screensaver slide duration System 10.8
I like to use images of various quotes as my screensaver, but the default 3-second duration for each slide isn't enough for several of the quotes. After discovering that Apple, amazingly, no longer provides a built-in way to alter the duration of each slide, I set out to figure out how to change it to suit my preference. It works, but it's a bit of a pain, so if anyone knows of an easier method, please contribute.

I found the method on this page from CNET, the author of which apparently found it here. In 10.8, no matter how I tried altering the permissions of the relevant file and folder in the Finder or "unlocking" the file (as XCode refers to it), I could not get XCode (or TextWrangler) to write to the file, so I had to alter the CNET instructions a bit. (Side rant: I feel justified in refusing to resort to the terminal for a simple permissions change, a capability that has supposedly existed in the Finder for 9 major iterations of OS X.) Do the following:

  1. Navigate to this folder in the Finder and find the file called "EffectDescriptions.plist":
    /System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/
  2. Option-drag the file to create a duplicate copy and rename it "EffectDescriptions.original.plist" (just in case). Authenticate when asked.
  3. Drag "EffectDescriptions.plist" to the desktop (it will copy).
  4. Open the desktop copy in XCode, TextWrangler, or your preferred text editor.
  5. Hit Command-F to search for the entry called "JustASlide" (this works in XCode and TextWrangler).
  6. Find the sub-entry called "mainDuration." Change its numerical value from 3 to whatever value you prefer (in seconds).
  7. Save the file, close it, and drag it back into the folder you copied it from. It will ask you to authenticate, and then whether to replace the file. Do both. (You did do step 2, right?)
  8. In Terminal, type:
    sudo chown root /System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions.plist
    This will set the permissions of the file as they were before.
  9. Go to System Preferences and confirm with a slideshow preview that your change was effective.

As I said earlier, this is an ugly way to accomplish what should be a very simple preference setting, so if anyone knows of a more elegant solution, please share. I toyed with the idea of having a separate screensaver file in my own Library folder, but I wasn't able to determine whether that would work. Given that we're altering this setting in a private framework, it seems to me that it wouldn't.

    •    
  • Currently 2.40 / 5
  You rated: 1 / 5 (10 votes cast)
 
[6,836 views]  

Change screensaver slide duration | 4 comments | Create New Account
Click here to return to the 'Change screensaver slide duration' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Terrible visual anomalies
Authored by: lullabud on Feb 18, '13 10:39:41AM
In my testing this technique left terrible visual anomalies in the screensaver display. Even so, here's a quicker way to make the change, in this case from 3 to 1:

sudo plutil -convert xml1 "/System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions.plist"
sudo sed -i '.bak' '/MainDuration/N ; s/3/1/;'  "/System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions.plist"
sudo plutil -convert binary1 /System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions.plist


[ Reply to This | # ]
Change screensaver slide duration
Authored by: paulbloch on Feb 18, '13 01:09:35PM

Or do it in one command:

sudo /usr/libexec/PlistBuddy -c "set ':JustASlide:mainDuration' 10" /System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions.plist

That changes it to 10 seconds. You can check your results with:

sudo /usr/libexec/PlistBuddy -c "print ':JustASlide:mainDuration'" /System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions.plist



[ Reply to This | # ]
Change screensaver slide duration
Authored by: tedw on Feb 26, '13 07:15:59AM
Copy the screen saver bundle to the Screen Savers folder of the user library (~/Library/Screen Savers). The local copy will show up in System Preferences (excluding the system folder copy), and the Screen Saver Options button will become enabled, allowing you to change the options without editing the file.

[ Reply to This | # ]
Change screensaver slide duration
Authored by: tedw on Feb 26, '13 07:57:23AM

Seems I spoke to quickly. Ignore the previous; I'll look into it further.



[ Reply to This | # ]