Solved

apple script daily change desktop background

Posted on 2009-07-03
7
992 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Transaction Monitoring Vs. Real User Monitoring

Synthetic Transaction Monitoring Vs. Real User Monitoring: When To Use Each Approach? In this article, we will discuss two major monitoring approaches: Synthetic Transaction and Real User Monitoring.

 

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

What Is Transaction Monitoring and who needs it?

Synthetic Transaction Monitoring that you need for the day to day, which ensures your business website keeps running optimally, and that there is no downtime to impact your customer experience.

Question has a verified solution.

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

Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
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…
Simple Linear Regression

726 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