1 KP 
Keyboard Practicer for the X Window System

SYNOPSIS

 $ kp [toolkitoption ...] [{-,+}{showkeytop,kt}] [{-,+}{shownextkey,nk}]
      [{-,+}{ignorecases,ic}] [-dvorak] [-qwerty] [-physical {dvorak,qwerty}]
      [-vendor {Sun,HP,DEC,PC,Kinesis}] [file]
2 DESCRIPTION
Kp
is a program which runs under the X window system. It is intended to
be used to practice touch-typing.

This program is designed to make it easy for the user to get used to
keyboards.  The program window consists of two panes---the practice
text and the virtual keyboard.  The cursor moves on the
practice text as the user hits the key.  The virtual keyboard usually
shows which key the user has just hit and what the user should type
next.

The main difficulty of touch-typing is to ``forget'' about the
physical keyboard---as long as you watch the keytops, you won't master
touch-typing.  Using kp, the user can focus on the screen and
forget about the keytop symbols on the real keyboard.

In addition, kp has two useful features---virtual Dvorak
support and filtering.  Dvorak is an alternative keyboard
layout to the conventional Qwerty, and there are enthusiastic
supporters (the author being one) all over the world.  Kp lets
you practice Dvorak while using Qwerty on other windows.  The virtual
keyboard aids the user to ``feel'' the Dvorak keyboard, without having
to look up her typing textbook's back cover.

Kp allows you to ``filter'' the words in the practice text,
i.e., select only words that contain certain letters.  Thus, the user
can start from the keys she is most familiar with and incrementally
extend the keyset until she masters the full keyboard.  This is
particularly useful for Dvorak keyboards, since the middle row
contains the most frequently used keys and the user can learn very
quickly and easily by starting from the middle row. 

Kp has a user-friendly menu-oriented interface to change
configurations and select practice text files.  A good practice text
is your favorite manual page (use the one in the cat? directories, not
the nroff source in man?), and kp will remove the underscores
and doublestrikes for your convenience.

Kp tries to guess what your keyboard looks like by looking up
the keycode/keysym translation table.  It currently knows about PC, HP,
Sun and DEC keyboards, Qwerty or Dvorak.  When it doesn't understand
what keyboard it's looking at, it assumes a Sun keyboard.  However, it
doesn't really need this information except for the layout of special
symbols.  I'll probably drop this support in the next release
(it's not very likely that what people want to practice
with kp are special symbols).

In addition, there are some xmodmap files that you can use to remap
your keyboard to Dvorak in the xmodmaps/ subdirectory of the source
distribution.  They come with Qwerty counterparts but they are not
very well tested (I don't use Qwerty!) so use them with care.

2 OPTIONS
In addition to specifying the practice file (which can be any ASCII
file) from the command line, and all standard X toolkit options,
kp supports the following command line options.  If the option
begins with a `+' instead of a `\-', think it as appending
a ``do not'' in front of the name of the option.  (I know this is very
strange considering the mathematical meanings of the two symbols but
that's the way they are in Unix.)

The options can also be set via the resource names given in
parentheses in the description of each option, and also can be changed
when the program is running via the Options menu.


  -showkeytop/kt 
(.showKeyTop)
Show all the keytop symbols on the virtual keyboard.  When turned off,
only show the key most recently typed, and the next key, if
-shownextkey (see below) is specified.

  -shownextkey/nk
(.showNextKey)
Show the next key to type in reverse video.

  -ignorecases/ic
(.ignoreCases)
Do not care whether a letter is lowercase or uppercase.  When this
option is turned on, the program will ignore cases almost everywhere,
not only when you type practice text---it doesn't reverse the shift
key when displaying the next key to type, collect words with both
uppercase and lowercase versions for filtering, etc.
 
  -dvorak/qwerty
(.keyboard)
Selects the virtual keyboard.  When specifying via resources, "true"
denotes Dvorak (no flames for this please).
 
  -physical keyboardtype
(.physicalKeyboard)
Overrides the keyboard type detection routine of kp.  Valid
arguments are "dvorak" and "qwerty".
 
  -vendor vendorname
(.vendor)
Overrides the vendor detection routine of kp.  Valid arguments
are "Sun", "HP", "DEC", "PC" and "Kinesis".  Note that Kinesis
keyboards are never detected automatically, since there is no way the
software can distinguish between them and ordinary PC keyboards.

2 MENUS
Most menu entries should be self-explanatory (that's what menus are
for).  The only (possibly) item that is not clear is the Filter
entry of the Options menu.  If you pull the menu further to the right
and select the Filter entry, kp will produce a dialog
popup in which you can type in characters that you want to proctice.

Kp will then display only the words that consist entirely from
those characters.  (Note that case significance is an issue here; if
you are in ``case insensitive'' mode, both uppercase and lowercase
versions of the letter is used, but if you are in ``case sensitive''
mode, only the characters that match exactly to your string are used.

Unfilter will negate the effects of the filter.  Note that
kp won't forget the the characters of choice so that you can use
them again.

2 ENVIRONMENT
Starting from ``DISPLAY'', kp understands standard X environment
variables.  It has no special variable for itself.

2 AUTHOR
Satoshi Asami of the Computer Science Division, Department of
Electrical Engineering and Computer Sciences, University of
California, Berkeley.  He wrote this program for his term project in
a user interfaces course.

2 VMS_PORT

Patrick Moreau, CENA/Athis-Mons, FRANCE (pmoreau@ada.cenaath.cena.dgac.fr)
