TkMan, tkman - a graphical manual page browser, with
hypertext
A BIRD? A PLANE? TKMAN! (TKPERSON?)
by Tom Phelps written in Tcl 7.4/Tk 4.0 by John Ouster-
hout, icon drawn by Rei Shinozuka
Compatible with Hewlett-Packard HP-UX, AT&T System V,
SunOS, Sun Solaris, OSF/1, DEC Ultrix, SGI IRIX, Linux,
SCO, IBM AIX, FreeBSD, BSDI--each of which, believe you
me, is in some way different from all the others
Copyright 251 1993-1995 T. A. Phelps
All Rights Reserved.
University of California, Berkeley
Department of Electrical Engineering and Computer Science
Computer Science Division
The latest version of TkMan is always available by anony-
mous FTP at ftp.cs.Berkeley.EDU in the
/ucb/people/phelps/tcltk directory.
PERMISSION IS GRANTED TO DISTRIBUTE THIS SOFTWARE FREELY,
WITH THE EXCEPTION THAT ONE MAY NOT CHARGE FOR IT OR
INCLUDE IT WITH SOFTWARE WHICH IS SOLD.
If you send me bug reports and/or suggestions for new fea-
tures, include the versions of TkMan, Tcl, Tk, X, and
UNIX, your machine and X window manager names, the edited
Makefile, a copy of your ~/.tkman file, and the first few
lines of the `tkman' executable.
INTRODUCTION
A graphical manual page browser, TkMan offers two major
advantages over xman : hypertext links to other man pages
(click on a word in the text which corresponds to a man
page, and you jump there), and better navigation within
long man pages with searches (both incremental and regular
expression) and jumps to section headers. TkMan also
offers some convenience features, like a user-configurable
list of commonly used man pages, a one-click printout, and
integration of whatis and apropos . Further, one may
highlight, as if with a yellow marker, arbitrary passages
of text in man pages and subsequently jump directly to
these passages by selecting an identifying excerpt from a
pulldown menu. Finally, TkMan gives one control over the
directory-to-menu volume mapping of man pages with a capa-
bility similar to but superior to xman 's mandesc in that
rather than forcing all who share a man directory to fol-
low a single organization, TkMan gives control to the
individual. For instance, one may decide he has no use
for a large set of man pages--say for instance the pro-
grammer routines in volumes 2, 3, 4, 8--and eliminate them
listing.
Other features include:
* full text search of manual pages (with Glimpse;
optional)
* a pulldown list of all man pages matching the search
name
* regular expression searches for manual page names
* a list of recently added or changed manual pages
* a "history" list of the most recently visited pages
* a preferences panel to control fonts, colors, and other
system settings
* compatibility with compressed pages (both as source and
formatted)
* diagnostics on your manual page installation
* elision of those unsightly page headers and footers
* and, when attempting to print a page that available only
in formatted form, reverse compilation into [tn]roff
source, which can then be reformatted as good-looking
PostScript.
This help page is shipped with the distribution in HTML
form for easy printing.
USING TKMAN
Locating a man page
There are several ways to specify the manual page you
desire. You can type its name into the entry box at the
top of the screen and press Return or click the man but-
ton. The name may be just the name of the command or may
include a . n or ( n ) at the end where n specifies in
which section to look. Man pages are matched using regular
expressions, so you can use . to match any single charac-
ter, * to match any (zero or more) of the previous regular
expression, [ .. ] to match any single character in the
enclosed class; see Tcl 's regexp(n) for more informa-
tion. For instance, .*mail.*\.1 searches section 1 (user
commands) for commands with "mail" anywhere in their
names. Likewise, one can collect all the various manual
pages relating to Perl 5 with perl.* , or see a list of
all X window managers with .*wm . If you're running TkMan
from a shell and giving it an initial man page name to
load up as an argument, use this syntax (adequately quoted
for protection from the shell), as opposed to the syntax
of the standard man command (which is man section name
--that is, the section number comes first, whereas in
TkMan it is part of the name.
Usually TkMan searches the directories in your MANPATH
environment variable for the man page, but you may instead
provide a path name for the man page by beginning it with
`~' , `/' , `.' or `..' ; this is the way to access a man
TkMan by send ing a message to the function manShowMan
with the name of the desired man page, e.g. send tkman
manShowMan tcl.n . If multiple man page names match the
specification, the first match (as searched for in MANPATH
order) is shown and a pulldown menu appears which contains
a list of the other matches. Return from reading help or a
volume listing to the last man page seen with C-m when
the focus is in the main text display area.
apropos information is available by typing the name and
clicking apropos or hitting Shift-Return. The output of
apropos is piped through sort and uniq to remove dupli-
cates. To pass the matches through additional filters,
simply give the pipe as in a shell, e.g., ` search | grep
^g ' (each space character is significant) returns all the
search-related commands which begin with the letter g .
The results of the last apropos query are available under
the Volumes menu.
You may also see a button for glimpse , a full text search
program that requires only small index files ("typically
2-5% the size of the original text" but larger percentages
for smaller amounts of text), written by Udi Manber, Sun
Wu, and Burra Gopal of the University of Arizona's Depart-
ment of Computer Science. In their performance measure-
ments, "a search for Schwarzkopf allowing two misspelling
errors in 5600 files occupying 77MB took 7 seconds on a
SUN IPC." For example, one may search for the string `WWW'
anywhere in any manual page by typing in `WWW' in the
entry line at the top of the screen and clicking on the
glimpse button or typing Meta-Return (for meta-
information, of course). Escape and C-g can interrupt a
search after the current directory is done. To employ
glimpse 's command line options, simply place them before
the search pattern in the entry box, or add them to the
default options by editing the man(glimpse) variable in
your ~/.tkman startup file (see Customizing TkMan,
below). For instance, to search for "perl" as a word and
not part of another word (as in "properly"), glimpse for
-w perl . Glimpse supports an AND operation denoted by
the symbol `;' and an OR operation denoted by the symbol
`,' . Refer to the glimpse manual page for more informa-
tion. The regular expression used by glimpse automatically
sets the intrapage search expression. The case sensitivity
of the search is set to the same as the that of intrapage
regular expression searching. A complete set of matches
from the last full text search is available under the Vol-
umes menu.
The Paths pulldown gives you complete control over which
directory hierarchies of your MANPATH are searched for
man pages and apropos information. You can call up a list-
clicking on its name. New `pseudo-volumes' can be added,
and arbitrary directories may be added to or deleted from
a volume listing using tkmandesc commands, described
below. In a volume listing, typing a letter jumps to the
line in the listing starting with that letter (capital and
lower case letters are distinct). Return to the last vol-
ume seen with C-d when the focus is in the main text dis-
play area.
Whenever you have a man page name in the text display box,
whether from apropos, a volume listing or a reference
within another man page, you can double-click on it to
hypertext-jump to it. Pressing shift while double-
clicking opens up a new viewer box to display the page.
The last few man pages you looked at can be accessed
directly through the History pulldown menu. Shortcuts
lists your personal favorites and is used just like His-
tory , with the additional options of adding the current
man page (by clicking + ) or removing it ( - ) from the
list.
(Man pages specified as above are processed through an
nroff filter. TkMan can also read raw text from a file or
from a command pipeline, which can then be read, searched
and highlighted same as a man page. To read from a file,
make the first character in the name a < , as in
<~/foo.txt . To open a pipe, make the first character a |
(vertical bar), as in ` |gzcat foo.txt.gz ' or ` |cat
../foo.txt | grep bar ' (that's no space after the first |
, a space before and after any subsequent ones). After
reading a file in this way, the current directory is set
to its directory. Commands are not processed by a shell,
but the metacharacters . , .. , ~ and $ (for environment
variables), are expanded nonetheless. Typing is eased
further by file name completion, bound to Escape . Lone
files (i.e., not part of a pipe) are automatically uncom-
pressed--no need to read compressed files through a zcat
pipe. It is not expected that reading raw text will be
done much; it is included so the occasional non-man page
documentation may be read from the same environment. For
more sophisticated file browsing, use NBT, my Tcl/Tk-based
file browser, which is available from TkMan's home FTP
site, given above.)
Working within a man page
The full pathname of the current manual page is shown at
the top of the screen. Via the Preferences dialog, this
can be changed to the whatis information for the page.
To the extent it follows convention, a manual page is
parsed to yield its section and subsection titles (which
Links pulldown). One may jump directly to a section within
a man page or a man page referenced in the SEE ALSO sec-
tion, respectively, by selecting the corresponding entry
from one of these pulldowns.
Within a man page or raw text file or pipe, you may add ad
hoc highlighting, as though with a yellow marker (under-
lining on monochrome monitors). Highlighted regions may
then be scrolled to directly through the Highlights pull-
down menu. To highlight a region, select the desired text
by clicking button 1, dragging to the far extent of the
desired region and releasing the button, then click on the
+ next to Highlights . To remove any highlights or por-
tions thereof in a region, select it as before but then
click on - . Highlighting information is persistent across
executions of TkMan. A complete set of pages with high-
lighting is available under the Volumes menu.
You can move about the man page by using the scrollbar or
typing a number of key combinations familiar to Emacs afi-
cionados. Space and C-v page down, and delete and M-v
page up. C-n and C-p scroll up and down, respectively,
by a single line ( vi fans will be happy to hear that C-f
and C-b also page down and page up, respectively). M-<
goes to the head and M-> to the tail of the text. One
may "scan" the page, which is to say scroll it up and down
with the mouse but without the use of the scrollbar, by
dragging on the text display with the middle mouse button
pressed. Like Emacs, C-space will mark one's current
location, which can be returned to later with C-x , which
exchanges the then-current position with the saved mark; a
second C-x swaps back.
C-s initiates a search. Subsequently typing a few letters
attempts to find a line with that string, starting its
search with at the current match, if any, or otherwise the
topmost visible line. A second C-s finds the next match
of the string typed so far. (If the current search string
is empty, a second C-s retrieves the previous search pat-
tern.) C-r is similar to C-s but searches backwards.
This incremental search can be used to quickly locate a
particular command-line option or a particular command in
a group (as in csh with its long list of internal com-
mands). At the bottom of the screen, type in a regular
expression to search for and hit return or click Search
to begin a search. Hit Next or keep hitting return to
search for the next occurance. [ Prev will be added when
Tk supports a tag prevrange command.] Escape or C-g
cancels searching, both incremental and regular expression
types.
The Tab key moves the focus from the man page type-in
direction.
Other commands
The Occasionals menu holds commands and options which you
probably won't use much. Help returns to this information
screen. Although virtually made obsolete by TkMan, Print
makes a copy of the current man page on dead trees, help-
ing to starve the planet of life-giving oxygen. (If the
[tn]roff source is not available, TkMan asks if it should
try to reverse compile the man page. If successful, this
produces much more appealing output than an ASCII dump.)
By default, incremental searching is not case sensitive,
but regular expression searching is; these settings can be
toggled with the next two menus. The mysterious iff upper
means that searching is case sensitive if and only if
their is at least one uppercase letter in the search
expression--that is, all lowercase searches are not case
sensitive; this idea is taken from Emacs (I think). With
proportional fonts giving a ragged right margin, any
change bars in the right margin will form an uneven line;
by opting for Changebars on left , they will form a
straight line at the left margin.
As with xman one may instantiate multiple viewers. When
there is more than one viewer you may choose man pages in
one viewer and have their contents shown in another. Use
the Output pulldown (which appears and disappears as rele-
vant) to direct one viewer's output destination to
another. With this feature one may easily compare two sim-
ilar man pages for differences, keep one man page always
visible, or examine several man pages from a particular
volume listing or a SEE ALSO section. Output only
affects the display destination of man pages. TkMan uses
a database of all manual page names in searching for a
match for a particular name. This database is constructed
automatically if it doesn't exist (this includes the first
time TkMan is run for a particular user) and whenever it
is out of date due to pages being added or changed, or
changes in one's MANPATH or tkmandesc commands. (If you
want to add paths to your MANPATH , or edit ~/.tkman , you
will have to restart to see any changes take effect, how-
ever.) If you install new manual pages, invoking Rebuild
Database will permit them to show up in the next search
or volume listing without the bother of quitting and re-
executing TkMan. Rebuild Glimpse Database creates and
then maintains the index that is used for full text
searches. The Glimpse database is not maintained automat-
ically. When exited via the Quit button TkMan saves its
state. One may guard against losing highlighting, short-
cuts and other what-should-be persistent information with-
out quitting by by invoking Checkpoint state to .tkman ;
Quit, don't update performs the opposite operation.
between the proportionally-spaced font and a monospaced
one, for use in those man pages that rely on a fixed-width
font to align columns. Quit exits TkMan, of course, after
saving some state information (see below). To exit without
saving status information, select the Quit option from
the Occasionals pulldown.
Preferences
The Preferences... choice in the Occasionals pulldown
menu brings up a graphical user interface to setting vari-
ous attributes of TkMan, including fonts, colors, and
icons. Click on a checkbutton at the top of the window to
bring up the corresponding group of choices. After making
a set of choices, the Apply button reconfigures the run-
ning application to show these changes, OK sets the
changes for use now and in the future, Cancel quits the
dialog and sets all choices to their settings as of the
time Preferences was called up, and Defaults resets the
settings in the current group to those set by TkMan out of
the box.
The first line in the Fonts group specifies the font to
use for the general user interface, which amounts to the
labels on buttons and the text in menus. The first menu in
the line labeled Interface sets the font family, the next
menu sets the font size, and the last the font styling
(normal, bold, italics, bold-italics). Text display
makes these settings for the text box in which the manual
pages contents are displayed. For listings of all man
pages in a particiular volume (as chosen with the Volumes
menu), you may wish to use a smaller font so that more
names fit on the screen at once. Screen DPI specifies the
right set of fonts to use for your monitor.
Colors sets the foreground and background colors to use
for the manual page text display box, the general user
interface, and the buttons of the user interface. In addi-
tion it sets the color (or font) in which to show various
classes of text in the text box, including manual page
references, incremental search hits, regular expression
search hits, and highlighted regions.
The See group specifies what information to display. Usu-
ally manual page headers and footers are uninteresting and
therefore are stripped out, but a canonical header and
footer (along the date the page was installed in the
man/man n directory or formatted to the man/cat n direc-
tory) to be shown at the bottom of every page can be
requested. Solaris and IRIX systems come with many "sub-
volumes"--that is volumes with names like "3x" and "4dm"
that form subgroupings under the main volumes "3" and "4",
respectively--and you make use tkmandesc commands to add
cascaded menus. When a highlighted passage is jumped to
via the Highlights menu, some number of lines of back con-
text are included; the exact number of lines is config-
urable. The information bar at the top of the window can
display either the short, one-line description from a man-
ual page's NAME section or the pathname of the page.
Around the man page display area runs a buffer region, the
exact width of which is configurable. Tk deviates from
Motif behavior slightly, as for instance in highlighting
buttons when they're under the cursor, but you can observe
strict Motif behavior.
The Icon group sets all the options relating to iconifica-
tion. The pathnames of the icon bitmap and icon mask
should be the full pathnames (beginning with a `/').
If a man page has not been formatted by nroff , TkMan must
first pipe the source text through nroff . By turing on
Cache formatted (nroff'ed) pages in the Misc(ellaneous)
group, the nroff -formatted text is saved to disk (if pos-
sible), thereby eliminating this time-consuming step the
next time the man page is read. The on & compress setting
will compress the page, which saves on disk space (often
substantially as much of a formatted page is whitespace),
but will make it unavailable to other manual pagers that
don't handle compression. TkMan can extract section head-
ers from all manual pages, but only some manual page
macros format sub section headers in a way that can be
distinguished from ordinary text; if your macros do, turn
this option on to add subsections to the Sections menu.
The History pulldown must balance depth of the list
against ease of finding an entry; set your own inflection
point with this menu. Volumes' (recent) choice will show
all manual pages that have been added or changed n days,
where n is set with this next menu. Glimpse works best
when searching for relatively uncommon words; guard
against getting too many hits with the last menu in this
group. Proportional spacing wrecks the spacing used to set
tables in columns, hence the Mono (space) button on the
bottom line of the main screen; setting the Aggressive
table parsing option on will try to identify tables and
format them in a fixed-width font while keeping the rest
of the text proportionally spaced. It is quite difficult
to identify tables with the single-pass filter that TkMan
uses, however, so you'll probably want to leave it off.
CUSTOMIZING TKMAN
There are four levels of configuration to TkMan.
(1) Transparent. Simply use TkMan and it will remember
your window size and placement, short cuts, and highlights
(if you quit out of TkMan via the Quit button).
(3) Configuration file. Most interesting settings, like
the command(s) used to print the man page and some key
bindings, can be changed by editing one's own ~/.tkman .
Thus, a single copy of TkMan (i.e., the executable tkman )
can be shared, but each user can have his own customized
setup. (The file ~/.tkman is created/rewritten every time
one quits TkMan via the Quit button in the lower right
corner. Therefore, to get a ~/.tkman to edit, first run
and quit TkMan. Do not create one from scratch as it will
not have the proper format used for saving other persis-
tent information, and your work will be overwritten, which
is to say lost.) Be careful not to edit a ~/.tkman file
only to have it overwritten when a currently-running TkMan
quits.
Options that match the defaults are commented out (i.e.,
preceded by a # ). This is so that any changes in the
defaults will propagate nicely, while the file still lists
all interesting variables. To override the default set-
tings for these options, first comment in the line.
The ~/.tkman save file is the place to add or delete col-
ors to the default set, which will subsequently become
menu choices in Preferences, by editing in place the
variable man(colors) . One may also edit the order of
Shortcuts in the man(shortcuts) variable. Other interest-
ing variables include man(highlight) , which can be edited
to change the background in place of the foreground, or
both the foreground and background, or a color and the
font as with the following setting:
set man(highlight) {bold-italics -background
#ffd8ffffb332}
Arbitrary Tcl commands, including tkmandesc commands
(described below), can be appended to ~/.tkman (after the
### your additions go below line).
To set absolutely the volume names for which all directo-
ries should be searched, edit the parallel arrays on
these existing lines:
set man(manList) ...
set man(manTitleList) ...
Changing the order volumes in these lists (make sure to
keep the two lists in parallel correspondence) changes the
precedence of matches when two or more pages have the same
name: the page found in the earlier volume in this list is
show first.
Additional useful commands include wm(n) , which deals
with the window manager; bind(n) , which changes keyboard
and mouse bindings not related to the text display window;
ful changes or have suggestions for some, please report
them back to me so I may share the wealth with the next
release.
Command line options
The environment variable named TKMAN , if it exists, is
used to set command line options. Any options specified
explicitly (as from a shell or in a script) override the
settings in TKMAN . Any settings made with command-line
options apply for the current execution only. Many of
these options can be set persistently via the Preferences
dialog (under the Occasionals menu).
-title title Place title in the window's title bar.
-geometry geometry
Specify the geometry for this invocation
only. To assign a persistent geometry,
start up TkMan, size and place the window
as desired, then (this is important) quit
via the Quit button in the lower right
corner.
-iconify and --iconify
Start up iconified or uniconified (the
default), respectively.
-iconname name Use name in place of the uniconified win-
dow's title for the icon name.
-iconbitmap bitmap-path and -iconmask bitmap-path
Specify the icon bitmap and its mask.
-iconposition (+|-)x(+|-)y
Place the icon at the given position;
-iconposition "" "" cancels any such hints
to the window manager.
-startup filename
Use filename in place of ~/.tkman as the
startup file; "" indictates no startup
file.
-database filename
Use filename in place of ~/.tkmandatabase
as the name of the file in which to create
the database of man page names. This can
point to a shared file to save disk space
or share a custom design, or to an OS-
specific file for systems with multiple
machine architectures that share home
directories.
Simply rebuild the database and quit. This
option may be useful in a cron script.
-quit save and -quit nosave
Specify that the startup file (usually
~/.tkman ) should be updated ( save ) or
not ( nosave ) when quitting by the Quit
button.
-v Show the current version of TkMan and exit
immediately thereafter.
-M path-list
or -M+ path-list
or -+M path-list As with man , change the
search path for manual pages to the given
colon-separated list of directory subtrees.
-M+ appends and -+M prepends these direc-
tories to the current list.
-now Start up TkMan without checking to see if
the database is out of date.
Key bindings
Key bindings related to the text display box are kept in
the sb array in ~/.tkman (for more information on Tcl's
arrays, refer to the array(n) man page. In editing the
sb(key,...) keyboard bindings, modifiers MUST be listed
in the following order: M (for meta), C (control), A
(alt). DO NOT USE SHIFT. It is not a general modifier:
Some keyboards require shift for different characters,
resulting in incompatibilities in bindings. For this rea-
son, the status of the shift key is supressed in matching
for bindings. For instance, set sb(key,M-less) pagestart
is a valid binding on keyboards worldwide, whereas set
sb(key,MS-less) is not. To make a binding without a modi-
fier key, precede the character by `-', as in set
sb(key,-space) pagedown .
tkmandesc
Like xman , TkMan gives you directory-by-directory control
over named volume contents. Unlike and superior to xman ,
however, each individual user controls directory-to-volume
placement, rather than facing a single specification for
each directory tree that must be observed by all.
By default a matrix is created by taking the product of
directories in the MANPATH crossed with volume names,
with the yield of each volume containing all the corre-
sponding subdirectories in the MANPATH . By adding Tcl
commands to your ~/.tkman (see above), you may add new
volume names and add, move, copy and delete directories
commands, so you may need to learn Tcl--particularly the
commands that deal with Tcl lists (including lappend(n) ,
linsert(n) , lrange(n) , lreplace(n) ) and string matching
( string(n) , match subcommand)--to use this facility to
its fullest. tkmandesc commands are used to handle the
nonstandard format of SGI's manual page directories, and
the sgi_bindings.tcl in the contrib directory is a good
source of examples in the use of tkmandesc commands.
Directory titles and abbrevations are kept in lists.
Abbreviations MUST be unique (capital letters are distinct
from lower case), but need not correspond to actual direc-
tories. In fact, volume letters specified here supercede
the defaults in identifying a volume in man page searches.
COMMANDS
The following commands are appended to the file ~/.tkman
(see Customizing TkMan, above).
To recreate a cross product of current section lists:
manDescDefaults
This cross product is made implicitly before other tkman-
desc commands. Almost always this is what one expects. If
it is not, one may supress the cross product by setting
the variable manx(defaults) to a non-null, non-zero value
before other tkmandesc commands are invoked.
To add "pseudo" sections to the current volume name list,
at various positions including at end of the list, in
alphabetical order, or before or after a specific volume:
manDescAddSects list of (letter, title pairs)
or manDescAddSects list of (letter, title) pairs sort
or manDescAddSects list of (letter, title) pairs before
sect-letter
or manDescAddSects list of (letter, title) pairs after
sect-letter
In manual page searches that produce multiple matches, the
page found in the earlier volume is the one shown by
default.
To move/copy/delete/add directories:
manDescMove from-list to-list dir-patterns-list
manDescCopy from-list to-list dir-patterns-list
manDescDelete from-list dir-patterns-list
manDescAdd to-list dir-list
The dir-patterns-list uses the same meta characters as
man page searching (see above). It is matched against MAN-
PATH directories with volume subdirectory appended, as in
/usr/man/man3 , where /usr/man is a component of the MAN-
PATH and man3 is a volume subdirectory. from-list and
to-list are Tcl lists of the unique volume abbreviations
able to Glimpse for its indexing.
Warning: Moving directories from their natural home
slightly impairs searching speed when following a refer-
ence within a man page. For instance, say you've moved man
pages for X Windows subroutines from their natural home in
volume 3 to their own volume called `X'. Following a ref-
erence in XButtonEvent to XAnyEvent(3X11) first searches
volume 3; not finding it, TkMan searches all volumes and
finally finds it in volume X. With no hint to look in vol-
ume 3 (as given by the 3X11 suffix), the full volume
search would have begun straight away. (Had you double-
clicked in the volume listing for volume X or specified
the man page as XButtonEvent.X , volume X would have been
searched first, successfully.)
To help debug tkmandesc scripts, invoke manDescShow to
dump to stdout the current correspondence of directories
to volumes names. EXAMPLES
(1) To collect together all man pages in default volumes 2
and 3 in all directories into a volume called "Programmer
Subroutines", add these lines to the tail of ~/.tkman :
manDescAddSects {{p "Programmer Subroutines"}}
manDescMove {2 3} p *
To place the new section at the same position in the vol-
ume pulldown list as volumes 2 and 3:
manDescAddSects {{p "Programmer Subroutines"}} after 2
manDescMove {2 3} p *
To move only a selected set of directories:
manDescAddSects {{p "Programmer Subroutines"}}
manDescMove * p {/usr/man/man2 /usr/local/man/man3}
(2) To have a separate volume with all of your and a
friend's personal man pages, keeping a duplicate in their
default locations:
manDescAddSects {{t "Man Pages du Tom"} {b "Betty
Page(s)"}}
manDescCopy *phelps* t *
manDescCopy *page* t *
(3) To collect the X windows man pages into two sections
of their own, one for programmer subroutines and another
for the others:
manDescAddSects {{x "X Windows"}} after 1
manDescAddSects {{X "X Subroutines"}} after 3
manDescMove * x *X11*
manDescMove x X *3
(4) If you never use the programmer subroutines, why not
manDescDelete * {*[2348]} (braces prevent Tcl from trying
to execute [2348] as a command)
Alternatively but not equivalently:
manDescDelete {2 3 4 8} * tkmandesc vs. xman and SGI
TkMan's tkmandesc capability is patterned after xman 's
mandesc files. By placing a mandesc file at the root of a
man page directory tree, one may create pseudo volumes and
move and copy subdirectories into them. Silicon Graphics
has modified xman so that simply by creating a subdirec-
tory in a regular man subdirectory one creates a new vol-
ume. This is evil. It violates the individual user's
rights to arrange the directory-volume mapping as he
pleases, as the mandesc file or subdirectory that sponta-
neously creates a volume is set a single place and must be
observed by all who read that directory. By contrast,
TkMan places the directory-to-volume mapping control in an
individual's own ~/.tkman file. This gives the individual
complete control and inflicts no pogrom on others who
share man page directories. Therefore, mandesc files are
not supported in any way by TkMan.
One may still share custom setups, however, by sharing the
relevant lines of ~/.tkman . In fact, a tkmandesc version
of the standard SGI man page directory setup is included
in the contrib directory of the TkMan distribution. For
assistance with SGI-specific directory manipulation, con-
tact Paul Raines ( raines@bohr.physics.upenn.edu ).
ADDRESSES
Tom Phelps
University of California, Berkeley
Computer Science Division
387 Soda Hall #1776
Berkeley, CA 94720-1776
USA
phelps@cs.Berkeley.EDU
MORE INFORMATION
My article "TkMan: A Man Born Again" appears in The X
Resource , issue 10, pages 33--46. Here are the section
titles: Introduction, Availability, The User Interface,
Navigating among Man Pages, Inspecting Individual Man
Pages, Customization, Logical Volumes with tkmandesc, Per-
sistency, The RosettaMan Filter, Extensions, Problems,
Future Work, Acknowledgements, Bibliography.
A World Wide Web page that lists other Tcl/Tk software and
a related Berkeley Computer Science Division technical
report, CSD-94-802, can be found at
Permission to use, copy, modify, and distribute this soft-
ware and its documentation for educational, research and
non-profit purposes, without fee, and without a written
agreement is hereby granted, provided that the above copy-
right notice, this and the following two paragraphs appear
in all copies.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE
TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFT-
WARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CAL-
IFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-
AGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS"
BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION
TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.
Help page last revised on $Date: 1995/11/02 21:10:42 $