BlackWatch

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.


Original file name: BlackWatch Read Me - converted on Friday, 17 September 1999, 20:39

This page was created using TextToHTML. TextToHTML is a free software for Macintosh and is (c) 1995,1996 by Kris Coppieters