puff - An X program for sight-impaired users
puff [-toolkit_option] [-option]
Have Puff's false server listen at a different display
number. By default, Puff listens to display number 1.
Set the magnification factor. The magnification is constrained
to be an integer greater than zero. The default
is 6. Specify in milliseconds how often to update the
Puff window in the absence of pointer of graphics activity.
For example, to update every second, use a value of
1000. The default update rate is 500 milliseconds, or 2
Hz. An update value of zero turns off periodic updating.
Specify the size of the pointer cursor block in the Puff
window. The actual dimension of the block is '2 * cursorWidth
* magnification'. The default cursor width is 3. The
width of the view box outline is `cursorWidth + magnification'.
Display a short command summary.
Puff (puff) is intended for people who need text and
graphics displayed at a high magnification factor. Typically
users will want both the pointer and text to be
tracked as they work.
Puff follows the pointer (also known as the mouse), magnifying
a part of the screen under the cursor. In addition,
Puff can monitor the X11 protocol of X clients and magnify
the region where graphics were last drawn. By monitoring
a program like xterm, Puff can follow the text cursor
automatically. Puff switches focus between the pointer
and graphics, depending on which was last active.
In order to track the protocol of X clients, Puff sets up
a false server on the machine that it is executed on.
This server is, by default, at display number 1. Any X
clients connecting with this false server are connected to
the same X server that Puff is connected to. Puff is
transparent to X clients.
Puff draws a box around the location being magnified,
which makes it easier to track the cursor and see where
Puff is focusing its attention. The view box flashes on
Puff is controlled via the keyboard. The following keys
have these actions: Change the magnification factor to
2-18, 20, 25, and 30, respectively. Toggle showing the
view box. Quit Puff. This will also finish off any
clients running through Puff.
The following arrow key commands make it easier to scan
text and graphics: Move the magnification window up by 1/4
the window height. Move the magnification window down by
1/4 the window height. Move the magnification window
right by 1/4 the window width. Move the magnification
window left by 1/4 the window width. Return to the point
The following resources apply to the Puff widget, of class
puff: Set the magnification factor in the horizontal
direction. The resource value must be a positive integer.
Set the magnification factor in the vertical direction.
The resource value must be a positive integer. Graphics
and pointer activity are accumulated for delayMin milliseconds
before Puff updates to avoid overwhelming the X
server. To decrease Puff's impact, increase delayMin.
The default value is 50 milliseconds, or 20 Hz. If the
viewBox resource is nonzero, the view box will be drawn.
In practice, Puff is used on the top half of the screen,
with clients running on the bottom half. A sample file
#!/bin/csh xrdb -load $HOME/.Xdefaults xclock -geometry
-10-10 & puff -geometry 1280x500+0+0 & xterm -display :1
-geometry 80x32+5-5 & twm
For an example of how Puff follows the display, enter the
following command after starting Puff:
xclock -display :1 -u 1
If run over a network, Puff can consume a good portion of
an Ethernet's bandwidth. To be a good citizen, run Puff
on the same workstation as the X server whenever possible.
If available, Puff will use the MIT Shared Memory X server
extension, which greatly improves performance. However,
if terminated with extreme prejudice (that is, kill -9),
the program will not have a chance to release the shared
memory segments it was using. The ipcrm program can be
used to free up Puff's mess.
Puff will grab all Ctrl arrow-key events, depriving other
clients. This obnoxious behavior should be made an
AHPCRC (Army High Performance Computing Research Center)
[ Back ]