Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

Desktop Pictures don't rotate while screensaver is running

Ok... so I've been waiting, watching, and searching for a transparent screensaver that could work in Leopard for nearly 3 years. Well, I finally found one! The screensaver is called MBS Transparent Screensaver. Finally I'd get to see my wonderful desktop pictures and watch my email while the screen is locked!

Well, after finally getting this functionality, I've been disappointed by the realization that the desktop pictures do not rotate automatically while a screensaver is running.

Is there any way to force the desktop pictures to rotate as they do when the screensaver is not running? Possibly an undocumented setting somewhere? Or, is there any UNIX command that can cause the desktop to refresh to the next image in the rotation?

Any ideas or help would be appreciated.

24" iMac 2.8 C2E / 1TB / 4GB, Mac OS X (10.5.8)

Posted on Aug 11, 2009 9:31 PM

Reply
21 replies

Aug 12, 2009 12:23 AM in response to G J Piper

Have you tried this?

Go to System Preferences, Desktop and Screensaver.
Select Screensaver, then from the list of available screensavers, select Pictures -> Choose Folder.
Select the folder that contains your desktop pictures.
Click the "Show All" button to get back to the full set of System Preferences.
Go to Security -> General.
Check "Require password to wake this computer from sleep or screen saver".

Aug 12, 2009 8:48 AM in response to Dave Hamilton

This is a picture rotating screensaver, but it is not what I am looking for, for two reasons:

1) I have a dual monitor, and have 2 folders set up with identically named desktops cropped to each monitor's size. They rotate "in sync" with each other so I can have huge multi-monitor pictures that rotate on my desktop every 15 minutes. Using the Picture rotator screensaver will not allow me to sync the monitors to have the same picture like I can with the desktops. Here is a link showing how it looks for better reference: http://blog.panedia.com/2008/09/23/wallpaper-user-profile-greg-p

2) I have a transparent screensaver not only for viewing my desktop photos, but also for viewing my email or apps even with the screensaver locked.

Aug 12, 2009 10:51 AM in response to AJ

I'm not interested in a new screensaver. The transparent one I described in the first post is perfect. The operating system, however, does not rotate desktops while a screensaver is running. I'm looking for a way around this — to force the desktops to rotate like they usually do. (Not a screensaver that rotates pictures, but the actual desktop)

PS: The picture rotation screensavers built-in to OSX do not display pictures in order, but random pictures, so they would never match anyway. It also won't let you choose a different folder of pictures for the left and right monitor. Also, the pictures I have are named perfectly, and they do load in order as desktops. My problem is not the order of the pictures, nor that I need a different screensaver, because I don't. But, again... this is irrelevant to my original post. 🙂

Aug 12, 2009 12:21 PM in response to G J Piper

G J Piper wrote:
Ok... so I've been waiting, watching, and searching for a transparent screensaver that could work in Leopard for nearly 3 years. Well, I finally found one! The screensaver is called MBS Transparent Screensaver. Finally I'd get to see my wonderful desktop pictures and watch my email while the screen is locked!

Well, after finally getting this functionality, I've been disappointed by the realization that the desktop pictures do not rotate automatically while a screensaver is running.

Is there any way to force the desktop pictures to rotate as they do when the screensaver is not running? Possibly an undocumented setting somewhere? Or, is there any UNIX command that can cause the desktop to refresh to the next image in the rotation?


the only way to achieve this would be pretty hacky. you'll have to switch off the picture rotation in desktop background preferences and make an apple script that changes the background picture to a random one in a folder of your choice. then make a launch daemon to run this apple script periodically. do you REALLY want to go through this? I can supply the details if you wish.

Any ideas or help would be appreciated.

Aug 12, 2009 12:26 PM in response to V.K.

V.K. wrote:
the only way to achieve this would be pretty hacky. you'll have to switch off the picture rotation in desktop background preferences and make an apple script that changes the background picture to a random one in a folder of your choice. then make a launch daemon to run this apple script periodically. do you REALLY want to go through this? I can supply the details if you wish.




Yes. I'm up for it. Only, not a random picture, but rather "in order" alphabetically. Is this possible?

Aug 12, 2009 3:13 PM in response to G J Piper

ok, this took longer than I thought because it seems that scripting of desktop background is a bit buggy. anyway. paste the following into Script Editor and save it as a script somewhere.

<pre style="
font-family: Monaco, 'Courier New', Courier, monospace;
font-size: 10px;
margin: 0px;
padding: 5px;
border: 1px solid #000000;
width: 720px; height: 335px;
color: #000000;
background-color: #ADD8E6;
overflow: auto;"
title="this text can be pasted into the Script Editor">

delay 10
tell application "System Events"
--activate
-- SET DESKTOP TO SPECIFIC PICTURE
tell current desktop
--set picture rotation to 0
set curpic to picture

end tell

tell application "Finder"
set i to index of file curpic
set curfolder to container of file curpic
if i < (number of files in curfolder) then
set i to i + 1
else
set i to 1
end if
set newpic to item i of curfolder as alias



end tell
tell current desktop
set pictures folder to curfolder as alias
set picture rotation to 0
set picture to newpic
end tell
quit
end tell

</pre>

then download Lingon
http://sourceforge.net/projects/lingon/
and make a launch daemon that runs the following terminal command at an interval of your choice

osascript path/to/above/script

put the correct unix path in the above command.
save it and log out/in. the script will rotate the pictures consecutively at the period you specified in the launch daemon. you can change the folder with pictures as you normally would in desktop system preferences.

Message was edited by: V.K.

Aug 12, 2009 4:25 PM in response to V.K.

V.K. wrote:
then download Lingon
http://sourceforge.net/projects/lingon/
and make a launch daemon that runs the following terminal command at an interval of your choice

osascript path/to/above/script

put the correct unix path in the above command.
save it and log out/in. the script will rotate the pictures consecutively at the period you specified in the launch daemon. you can change the folder with pictures as you normally would in desktop system preferences.




This is what I'm talking about! 🙂 Thanks for your help!
I am a lot more familiar with cron than Launch Daemons... would I be able to just save it as a script and have cron run the osascript command every so often? And, if so, would I leave out the "delay 10" line?

Aug 12, 2009 4:36 PM in response to G J Piper

yes, a cron will be just fine. the "delay 10" line is from some troubleshooting. without it launchd barfs on login because it seems that the launch daemon (and hence the apple script) gets activated too early in the login sequence. at least that's what happened to me when i tested the script. so I put the delay there for safety. you can experiment with that delay and see if you can get rid of it at all.

Message was edited by: V.K.

Aug 12, 2009 4:52 PM in response to G J Piper

with 2 monitors the script should be altered but in its current form it should work on the primary monitor. make sure your desktop background preferences are set NOT to rotate before you run the script.

here is what the script should be with multiple monitors

<pre style="
font-family: Monaco, 'Courier New', Courier, monospace;
font-size: 10px;
margin: 0px;
padding: 5px;
border: 1px solid #000000;
width: 720px; height: 335px;
color: #000000;
background-color: #ADD8E6;
overflow: auto;"
title="this text can be pasted into the Script Editor">


tell application "System Events"
--activate
repeat with j from 1 to number of desktops
delay 2
tell desktop j
--set picture rotation to 0
set curpic to picture

end tell

tell application "Finder"
set i to index of file curpic
set curfolder to container of file curpic
if i < (number of files in curfolder) then
set i to i + 1
else
set i to 1
end if
set newpic to item i of curfolder as alias



end tell
tell desktop j
set pictures folder to curfolder as alias
set picture rotation to 0
set picture to newpic
end tell


end repeat
quit
end tell
</pre>

Message was edited by: V.K.

Aug 12, 2009 5:41 PM in response to V.K.

This code seems to run like yours, but can keep the pictures in sync even if one gets set inadvertently. Can you improve on it?

<pre>tell application "System Events"

tell desktop 1
set curpicA to picture
end tell

tell desktop 2
set curpicB to picture
end tell

tell application "Finder"
select window of desktop
set i to index of file curpicA

set curfolderA to container of file curpicA
set curfolderB to container of file curpicB
if i < (number of files in curfolderA) then
set i to i + 1
else
set i to 1
end if
set newpicA to item i of curfolderA as alias
set newpicB to item i of curfolderB as alias

end tell


tell desktop 1
set pictures folder to curfolderA as alias
set picture rotation to 0
set picture to newpicA
end tell

tell desktop 2
set pictures folder to curfolderB as alias
set picture rotation to 0
set picture to newpicB
end tell

quit
end tell</pre>

Message was edited by: G J Piper

Aug 12, 2009 6:48 PM in response to V.K.

The second script does indeed work, but if one of the desktops gets changed inadvertently, they get out of sync and stay out of sync from that point on. The one I posted above always picks the same numeric picture from each folder, so if something makes it go out of sync... it corrects itself.

I like your code better, but the "tell finder" part only needs to be run on the first monitor, then the second one can use the same picture number picking from its own folder.

Can you incorporate that into your code somehow? I like yours for its portability for sure. 🙂

Thanks for this help... its nice to get someone who knows what they are doing.

Desktop Pictures don't rotate while screensaver is running

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.