Can I Change the Speed of Slideshows in OS X?

7

3

Is there any way I can change the rate in which OS X progresses through images in a slideshow, particularly in Preview?

Orion751

Posted 2010-08-13T14:36:31.063

Reputation: 294

Answers

1

I was able to get this solution to work on Lion (10.8) - here's how you can do it if you install PList Edit Pro, plus the command line interface, via your command line

Bash$> sudo /usr/libexec/plistbuddy -c 'Set JustASlide:mainDuration 1' /System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions.plist

Note that you have to be a root account on your machine or use the sudo command

Bash$> /usr/libexec/plistbuddy -c 'Print JustASlide:mainDuration' /System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions.plist
1

sameers

Posted 2010-08-13T14:36:31.063

Reputation: 221

this is the only answer that actually works on OSX 10.13. thank you! – amdfan – 2018-03-25T22:30:25.270

1

[Update: I'm not entirely convinced that Preview is using the JustASlide slideshow settings. It might be using another preset, or something entirely unrelated. If I set the value lower, say to 1, it doesn't seem to move as quickly as I'd expect.]

I had this same question and couldn't find an obvious answer online. sameers' answer provided enough detail to find the path, and luckily there are built-in commands to edit plist files in OS X.

Using these steps, I was able to change Preview's slideshow delay from 3 seconds to 2 seconds. This should also work on 10.8, and any other version of OS X where this file is present, though I've only tested in 10.9.

A word of warning: the value we're changing is an integer value by default. Depending on how Preview interprets these values, you not be able to set partial seconds. I haven't tested this, and would advise caution. Nothing will explode, but you could potentially introduce bugs/crashes. If you decide to experiment, you should change the -int flag to -real.

Also, defaults is unusual in that it's designed to read a "domain" from OS X's property list heirarchy, but can also work with a file, as long as the full path is specified and the ".plist" is left off the end.

Here's the list of commands to run in Terminal:

# Define variable, to save typing:
plist=/System/Library/PrivateFrameworks/Slideshows.framework/Versions/A/Resources/Content/EffectDescriptions

# make a backup copy:
cp -iv $plist.plist $HOME/Desktop/

# confirm backup copy is valid: MD5 checksums should match for both files
md5 $plist.plist $HOME/Desktop/EffectDescriptions.plist

# Take a look at the data structure before changing, to compare afterward
defaults read $plist JustASlide

# Set new value for slideshow duration: (in this case, 2 seconds)
sudo defaults write $plist JustASlide -dict-add mainDuration -int 2

# Fix permissions: `defaults` recreates the file with 0600 permissions
sudo chmod -v 0644 $plist.plist

# Double check the edit was successful
defaults read $plist JustASlide

Now, launch Preview.app (quit it first if it's already running), and test to see the new slideshow settings in action!

tacocat

Posted 2010-08-13T14:36:31.063

Reputation: 19

I'd accept your answer if I had time to verify it as it does look promising, but I've been really busy preparing for school and switching to Linux. Thank you for your well-written reply. – Orion751 – 2014-07-19T22:26:33.207

Doesn't do anything for me on OS X 10.10.5. I chanegd duration to 10 seconds in the plist file but the slideshow still changes every 3 seconds. – shrx – 2017-06-24T12:07:10.337

This does not work on OSX 10.13 either. – amdfan – 2018-03-25T22:31:03.020

0

This isn't a real answer to your question, but it's a workaround I use for the same problem, and is easier to adjust on the fly than a p-list anyway if I want different delays.

Just select the files you want to slideshow in the finder, and then run this Applescipt:

    set delayTime to the text returned of (display dialog "Set Delay Time in Seconds:" default answer "10")

tell application "Finder"
    activate
    set theFiles to selection
    set filecount to the number of items in theFiles
end tell
tell application "System Events"
    key code 49 -- space
    keystroke "y" using {command down, option down}
    repeat (filecount - 1) times
        key code 124 -- right arrow Key
        delay delayTime
    end repeat
end tell

And it'll ask you how long of a delay you'd like, then it will slideshow the files with that delay. Best to run it from Applescript Editor, so you can stop the script if you want to stop the slideshow before it shows all the files, or else it's going to keep hitting the right arrow key at whatever delay you set once for each file you had selected and hadn't viewed yet. It's just using UI scripting for the slideshow and hitting the error key for you.

t.spoon

Posted 2010-08-13T14:36:31.063

Reputation: 9

-1

I was about to say no, but there's actually a way you can use Terminal to hack your system's settings for the default operating system image slideshow. :P

Here are two helpful links, the second one more in-depth: http://www.macosxhints.com/article.php?story=20050904053501814 http://www.macworld.com/article/49110/2006/01/sspanelset.html

Also, just a warning, these tutorials seem to be designed for Mac OS 10.4. I don't know if these work work on 10.5 or 10.6, but you can try it, it will hopefully be the same feature.

Nick McCurdy

Posted 2010-08-13T14:36:31.063

Reputation: 420

Thank you, but this does not solve my problem. I would like to be able to control the rate in which the slideshow changes images, not how long it takes for the control panel to disappear. Those links are what came up when I tried to google it. – Orion751 – 2010-08-13T19:11:34.000

Oh, sorry about that, I see. I don't know if it's possible without some other kind of hack, and I don't know if there's a hack for that. You could try another program like iPhoto or Picasa, they should have editable slideshow speeds. The standard slideshow in Finder and Preview is very simplistic. – Nick McCurdy – 2010-08-13T19:43:03.160