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

Create distributable slideshow screen savers System
I like to create slideshow screen savers, and I do so using OS X's .slideSaver package format. The advantage of using this format is that you can redistribute your slideshow among friends or family -- that's why I tried my hand at it. Now, making a screen saver is a bit less easy in 10.6 because you have to add the LANG.lproj folders, but here's the rundown for creating these packages.

To make a slideshow screen saver, you do not need a separate application to compile. All you need will be right here. (You might want Property List Editor from the XCode developer tools to build the .plist files, but you can use TextEdit to do that.)

First, create a folder in any convenient place. Title it the name of the screen saver (Car Pictures, for example) and press Return.

To understand the package contents, you must have three files in that folder: an Info.plist file to identify it, a version.plist file to identify the version, and a folder called Resources to hold the pictures. Start by opening the screen saver's folder, and create the Resources folder.

Now, it's time to create (in TextEdit or Property List Editor) the Info.plist file to identify your screen saver. Edit capitalized entries except for BNDL under CFBundlePackageType. If you do not have Plist Editor, you can put the following in a blank TextEdit file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleGetInfoString</key>
	<string>SOME CARS IN A CAR SHOW</string>
	<key>CFBundleIdentifier</key>
	<string>com.BIGAPPLEMACGEEK.screensaver.CARPICTURES
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>CARPICTURES</string>
	<key>CFBundlePackageType</key>
	<string>BNDL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.1</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.1</string>
</dict>
</plist>
Under CFBundleGetInfoString, write a description (for example, the company picnic of 2009 or something). Make up something unique for the capital bits of CFBundleIdentifier, and give your project a name under the CFBundleName key. Save this at the top level of the screen saver folder you created.

Next, create a version.plist file in the screen saver folder. This one has the following contents:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>BuildVersion</key>
	<string>400</string>
	<key>CFBundleShortVersionString</key>
	<string>1.1</string>
	<key>CFBundleVersion</key>
	<string>1.1</string>
	<key>ProjectName</key>
	<string>SlideShows</string>
	<key>SourceVersion</key>
	<string>90000</string>
</dict>
</plist>
Now navigate into the Resources folder in the screen saver's folder; your pictures go here. In the Info.plist file above, note the CFBundleName name you used (CARPICTURES in the example) and:
  1. Drag the pictures you want to use into the Resources folder; it seems to work best with JPG files.
  2. Rename each file with the CFBundleName name and a number (01, 02, 03, etc.) suffixed to determine order. In the example above, that would be CARPICTURES01.jpg, CARPICTURES02.jpg, etc. It is recommended that you use 001 when over a hundred pictures are to be used.
  3. Create a folder named English.lproj in Resources. Inside that folder, create an InfoPlist.strings file (it can be blank, if you like; info keys can be added and localized to French.lproj, Spanish.lproj, etc.)
Now, append .slideSaver to the screen saver folder you created. If a confirmation box appears, click Add to confirm. Your folder should now look like a document with a blue, swirling icon in the top half and a SAVER banner on the bottom. You can double-click it, put it in either the top-level or user-level Library » Screen Savers folder, and/or distribute it.

It's better to test it first for bugs before distributing. Make sure that clicking Options in System Preferences (below the preview) displays a sheet with standard options.

[robg adds: I haven't tested this one.]
    •    
  • Currently 1.85 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (13 votes cast)
 
[9,180 views]  

Create distributable slideshow screen savers | 11 comments | Create New Account
Click here to return to the 'Create distributable slideshow screen savers' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Create distributable slideshow screen savers
Authored by: llee on Jan 26, '10 10:34:10AM

Here's one that's related. In 10.5 or 10.6 just open a folder full of pictures, press ⌘-a, then ⌥⌘-y. I'm sure that's in a hint somewhere, but here it is, anyway.



[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: asmeurer on Jan 26, '10 12:09:14PM

This hint is about making Screen Savers. If you just want to make a quick slide show, then that is the best way to go.



[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: asmeurer on Jan 26, '10 12:16:24PM

There is probably a program out there that does this for you.

On the other hand, what is wrong with the built-in slideshow screen saver, which takes an arbitrary folder?



[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: PatrickS on Feb 13, '10 04:09:24AM
Try slideSaver Maker, does the job quite well. And it seems that you don't need to add the individual filenames either.

[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: renaultssoftware on May 30, '10 04:18:07AM

I said, the thing was "redistributable" so if it was the family reunion or something, you could give it to your Mac-using family.

---
http://groups.google.com/group/applescripters/
http://qgf.in/
http://www.kompilesoft.info/



[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: rgray on Jan 26, '10 01:24:03PM
"It is recommended that you use 001 when over a hundred pictures are to be used."

Actually you will need three places, ie. 001, when you have over 99...

[ Reply to This | # ]

Create distributable slideshow screen savers
Authored by: renaultssoftware on May 30, '10 04:10:52AM

Thanks, I missed that. Or "100+"

---
http://groups.google.com/group/applescripters/
http://qgf.in/
http://www.kompilesoft.info/



[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: 34fail on Jan 26, '10 10:08:12PM
This is brilliant. I've been wondering if this was possible somehow, thanks. A couple of minor things I noticed:
  1. The <string> tag on line 10 of Info.plist need to be closed with a </string>.
  2. For me, the 3 files needed to be enclosed in a Content folder.
  3. The photos can be named anything if you don't care about the order in which they are displayed. This is handy because it means I don't to rename anything :)


[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: renaultssoftware on May 30, '10 04:13:00AM

Just wondering… does anyone want to work on an Objective-C command line tool to do this? I think this would be doable.

---
http://groups.google.com/group/applescripters/
http://qgf.in/
http://www.kompilesoft.info/



[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: jermsmingy on Jun 16, '10 04:58:34PM

I get an error Could not install (null) screensaver. Any ideas?



[ Reply to This | # ]
Create distributable slideshow screen savers
Authored by: jermsmingy on Jun 17, '10 10:16:49AM

Nevermind, I just copied one of the apple screen savers and changed the name and contents of the resource file. Everything worked perfectly then. It also works in any language. I did have the change the bundle name in the infoplist.strings file inside the english.lprog folder.



[ Reply to This | # ]