Skip to content
Mac OS X screensaver runs AppleScripts, other screensavers
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Scripts
Source
ReadMe.rtf
ScriptSaver.zip
screenshot.png

ReadMe.rtf

{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;\red5\green0\blue255;}
\margl1440\margr1440\vieww16720\viewh15020\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc

\f0\b\fs36 \cf0 ScriptSaver 3
\b0\fs24 \
\'a9 2010 Matthew M. Swann\cf2 \ul \ulc2 \
http://swannman.wordpress.com/projects/scriptsaver/\cf0 \ulnone \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \

\b What is ScriptSaver?
\b0 \
\
ScriptSaver is a Mac OS X screen saver which executes AppleScripts when it is activated and/or deactivated.  For example, ScriptSaver can pause iTunes when the screensaver is activated, then unpause it when you return to the computer.  It's limited only by what AppleScripts you write!\
\
Double-click on ScriptSaver.saver to install it. Alternatively, drag ScriptSaver.saver to the Screen Savers folder inside the Library folder in your home folder.\
\

\b Configuring ScriptSaver
\b0 \
\
Select ScriptSaver in the "Desktop & Screen Saver" preference pane in System Preferences and click the "Options\'85" button to display the ScriptSaver configuration sheet.\
\
To execute an AppleScript when the screensaver activates, click the button labeled "Choose" in the "Activation Script" section of the configuration sheet.  Select an AppleScript from the Open dialog that appears.  
\i Please note that your AppleScript must have the file extension .scpt or .applescript to be chosen in the open panel.  
\i0 This script will execute when the screensaver is activated.\
\
To execute an AppleScript when the screensaver deactivates, select a script in the "Deactivation Script" section of the configuration sheet.  This AppleScript will execute when the user moves the mouse or presses a key to cancel the screensaver.\
\
The "Screen Saver" section allows you to choose a screen saver to run after the activation AppleScript has been launched.  Screensavers installed in /System/Library/Screen Savers appear at the top of the list, followed by screensavers that exist in the current user's Library/Screen Savers folder.  ScriptSaver supports Quartz Composer (.qtz) and ScreenSaverView (.saver) screensavers.  If "None" is selected, the Desktop will be visible while the screensaver is active.\
\

\b Advanced Options
\b0 \
\
Scripts may be run 
\i synchronously
\i0  or 
\i asynchronously
\i0 .  Synchronous scripts don't allow the chosen screensaver to start until they have finished, while asynchronous scripts execute in the background while the screensaver is displayed.  Note that Mac OS X may kill asynchronous scripts when the screensaver is activating or deactivating \'97 these may not work as expected.\
\
If your AppleScript needs user input \'97 for example, if it displays an alert dialog \'97 it should be run synchronously.\
\
If the "Show desktop while synchronous scripts execute" checkbox is selected, ScriptSaver will show the Desktop while a synchronous activation or deactivation script is running.  This can be useful if your script displays messages or dialog boxes to the user.\
\

\b Example: Using the iTunes Visualizer as a screensaver
\b0 \
\
Set the Activation Script to ShowiTunesVisualizer.scpt and the Deactivation Script to HideiTunesVisualizer.scpt.  Uncheck both "Run asynchronously" checkboxes, and select "Show desktop while synchronous scripts execute".  Set the Screensaver to "None (show desktop)".\
\

\b Source Code
\b0 \
\
The source code to ScriptSaver is included in the "source.zip" file.  If you have questions or concerns, contact me at
\i  {\field{\*\fldinst{HYPERLINK "http://swannman@mac.com"}}{\fldrslt 
\i0 swannman@mac.com}}
\i0 .\
\

\b Known Issues
\b0 \
\
\'96 Some screensavers (e.g. Flurry) do not display correctly under ScriptSaver.\
\
\'96 Older versions of Mac OS X allowed the user to force a logout by killing the LoginWindow process.  This is no longer possible in 10.6.\
\
\'96 If the user deactivates the screensaver but enters the wrong password, the activation / deactivation scripts will be run again.  The activation script executes every time the screensaver starts over (e.g. after a failed password entry), and the deactivation script executes every time the user attempts to cancel the screensaver (e.g. by moving the mouse or pressing a key).  Keep this in mind when writing your AppleScripts.\
\

\b Changelog
\b0 \
\
1.0:	Initial release\
\
1.1:	Added "Opacity" slider\
\
2.0:	Rehashed configuration panel\
	Added support for running a screen saver inside ScriptSaver\
\
2.0.1:  Added a link to Frank Vogelskamp's excellent iTunes Screensaver script\
\
2.0.2:  Fixed Panther compatibility problem\
\
2.5:	Added support for running an AppleScript when ScriptSaver is deactivated\
	Added support for screensavers in the /System/Library/Screen Savers/ folder\
	Removed the Opacity slider.  It was a hack at best, and didn't work most of the time in Panther\
\
2.6:	Fixed the deactivation script.\
	I also re-investigated the Opacity option, and I can't make it work on Tiger.\
\
2.7:	Made scripts work again. \
\
2.8:	Universal binary!\
	Added support for screensavers that live in /Library/Screen Savers\
\
2.9:	Updated for Leopard compatibility\
	Added experimental support for synchronous activation events\
\
2.10:	Added support for .qtz screensavers\
	Removed the ability for ScriptSaver to be chosen as a screensaver from its own configuration panel\
\
2.11:   Recompiled a version for 64-bit Snow Leopard systems\
\
3.0:	Re-added support for showing the iTunes Visualizer instead of a screensaver\
	Changed the "None" screensaver option to show the desktop instead of blanking the screen\
	Added support for showing the desktop while synchronous scripts execute\
	Added support for synchronous deactivation scripts}
You can’t perform that action at this time.