locktones:

This software package was developed by Dave Mielke (dave@mielke.ml.org).
Please send me any suggestions which you have for its improvement, no
matter how small or trivial, as my goal is for this to be a quality
package, and, as there's no way that I'll be able to have it truly attain
that status on my own, your help would be greatly appreciated.

The intent of this package is to provide blind computer users with an easy
way to immediately know the current states of the various keyboard locks
(caps, insert, num, scroll). It runs as a background process which
periodically checks the states of the locks, and uses the PC speaker to
generate a persistent audible tone for each active lock. A distinctly
different pitch is used for each lock. If more than one lock is active at
the same time, then the applicable tones are played cyclically, rather
than as a single chord, because the hardware on some computers does not
permit the generation of a chord, and because, in my opinion, it's much
easier to know with certainty which tones are being played.

This software has been implemented for the following platforms:

    Platform     Directory   Executable
    Linux        linux       locktones
    DOS(DJGPP)   djgpp       locktone.exe

Each platform-specific directory contains a ready-to-use executable file
(see the preceding table), a "Makefile" in case you wish to modify and/or
rebuild the software, and a "README" file which describes the various
idiosyncrasies of that particular platform. As time permits, support for
other platforms will be added. All hints regarding how best to support
other platforms shall be gladly accepted.

Use the --help (or -h) option to view a summary of the command syntax.
Trust it, rather than the documentation within this file, as being more
up-to-date if there's a difference. If you notice any such difference,
then please let me know about it.

Use the --version (or -v) option to determine which version of the
software you have.

Use the --poll (or -p) option to specify (in tenths of seconds) how often
to check the states of the locks. The default is 1.

Use the --duration (or -d) option to specify (in tenths of seconds) the
duration of each tone when multiple tones are being cyclically generated.
The default is 2.

Use the --caps (or -c), --insert (or -i), --num (or -n), and --scroll (or
-s) options to explicitly specify the pitches (as a frequency in Herz) of
the tones for each lock. The defaults are 300 for the caps lock, 450 for
the insert lock, 600 for the num lock, and 1200 for the scroll lock.
