A simple Macintosh screen saver.
Version 1.5 - Release Notes
© 1996-1999 Ken McLeod (thecloud@apple.com)
All rights reserved.
________________________________________________________________
Legal stuff
Permission is hereby granted to use and redistribute this software at no charge, provided that the software is only distributed in its original unmodified format, accompanied by this documentation.
THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THE COPYRIGHT HOLDER SHALL NOT BE HELD LIABLE FOR ANY DAMAGES WHATSOEVER ARISING FROM THE USE OF, MISUSE OF, OR INABILITY TO USE THIS SOFTWARE.
________________________________________________________________
Why another screen saver?
I wrote BlackWatch because none of the screen savers which were available at the time did just what I wanted. Feature-packed screen savers tend to want plenty of RAM, CPU cycles, and disk space, and they patch a lot of operating system routines in order to work. On the other end, bare-bones screen savers don't provide the ability to securely lock your screen with password protection. Also, most screen savers of both types are implemented as system extensions, so you have to reboot your machine to run them or to get rid of them. That isn't optimal if you want to install a screen saver on a networked Macintosh which is busy acting as a server. BlackWatch solves these problems. It's small, quick, simple, compatible, and it's free.
________________________________________________________________
What are its features?
* Small disk footprint and low RAM overhead
* Optionally displays a moving clock of your choice
* Runs as a standard process; no system-level trap patching,
video buffer tricks or other compatibility hazards
* Doesn't require a reboot to install or deinstall
* Runs on 68K machines as well as the latest Power Macs
* Mac OS 9.0 compatible
* Appearance Manager and Keychain Manager savvy
* Uses as few processor cycles as possible; doesn't
interfere with or slow down other processes when active
* Supports multiple monitors correctly
* Supports a "white screen" option for use
with active matrix LCD displays
* Supports the standard SAVR/SAVC Gestalt selectors
used by "screen saver aware" applications
* Provides password protection which can't be bypassed
without restarting the machine
________________________________________________________________
System requirements
BlackWatch currently requires a Macintosh (or compatible) computer with Color QuickDraw. This means that it won't work on a Macintosh Plus or SE, but it will run on the SE/30 and later machines.
System 7.0 or later is required.
BlackWatch will run in as little as 64K of RAM (a 128K partition is recommended).
________________________________________________________________
How to use it
BlackWatch is a standard Macintosh application. Just double-click to run it, then leave it running in the background while you work on other things.
You will probably want to put the BlackWatch application (or an alias to it) in the Startup Items folder. This will cause BlackWatch to run automatically whenever you restart your computer. If you are running Mac OS 8.0 or later, you can simply drag BlackWatch onto the System Folder icon, and it will automatically be put into the Startup Items folder for you. An option in the Preferences dialog lets you choose whether the Finder is brought to the front after BlackWatch launches.
After 5 minutes of inactivity (or whatever idle interval you specify), BlackWatch will fade the screen and optionally display a simple clock to provide visual feedback that the computer is on and not frozen. The clock is redisplayed at a random location every 5 seconds (or another movement interval you specify.) Moving the mouse, inserting a disk, or typing any key will restore the screen. If you don't want the screen saver waking up each time your mouse gets bumped slightly, another Preferences option lets you tell BlackWatch to wake up only when the mouse is clicked.
You can fade the screen immediately by moving the mouse into one corner of your main screen, or prevent the screen from fading by placing the mouse in another corner. The Preferences dialog lets you specify which corners to use (or whether to use special corners at all.)
If you have an active matrix LCD screen, you may want to select the "Use white background" option.
For security, you can specify a password (up to 255 characters in length) that will be required to unlock your screen. On PowerPC-based machines with the Keychain Manager (Mac OS 9.0 or later), you can alternately choose to unlock your keychain instead of entering the BlackWatch password.
When a password is set and BlackWatch is activated, the debugger and force-quit entry points are temporarily disabled to prevent unauthorized access. This level of security lets you walk away from your desk knowing that an intruder would need to reboot your machine in order to gain access to your files, and therefore would not be able to view or use applications and services you may currently be logged into, such as file servers, databases, or personal e-mail. BlackWatch does NOT prevent someone from restarting your machine; it simply provides a deterrent to casual snooping while you're away from your desk.
________________________________________________________________
How to change settings
Select the "Preferences..." item in the Edit menu to bring up the Preferences dialog. The On and Off radio buttons control whether automatic screen saving is enabled or disabled. You can select different categories of settings from the pop-up menu at the top of this dialog. Each category and its available options are described below:
Sleeping
* Idle interval
Specify the time, in minutes, after which BlackWatch
should automatically fade the screen if there has been
no user activity.
* Special corners
These options appear as miniature screen icons, with
a dark triangle indicating the currently selected corner.
To select a different corner, simply click in that
corner of the icon. Note that the "Sleep Now"
and "Never Sleep" corners can't be the same;
if your choice conflicts with the other corner, an
adjacent corner is automatically selected. When the
mouse is placed in the designated "Sleep Now"
corner on your main monitor (and remains there for
at least 1 second), BlackWatch will activate and go
to sleep. If the mouse is placed in the "Never
Sleep" corner and remains there, Black Watch will
never go to sleep.
Special corners are ignored if the "Special Corners" checkbox is not checked.
Display
* Draw clock
If this box is checked, BlackWatch draws a clock (of
the style selected in the adjacent Style pop-up menu)
when sleeping. Otherwise, it will simply fade the screen
to black. BlackWatch will attempt to use the "gamma
fade" technique to dim the screen, if the monitor
supports it and no password is required to wake up.
You can choose whether the clock's second hand is displayed, and whether to draw graduations (tick marks) on the clock's dial. Other options are available, depending on the particular clock style that you select.
* Size
This sliding control lets you adjust the size of the
clock. Move the slider to the right to make the clock
larger.
* Movement
This sliding control lets you adjust how often the clock
is repositioned on the screen.
Security
* Require password to unlock screen
If this box is checked and a password has been specified,
you will need to type that password to unlock the screen
after sleeping. Checking this box will initially have
no effect until you set a password. Click the "Set
Password..." button to specify your password,
or to change the existing password. Your password is
remembered if you uncheck the box, so you don't have
to re-specify it later. To clear the password entirely,
you can simply set a blank password, or throw away
the BlackWatch Preferences file (located in the Preferences
folder in the System Folder).
* Unlock keychain to unlock screen (PowerPC and Mac
OS 9.0 or later only)
If this box is checked, you will need to type in your
keychain password (instead of the BlackWatch password)
to unlock the screen after sleeping. You may want to
use this option if you don't want to use (or remember)
a separate password for BlackWatch.
* Lock keychain when going to sleep (PowerPC and Mac
OS 9.0 or later only)
If this box is checked, all unlocked keychains will
be automatically locked when sleeping.
Options
* Dismiss alerts automatically
If this box is checked, BlackWatch will attempt to dismiss
any alerts which come up in the frontmost layer while
the screen is being saved. Typical examples are notification
alerts which tell you that a file server has shut down,
or you've dropped a modem connection. When BlackWatch
detects an alert window being updated, it will simulate
pressing the Return key to close the alert. Uncheck
this box if you would rather not miss any alerts.
* Wake up if mouse moves
If this box is checked, BlackWatch will wake up when
you move the mouse (or click the mouse, hit a key,
or insert a disk.) Unchecking the box causes BlackWatch
to ignore mouse movement; all other events will still
wake the screen saver. You might want to uncheck this
box if you find yourself manually activating BlackWatch
and then accidentally waking up the screen saver by
jostling the mouse, and that sort of thing bothers
you.
* Use white background
If this box is checked, the screen will be cleared to
white instead of black. This option is useful if your
Macintosh has an active matrix LCD screen, where setting
a pixel to white turns it off and conserves power.
(Refer to the following articles in the Apple Tech
Info Library for more details on this subject.)
http://til.info.apple.com/techinfo.nsf/artnum/n12958
http://til.info.apple.com/techinfo.nsf/artnum/n10639
* Enable Command-Q
If this box is checked, the command-key equivalent for
the Quit menu item is enabled. You might want to uncheck
this box if you find yourself accidentally quitting
BlackWatch instead of the application you really wanted
to quit.
* Bring Finder to front at startup
If this box is checked, BlackWatch will put itself into
the background and make the Finder the active application
when it is launched. This option helps make BlackWatch
a little less obtrusive, while still keeping it readily
available from the process menu.
* Sleep immediately at startup
If this box is checked, BlackWatch will immediately
go to sleep when it is launched. By selecting this
option and requiring a password to wake up, you can
lock your Mac's screen by double-clicking BlackWatch.
________________________________________________________________
Why is it an application instead of an extension?
Two reasons. The first reason is simplicity. Applications are visible in the process menu when they're running, and they have a "Quit" menu item to make them go away cleanly. If this were implemented as a system extension or "background-only" app, the expectation that you would need to reboot your machine to run it or get rid of it is automatically set, even if that isn't technically required. It would require a separate application or control panel to launch or quit the background process and to change preference settings, causing potential confusion: the program could still be running in memory even after quitting its user interface component.
Second reason: compatibility. Background-only processes are not supposed to own windows or do any drawing. It's technically possible to use the Text Services Manager to create a window and get around this restriction, but event handling becomes much more complex, with increased compatibility risks. It's also possible to have the background-only process launch a separate foreground process when it's time to sleep, an approach which seems unnecessarily CPU-intensive and prone to failure in low-memory situations.
________________________________________________________________
Where are the clock pictures stored? I want to display my own picture instead.
Sorry, this version doesn't use pictures or bitmaps. Individual clock components are drawn as needed using QuickDraw primitives, which requires less memory and helps to make things fast. A future version of BlackWatch may include the ability to specify a PICT and/or custom text message to display, instead of the predefined clocks.
________________________________________________________________
Troubleshooting
This software has been tested in daily use on many different machines for over two years. No software is perfect, however. If you encounter a problem, here are some things to try:
- Increase the memory partition. (This is done by selecting the BlackWatch application icon in the Finder, choosing "Get Info" from the File menu, and changing the values in the "Memory Requirements" box.) The default minimum size works well under almost all conditions; however, it doesn't leave much free space, and certain system calls occasionally require more memory. Try setting the preferred size to 128K (or more). This usually eliminates any problems caused by a shortage of memory.
- Throw away the "BlackWatch Preferences" file, located in the Preferences folder inside the System Folder. Note that this file contains all the settings you specify in the Preferences dialog, including your password. In the unlikely event that this file has become corrupted, removing it will cause BlackWatch to automatically create a new one, and restore all settings to defaults.
________________________________________________________________
Compatibility issues
Energy Saver
If you use the "Scheduled Shutdown" feature
of the Energy Saver control panel, you may have noticed
that Energy Saver displays an alert when the system
is about to shut down. The default button in this alert
tells Energy Saver to wait 5 minutes before shutting
down. When BlackWatch's automatic alert dismissal feature
is active, it presses this button each time and system
shutdown is thus postponed indefinitely. To avoid this
situation, make sure to uncheck the "Dismiss alerts
automatically" option in the Preferences dialog
if you plan to use Energy Saver to shut down your machine.
Retrospect, and other applications launched while BlackWatch
is sleeping
If you use Retrospect (by Dantz Development) and want
to script an unattended backup operation, there is
one important workaround to note when using BlackWatch.
You will need to leave the Retrospect application running
(it must already be running before BlackWatch goes
to sleep.) If your scheduled backup is to occur more
than once, you will also need to ensure that Retrospect
doesn't quit after running a script. Retrospect's Preferences
panel has an option (in "Unattended Options")
to "Stay in Retrospect" when a script completes
execution.
Keeping the application running is necessary because it can't be launched while BlackWatch is sleeping. The Finder will defer launching a foreground application whenever certain kinds of windows (including the one that BlackWatch displays when sleeping) are in the frontmost layer. Generally this behavior is a good thing, since you don't want other windows unexpectedly popping up in front of BlackWatch's window when the screen is being saved. However, it's a problem if you are running server software applications that want to launch themselves automatically into the foreground. This problem does not affect Retrospect Remote, since it isn't an application. It also does not affect processes which are launched into the background.
Applications which use floating palette windows
Several applications (I'm told these include ICQ and
OneClick) may display floating windows which do not
go away when BlackWatch goes to sleep. As a point of
comparison, the Control Strip is a floating window
which does hide itself once the menu bar is hidden.
I'm continuing to investigate these issues, and hope to resolve them in a future version.
________________________________________________________________
Change history
* What's new in 1.5 (9/11/99)
- Improved password security; passwords can now be up
to 255 characters in length, instead of 15.
- Added Keychain support (available on PowerPC machines
running Mac OS 9.0 or later). You can choose to lock
your keychain automatically when going to sleep, and
to unlock your keychain in order to wake up (instead
of entering your BlackWatch password.)
- Fixed a crash when displaying dialog boxes on Mac
OS 9.0. (My 'dlgx' resources incorrectly specified
some bits which were reserved, and which are now used
by Appearance in 9.0.)
- BlackWatch should now quit gracefully, instead of
crashing with an "unimplemented trap" error,
if you attempt to run it on a "classic" Macintosh
model without Color QuickDraw.
- Fixed a bug where the first movement of the clock
on the screen could occur after a much shorter time
interval than specified.
- Fixed a bug where the clock wasn't refreshed right
away after dismissing a dialog on top of it.
- The special corners for "sleep now" and
"never sleep" are now optional and can be
turned off.
- The command-key equivalent for the Quit menu item
is now optional and can be turned off.
- BlackWatch now performs a "gamma fade" to
dim the screen, without attempting to bring itself
to the front or displaying a window, if the monitor
supports gamma fading and nothing needs to be drawn
(i.e. both the "Draw clock" and "Require
password..." options are turned off.)
* What was new in 1.4.1 (1/28/99)
- Fixed several bugs which could cause a crash when
opening the Preferences dialog. The crash occurred
on machines running Kaleidoscope without Appearance
Manager, and on machines with 32-bit dirty ROMs (such
as the SE/30.)
- Clocks are now drawn correctly on 1-bit (black &
white) displays.
- The Appearance Manager is no longer required to set
the clock size.
- Added the ability to adjust the rate at which the
clock is repositioned.
- Added a "white background" option for active-matrix
LCDs.
- Added new iMac "flavors" to the Apple Logo
style.
* What was new in 1.4 (12/12/98)
- Redesigned the Preferences dialog to be less cluttered
(and leave room for future expansion...)
- You can now increase the size of the clock, up to
4 times the "normal" size. (Note: this option
is only available if the Appearance Manager is present,
since it relies on a control definition provided by
Appearance.)
- Fixed a long-standing bug where BlackWatch would go
to sleep at the scheduled idle interval in spite of
typing activity in threaded applications, if keystrokes
were the only activity during the interval.
- Fixed a bug which could cause a crash if you tried
to force-quit BlackWatch by pressing option-command-escape.
- Fixed a bug which prevented Gestalt 'SAVC' screen
saver commands from working correctly. (For programmers,
the "TestGestalt" tool is included to demonstrate
programmatic control of BlackWatch and other screen
savers which support this standard.)
- Fixed a bug introduced in 1.3 which prevented BlackWatch
from recognizing changes in screen resolution (the
"Display Manager aware" flag somehow got
turned off when I updated my development environment.)
- Fixed a bug where the Apple logo wasn't drawn properly
if you removed Apple's Helvetica font, or replaced
it with Adobe's version (which has different metrics.)
* What was new in 1.3 (9/21/98)
- Added a Y2K (Year 2000) countdown timer.
- Added a "Sleep immediately at startup" option,
after multiple requests for this feature.
- Added a "Bondi blue" option to the "Apple
Logo" style, for style-conscious iMac owners.
- BlackWatch will now wake up from sleep if a modifier
key (shift, option, command, or control) is pressed.
- Fixed a bug which caused a crash when the Preferences
dialog was opened under Mac OS 8.5.
- Fixed a bug which caused a crash if you turned "Draw
Clock" off, then clicked "Cancel" in
the password dialog when waking up from sleep.
- Fixed a bug where BlackWatch would occasionally go
to sleep while the mouse was moving, or during typing.
- Fixed a bug where BlackWatch would always go to sleep
if the mouse entered the Sleep Now corner and was not
moving 1 second later, regardless of whether it actually
remained in the corner for 1 second.
- Fixed a bug where moving the mouse into the "Sleep
Now" corner would do nothing if BlackWatch was
in front.
- Fixed a bug which caused a 32-byte memory leak every
time the password dialog was displayed.
* What was new in 1.2 (2/15/98)
- Added a digital clock option to the QuickTime logo.
- Checkboxes in the Preferences dialog now have more
meaningful titles, depending on which clock style is
selected.
- Fixed a problem with the idle interval not being properly
rendered under the Appearance Manager if the text was
greater than a single digit. BlackWatch now forces
the line width to be recalculated when opening the
Preferences dialog.
* What was new in 1.1 (11/17/97)
- BlackWatch now takes advantage of the Appearance Manager,
if it's present (Mac OS 8 and later.) All dialogs and
controls are drawn in the current system-wide appearance.
- Fixed a problem with the way BlackWatch checked the
"Sleep Now" corner. When certain CPU-intensive
applications were running, it was possible to move
the mouse into the "Sleep Now" corner and
nothing would happen.
* What was new in 1.0 (8/15/97)
- First version for general release (almost a year later!)
* What was new in 1.0a3 (9/11/96)
- First internal alpha release, with a working Preferences
dialog.
________________________________________________________________
BlackWatch - A simple Macintosh screen saver. ©
1996-1999 Ken McLeod. All rights reserved.
Apple, the Apple logo, Macintosh, Power Macintosh, and
QuickTime are trademarks of Apple Computer, Inc., registered
in the U.S. and other countries. PowerPC is a registered
trademark of International Business Machines Corporation.
This page was created using TextToHTML. TextToHTML is a free software for Macintosh and is (c) 1995,1996 by Kris Coppieters