OughtoSave 1.0

For Mac OS X 10.4 (Tiger) only

By Richard Smith, http://www.drawingbusiness.com


OughtoSave.dmg.zip (130Kb)

What is it for?

Do you ever get so absorbed into your work that you forget to save your progress, sometimes for hours at a time? Although most OS X applications are very stable, crashes do happen from time to time, and lost work can be disastrous, especially if you are working to a tight deadline. OughtoSave is a simple AppleScript application that uses Growl to remind you to save your work every 15 minutes.

What is Growl?

Growl is a global notification system for Mac OS X. Any application can send a notification to Growl, which will display an attractive message on your screen. Growl is free and Open Source. You can find out more about Growl at http://growl.info


To install OughtoSave, drag the application to [home]/Library/Scripts/ (You are free to install OughtoSave wherever you choose, but the Scripts folder is recommended because it will be available from any application via the Scripts Menu in the menu bar).

Starting the Save Reminders

To launch OughtoSave, double-click the application from the Finder, or select it in the Script Menu pull down list (to enable the Scripts Menu, launch /Applications/AppleScript/AppleScript Utility and check the “Show Script Menu in menu bar” box).

The first time OughtoSave is run, it will ask you for permission to create a launchd configuration file (a property list called com.drawingbusiness.oughtosave.plist) in [home]/Library/LaunchAgents/ (if this folder doesn’t already exist, it will be created automatically). Click Create to continue, or Cancel to quit.

If the installation was successful, you will be asked if you want to start displaying Save Reminders. Click the Start button, or Cancel to quit. You should see a Growl notification that the Save Reminders have been activated. The first Save Reminder will be displayed 15 minutes later, and every 15 minutes after that, until you stop the notifications. Note that OughtoSave will quit after you click Start.

Stopping the Save Reminders

To stop the notifications, launch OughtoSave again and click the Stop button. The Save Reminders will be deactivated until you run OughtoSave again. Clicking Cancel will quit without deactivating the notifications.

How does it work?

OughtoSave uses the Growl notification system and launchd to generate the Save Reminders. Launchd is the scheduling system that Apple introduced in OS X 10.4 (Tiger). It replaces the traditional UNIX Cron tool (among others), and enables events to be run at set times or intervals.

OughtoSave uses a simple Perl script to generate a launchd configuration file (com.drawingbusiness.oughtosave.plist), then uses shell commands to tell launchd to load or unload this file when you start or stop the notifications. Launchd actually runs a small AppleScript application called growlSaveAlert.app, which is hidden away inside the OughtoSave package.

I choose this method because, although it makes the application package more complex, it uses far less system resources than an AppleScript that has to stay open to issue timed notifications. Launchd is always running, so there is almost no resource hit adding another event.


To remove OughtoSave, first make sure that the Save Reminders are deactivated: launch OughtoSave – click Stop if it is available, otherwise click Cancel.

Move the following files to the Trash:

  • OughtoSave application
  • [home]/Library/LaunchAgents/com.drawingbusiness.oughtoSave.plist

That’s it.


Currently there is no user friendly way to change the alert interval. I chose 15 minutes because that is about the most work I could suffer loosing, but a long enough interval that the reminders don’t become obtrusive. If you want to change the notification interval, you must open the application package and edit the growlInterval variable in OughtoSave.app/Contents/Resources/Scripts/Main.scpt. The value is the interval in minutes.

After editing this value, trash [home]/Library/LaunchAgents/com.drawingbusiness.oughtoSave.plist if it exists. Next time you run OughtoSave, it will create a new file using your custom interval.


If you have problems with the application, they can usually be solved by throwing away [home]/Library/LaunchAgents/com.drawingbusiness.oughtosave.plist. If you have a persistent problem, please send me an e-mail using the e-mail form on my web site.


This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.5 license.

You are free to copy, distribute, display, and perform the work under the following conditions:

  • Attribution – You must attribute the work in the manner specified by the author or licensor.
  • Non-commercial – You may not use this work for commercial purposes.
  • Share Alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one.

More information: http://creativecommons.org/licenses/by-nc-sa/2.5/


Thanks to John Gruber for AppleScript version detection and POSIX file path coercion, which I took from his CSS Syntax Checker for BBEdit Script (http://daringfireball.net/projects/csschecker/)

Thanks to the Growl Development Team for their excellent application.


This software is provided “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantibility and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

Comments are closed.