Annotation of 43BSD/contrib/X/man/keycomp.1, revision 1.1.1.1

1.1       root        1: .TH KEYCOMP 1 "18 August 1985" "X Version 10"
                      2: .SH NAME
                      3: keycomp - X window system keyboard mapping file compiler
                      4: .SH SYNOPSIS
                      5: .B keycomp
                      6: < input_file > output_file
                      7: .SH DESCRIPTION
                      8: Programs that use the X window system, such as \fIxterm(1)\fP, need some way
                      9: to translate the user's key strokes into character strings.  Such
                     10: programs look up this keyboard-to-character string mapping in a binary
                     11: keymap file by calling the library routine \fIXLookupMapping\fP.  Initially,
                     12: this routine looks for the file \fI.Xkeymap\fP in the user's home directory;
                     13: if this file doesn't exist, uses a built in table.
                     14: .PP
                     15: The compiled file format produced by \fIkeycomp\fP should be portable across
                     16: machine architectures.
                     17: .PP
                     18: The \fIkeycomp\fP program (an abbreviation for ``keymap compiler'') reads in a
                     19: textual description of this mapping and produces a binary keymap file on
                     20: its standard output.
                     21: .PP
                     22: Each key may have up to 16 different bindings, depending on what
                     23: combinations of the Shift, Lock, Control, and Meta keys are depressed.
                     24: For instance, in a conventional QWERTY keyboard mapping, pressing the ``A''
                     25: key produces a capital ``A'' when the Shift or Lock key is down, an
                     26: octal 001 when the Control key is down, and a small ``a'' when no
                     27: other key is down.
                     28: 
                     29: The input file to \fIkeycomp\fP consists of one or more lines.  Each line
                     30: begins with an octal or decimal number designating an X keyboard code.
                     31: After the key code, the line should contain either 1 or 16 items, each
                     32: representing the binding for a particular combination of the Control,
                     33: Meta, Shift, and Lock keys.  The items should be separated by white
                     34: space; the format of the items is described later.  The bindings should
                     35: be in this order:
                     36: 
                     37: #1     ``unshifted'':  none of Shift, Lock, Control, or Meta keys down
                     38: .br
                     39: #2     Lock key down
                     40: .br
                     41: #3     Shift key down
                     42: .br
                     43: #4     Shift and Lock keys down
                     44: .br
                     45: #5     Meta key down
                     46: .br
                     47: #6     Meta and Lock keys down
                     48: .br
                     49: #7     Meta and Shift keys down
                     50: .br
                     51: #8     Meta, Shift, and Lock keys down
                     52: .br
                     53: #9     Control key down
                     54: .br
                     55: #10    Control and Lock keys down
                     56: .br
                     57: #11    Control and Shift keys down
                     58: .br
                     59: #12    Control, Shift, and Lock keys down
                     60: .br
                     61: #13    Control and Meta keys down
                     62: .br
                     63: #14    Control, Meta, and Lock keys down
                     64: .br
                     65: #15    Control, Meta, and Shift keys down
                     66: .br
                     67: #16    Control, Meta, Shift, and Lock keys down
                     68: 
                     69: If only one item is present on the line, then it represents the binding
                     70: for this key regardless of the positions of the Control, Meta, Shift,
                     71: and Lock keys.
                     72: 
                     73: Each item should be one of the following:
                     74: 
                     75:     An octal or decimal number, indicating a character code
                     76: 
                     77:     A C character literal, surrounded by single quotes.  Escape
                     78: sequences (such as `\n' or `\252') are allowed, as described in the C
                     79: Reference Manual.
                     80: 
                     81:     A C string literal, surrounded by double quotes.  Again, standard C
                     82: escape sequences are allowed within the string.
                     83: 
                     84:     The letter U, indicating ``no binding''.  If there is no binding,
                     85: then XLookupMapping will return an empty string for this key
                     86: combination.
                     87: 
                     88: A comma may, but need not, follow each item.  Whether or not a comma
                     89: is present, white space (spaces or tabs) must separate the items.  All
                     90: text to the right of the 16th item is ignored; comments may appear here.
                     91: 
                     92: Completely blank lines are ignored, as are lines beginning with the '#'
                     93: character.  Furthermore, all text between a `#' character and the
                     94: following newline is ignored, provided that the `#' is not part of a
                     95: string enclosed in single or double quotes.  This allows you to place
                     96: comments at the end of a line that contains only a single item.
                     97: 
                     98: You can look at the file \fI<X/Xkeyboard.h>\fP for a list of key codes and
                     99: key names of function keys.
                    100: 
                    101: .SH FILES
                    102: $HOME/.Xkeymap, /usr/lib/Xkeymap.txt, <X/Xkeyboard.h>
                    103: .SH SEE ALSO
                    104: X(1), xterm(1)
                    105: .SH DIAGNOSTICS
                    106: ``Couldn't fseek output file''
                    107: .br
                    108: The standard output must be a file, not a pipe or a terminal.
                    109: 
                    110: ``Error writing beginning of output file''
                    111: .br
                    112: ``Error writing extension to output file''
                    113: .br
                    114: \fIkeycomp\fP couldn't write the output file.  Maybe the file system
                    115: is out of space.
                    116: 
                    117: ``Parse error at item <number> on line <number>:
                    118: .br
                    119:        <message>''
                    120: .br
                    121: The source file has a syntax error.  Possible <message>s include:
                    122: 
                    123: ``Line doesn't begin with key''
                    124: .br
                    125: The first few characters in the line, which should be a key number,
                    126: were not recognizable as an octal or decimal number.
                    127: 
                    128: ``Keycode is too big''
                    129: .br
                    130: The key at the beginning of the line was greater than 0377 (octal).
                    131: 
                    132: ``Line doesn't have 1 or 16 entries''
                    133: .br
                    134: After the key, more than one but less than 16 items were found.  Or 
                    135: no items were found at all.
                    136: 
                    137: ``Number after backslash is too big for a character constant''
                    138: .br
                    139: In a character constant of the form `\nnn', the octal number was
                    140: greater than 377 (octal).
                    141: 
                    142: ``Closing single quote not found''
                    143: .br
                    144: A single quote (') was encountered, but the end of the line was reached
                    145: before finding the matching closing single quote.
                    146: 
                    147: ``String is too long''
                    148: .br
                    149: More than 80 characters are not allowed between double quotes.
                    150: 
                    151: ``Closing double quote not found''
                    152: .br
                    153: A double quote (") was encountered, but the end of the line was reached
                    154: before finding the matching closing double quote.
                    155: 
                    156: ``Too many characters for single character constant''
                    157: .br
                    158: Too many characters appear between single quotes.  If you want to
                    159: bind a key to a multiple-character sequence, use double quotes.
                    160: 
                    161: ``Not a U, number, single- or double-quoted string''
                    162: .br
                    163: \fIkeycomp\fP can't parse this item; it is neither the letter U, nor an
                    164: octal or decimal number, nor a string enclosed in single or double
                    165: quotes.
                    166: .SH AUTHOR
                    167: Ron Newman, MIT Project Athena
                    168: .br
                    169: Copyright 1985, 1986, Massachusetts Institute of Technology.
                    170: .br
                    171: See \fIX(1)\fP for a full copyright notice.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.