Solved

apple script daily change desktop background

Posted on 2009-07-03
7
991 Views
Last Modified: 2012-06-27
I am looking to have the following...

*Applescript change my desktop background

*Have the change done daily (per week)

I tend to look at my screens too long sometimes.

I would just have 7 colors jpgs for the script to run from.


I am not a Apple Script guy... just php.

So I am looking at ways to do this automated on startup.


Thanks!
0
Comment
Question by:seaword
  • 4
  • 3
7 Comments
 
LVL 5

Expert Comment

by:AGoodKeenMan
ID: 24776392
In leopard this is available in System Preferences -> Desktop, however I suspect it is not in Tiger, so try the following script. Copy and paste the text below into "Applescript Editor", change the pathToImages variable to where ever your folder of images is and save the script where ever you like. Then in iCal setup a new event and set the alarm to run this script once a day.
-- Applescript to randomly change Desktop picture
-- Note does not check if file is an image
 
set pathToImages to "Library:Desktop Pictures:Nature"
 
tell application "Finder"
	if folder pathToImages of startup disk exists then
		try
			set desktop picture to some file in folder pathToImages of startup disk
		on error
			return 0
		end try
	end if
end tell

Open in new window

0
 

Author Comment

by:seaword
ID: 24776917
Thanks, i just want to keep it all in action script though....

I use a different day management software for my work.


I was hoping that you might know of an " IF THEN" statement for applescript.

That way the script could just check the OS date and time.

SO I would have conditionals for the time and days.

That way I could edit the file myself.


0
 
LVL 5

Expert Comment

by:AGoodKeenMan
ID: 24778101
Having an applescript looping all day is not an ideal solution. With ical you can schedule the script to run at a certain time of the day and repeat when ever and as often as you like.
Another idea might be to run the shell script below from a cron job.
You can read more about setting up a cron job here:
http://www.macosxhints.com/article.php?story=2001020700163714
#!/bin/sh -
#
# cron job to run applescript
 
osascript /path/to/script

Open in new window

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:seaword
ID: 24778125
The script would only be run once at startup.

i guess a cron job would work as well...


can you give an example of how I could do an IF THEN conditional in applescript?
0
 
LVL 5

Expert Comment

by:AGoodKeenMan
ID: 24778511
I should have thought of this earlier, you can run a script at login. Just add the script below to the login items for your user account.

You can edit theHours and theMinutes variables to suit your timing requirements. (currently set to 1:30am)


-- Applescript to randomly change Desktop image once a day
-- Does not check if file is an image
 
property lastTimeRun : ""
set pathToImages to "Library:Desktop Pictures:Nature"
set theHours to 1 -- must be less then 24
set theMinutes to 30 -- must be less than 60
 
tell application "Finder"
	set theDate to current date
	
	-- Check if the script has already been run today
	set today to date string of theDate
	if lastTimeRun is not today then
		
		--Check to see if it is time to run the script today
		set currentHours to (hours of (theDate))
		set currentMinutes to (minutes of (theDate))
		if (currentMinutes e theMinutes) and (currentHours e theHours) then
			set lastTimeRun to today
			if folder pathToImages of startup disk exists then
				try
					set desktop picture to some file in folder pathToImages of startup disk
				on error
					return 0
				end try
			end if
		end if
	end if
end tell

Open in new window

0
 
LVL 5

Accepted Solution

by:
AGoodKeenMan earned 500 total points
ID: 24778515
It looks like line 19 has some encoding problems, replace it with the one below (hopefully).
if (currentMinutes >= theMinutes) and (currentHours >= theHours) then

Open in new window

0
 

Author Closing Comment

by:seaword
ID: 31599715
Thank you for taking time to help me.

I actually looked into 10.5.6 and the improvements they made to scripting.

The bridge (python / C / JS / ruby) is huge.

Thank again.  
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
groupSumClump challenge 9 138
MacOS and programming in React 7 47
Help Required 2 46
How to share My.Settings in multiple application instances ? 7 52
This is an explanation of a simple data model to help parse a JSON feed
Displaying an arrayList in a listView using the default adapter is rarely the best solution. To get full control of your display data, and to be able to refresh it after editing, requires the use of a custom adapter.
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question