Name

pmnotify.app — notification agent.

Description

pmnotify.app is a per-session application responsible for Power Manager's essential user interface.

pmnotify.app is included with every edition of Power Manager. Each user session should include a running instance of pmnotify.app. Without pmnotify.app the user will not be kept informed of pending or executing events.

You can safely kill and relaunch pmnotify.app without affecting Power Manager Engine, or your schedule.

Design

pmnotify.app provides three major interface elements:

Warnings
Notifications
Status menu

Warnings

Warnings are displayed moments before a host affecting action is performed. A warning should explain two things to the user: what action is about to occur and what is responsible for the action.

The default warning is a large action or event specific icon accompanied by a short message. The message is typically the event name.

A warning is displayed for no less that 2 seconds before the action begins. This is enough time to register with the active user. There is no expectation of the user being able to stop or affect the action; notifications are provided earlier to allow the user to affect the action.

A warning needs to reassure users that an action is planned, predictable, and appropriate. Power Manager Engine can be used to shut down the user's computer. If the user sees their Mac shutting down without obvious reason, expect the user to be upset. A warning provides the user with a reason and culprit for the shut down; even then some users will be upset if their work is interrupted, but they now have a cause.

As a Power Manager client pmnotify.app observes the notifications.warnings variable.

Notifications

Notifications are typically displayed minutes before an event is triggered. A notification is a polite reminder of a pending event.

Notifications are displayed for events whose trigger time and date can be calculated. These include the date and time trigger and daily trigger.

A notification should raise the user's awareness of a pending event. Notifications should not interrupt the workflow of the active user. Pending events may not be critical to the user, and in most cases the event is unlikely to affect the user's situation.

However, some events will affect the user. These events include those with shut down actions and other host affecting actions. The notification must always give the user an opportunity to secure their work. Notifications should provide the opportunity for the appropriately privileged user to adjust or cancel the pending event.

Events without time and date based triggers do not display notifications.

As a Power Manager client pmnotify.app observes the notifications.current variable.

Status Menu

The status menu is an ever present display of pending triggers. The status menu provides a quick glance guide to the next pending trigger.

Displaying the status menu's contents shows the user a list of pending triggers. The status menu can provide a means of adjusting or cancelling pending triggers.

Users should have the option of disabling the status menu. In some environments, a status menu showing pending triggers may not be appropriate.

As a Power Manager client pmnotify.app observes the notifications.pending variable.

Defaults

pmnotify.app's non-critical notifiers may be enabled and disabled on a per-user basis. This allows users to choose which notification methods best suit their needs.

To enable or disable a notifier, use the defaults command line tool. Each notifier has an associated key and boolean value.

pmnotify.app inspects the defaults on launch, and after seeing a distributed notification matching the Power Manager preference domain (uk.co.dssw.powermanager).

Table 2.1. Available Defaults

Key Purpose Type Default
notifier.status-menu Show the status menu boolean true
notifier.notifications Show notification dialogs boolean true
notifier.growl Enable Growl notification support boolean true

bash$ defaults write uk.co.dssw.powermanager notifier.status-menu -bool no

Hide the status menu. The change will take affect next log in, or after a distributed notification matching the Power Manager preference domain is posted.

Files

Power Manager/Agents/pmnotify.app