Modify some slideshow panel settings

If you’ve enjoyed slideshows in iPhoto or iMovie, you’ll be happy to hear that with the release of OS X 10.4, Apple included a new system-wide slideshow feature. In many places, including the Finder and Preview, you can view full-screen slideshows, complete with a translucent control bar floating below the images (see screenshot below). This is really handy, for instance, if you need to find a particular picture in a large folder of images. Select all the images in the Finder, control-click on the selection, and choose Slideshow from the pop-up menu. One by one the photos will fill your screen.

This is a welcome feature, but you’ll find that the controller’s functionality sometimes seems to be far from perfect. It’s often at exactly the wrong spot on the screen, covering a key figure in your chart, for instance. Or maybe you don’t like how long it remains onscreen, or you’d like it to fade away faster (or slower). Thankfully, there are solutions to these issues.

Before we begin, here’s a quick look at the controller. (The one obvious feature that should be there, a Delete button, is missing. Unfortunately, today’s hint won’t solve that problem; only Apple can.)


Position the Controller

Changing the position of the controller is easy if not obvious. To move it, click and hold on a non-button area of the controller—the thin vertical divider lines, for instance—and then just drag to reposition. If you have two monitors, you can even drag the controller onto the other screen, leaving the slideshow screen free of anything other than the image itself.

Control the Controller

Unfortunately, modifying the behavior of the panel is a bit trickier, and will require some editing of a text file in Terminal (it is Geeky Friday after all). By doing so, though, you’ll be able to customize several aspects of the controller’s behavior:

  • The amount of time before the controller starts fading out after it’s been used (defaults to five seconds)
  • The amount of time before the controller starts fading out after moving the mouse off the panel (defaults to three seconds)
  • How long it takes the controller to fade into the background (defaults to 0.8 seconds)

To begin, launch Terminal, which you’ll find in the /Applications/Utilities folder. At the prompt, copy and paste in the following text to switch to the proper directory. When you’re done, press Return:

cd /System/Library/PrivateFrameworks/Slideshow.framework/Versions/A/Resources/

Now type this command to create a backup of the configuration file that controls the slideshow—you’ll be able to revert to the saved copy if something goes wrong with your edit (though that’s highly unlikely). Again, press Return after pasting the command:

sudo cp SlideshowConfig.data SlideshowConfig.backup

You’ll be prompted for your administrator password. Enter it and press Return to create the copy. You can verify the backup worked by typing ls SlideshowConf* and pressing Return. You should see a listing showing two files, the original and your backup. Once you have the backup in place, type this command to edit the file, and press Return:

sudo nano SlideshowConfig.data

This will launch the nano text editor (feel free to use vi or other editor of your choice, of course), and open the data file for editing. You won’t need to re-enter your admin password unless more than five minutes have passed since you ran the copy operation. When the editor opens, your screen should look like this:


The section of this file we need to modify is near the bottom. Press Control-W (for Where Is). You’ll see a Search prompt at the bottom of the screen, right above the listing of keyboard shortcuts. Type PanelTiming, and press Return. The editor will jump nearly to the bottom of the file, showing this section of code:

	<key>PanelTiming</key>

<dict>
<key>fadingTime</key>
<real>0.80000000000000004</real>
<key>longDelay</key>
<real>5</real>
<key>shortDelay</key>
<real>3</real>
</dict>
These are the three variables that control the timing of the slideshow controller. The value for each variable appears on the line underneath each variable’s name. Here’s what each variable controls:

  • fadingTime controls how long it takes the controller to fade from visible to invisible—set it to 0 to make the panel instantly vanish; set it to 5 to enjoy a drawn out fade away effect. I shortened the delay slightly, settling on 0.5 as a good balance between speed and visual effect.
  • longDelay controls how long the controller stays visible after it’s been used in some way. I found I much prefer it when the panel gets out of my way quickly, so I set this to 2.5.
  • shortDelay controls how long the controller stays visible after you’ve moved your mouse off of it. Once I’ve moved my mouse away, I don’t need to see the controller for long at all, so I set this one to 1.0.

Make changes in nano as you would in any normal word processor—except you move between lines using the arrow keys, not the mouse. Once you’re on a line you want to change, you can use Delete to remove the existing characters (to the left of the cursor) and then just type in your new values. After you’ve made all your changes, hit Control-O (Write Out), then just press Return when prompted for a filename to save the file. Then hit Control-X to exit.

You don’t need to restart anything to see the effect of your changes; they’re active immediately. Switch back to the Finder and whip up a new slideshow—if all went well, your new timings should be active. If this doesn’t work for some reason, switch back to Terminal and re-edit the file, making sure you haven’t introduced any unwanted characters. If all else fails, you can remove your modified file and replace it with the backup, using these two commands:

	sudo rm SlideshowConfig.data

sudo cp SlideShowConfig.backup SlideShowConfig.data

You can then re-edit the new data file, and you’ll still have a backup, since the second command above copied the existing backup file.

Subscribe to the Best of Macworld Newsletter

Comments