168 lines
4.1 KiB
Groff
168 lines
4.1 KiB
Groff
|
.TH KEYMAP 5
|
||
|
.SH NAME
|
||
|
keymap \- keyboard maps
|
||
|
.SH SYNOPSIS
|
||
|
.B /etc/keymap
|
||
|
.SH DESCRIPTION
|
||
|
.B /etc/keymap
|
||
|
is the compressed mapping from keyboard scan codes to ASCII.
|
||
|
It is made from a keymap source file consisting of MAP_COLS columns
|
||
|
(MINIX assigns the value 6 to MAX_COLS, corresponding to key pressed,
|
||
|
key+SHIFT, key+LEFT_ALT, key+RIGHT_ALT, key+ALT+SHIFT and key+CTRL) and
|
||
|
NR_SCAN_CODES rows (MINIX assigns the value 0x80 to NR_SCAN_CODES,
|
||
|
corresponding to the number of scan codes to be provided by the keyboard),
|
||
|
and each element is 2 bytes in length (see u16_t in type definitions).
|
||
|
The low order byte corresponds to the character represented by the scan
|
||
|
code, and the high order byte corresponds to the special meaning (when
|
||
|
CAPS LOCK has effect, if it is a function key, etc.), which is converted to
|
||
|
binary keymap format using the
|
||
|
.BR genmap
|
||
|
utility.
|
||
|
.PP
|
||
|
.SS "Types (general): <sys/types.h>"
|
||
|
<sys/types.h> defines the
|
||
|
.B u8_t
|
||
|
and
|
||
|
.B u16_t
|
||
|
types, corresponding to 8 and 16 bit values.
|
||
|
.SS "Macros: <minix/keymap.h>"
|
||
|
.TP
|
||
|
.BI "C(" c ") - Control"
|
||
|
Maps to control code
|
||
|
.TP
|
||
|
.BI "A(" c ") - Alt"
|
||
|
Sets the eight bit
|
||
|
.TP
|
||
|
.BI "CA(" c ") - Control-Alt"
|
||
|
Short for
|
||
|
.BI "A(C(" c "))"
|
||
|
.TP
|
||
|
.BI "L(" c ") - Caps Lock"
|
||
|
Adds Caps Lock effect
|
||
|
.PP
|
||
|
These macros are used in a keymap source file to help define keys. So
|
||
|
instead of writing
|
||
|
.B 032
|
||
|
to put a CTRL-Z in the map you write
|
||
|
.BR "C('Z')" .
|
||
|
The
|
||
|
.BI "L(" c ")"
|
||
|
macro is used in column 0 to tell that the Caps Lock key is active for this
|
||
|
key. (Caps Lock should only have effect on letters.)
|
||
|
.SS "Definitions: <minix/keymap.h>"
|
||
|
<minix/keymap.h> contains a large number of definitions for special keys,
|
||
|
like function keys, and keys on the numeric keypad. They are:
|
||
|
.PP
|
||
|
Escape key and modifiers:
|
||
|
.BR EXT ,
|
||
|
.BR CTRL ,
|
||
|
.BR SHIFT ,
|
||
|
.BR ALT .
|
||
|
.PP
|
||
|
Numeric keypad keys:
|
||
|
.BR HOME ,
|
||
|
.BR END ,
|
||
|
.BR UP ,
|
||
|
.BR DOWN ,
|
||
|
.BR LEFT ,
|
||
|
.BR RIGHT ,
|
||
|
.BR PGUP ,
|
||
|
.BR PGDN ,
|
||
|
.BR MID " (numeric '5'),"
|
||
|
.BR PLUS ,
|
||
|
.BR INSRT .
|
||
|
.PP
|
||
|
ALT + numpad key:
|
||
|
.BR AHOME ,
|
||
|
.BR AEND ", ...,"
|
||
|
.BR AINSRT .
|
||
|
.PP
|
||
|
CTRL + numpad:
|
||
|
.BR CHOME ,
|
||
|
.BR CEND ", ...,"
|
||
|
.BR CINSRT .
|
||
|
.PP
|
||
|
Lock keys:
|
||
|
.BR CALOCK " (Caps Lock),"
|
||
|
.BR NLOCK " (Num Lock),"
|
||
|
.BR SLOCK " (Scroll Lock)."
|
||
|
.PP
|
||
|
Function keys:
|
||
|
.BR F1 ", ...,"
|
||
|
.BR F12 .
|
||
|
.PP
|
||
|
ALT - function key:
|
||
|
.BR AF1 ", ...,"
|
||
|
.BR AF12 .
|
||
|
.PP
|
||
|
CTRL - function key:
|
||
|
.BR CF1 ", ...,"
|
||
|
.BR CF12 .
|
||
|
.PP
|
||
|
SHIFT - function key:
|
||
|
.BR SF1 ", ...,"
|
||
|
.BR SF12 .
|
||
|
.PP
|
||
|
ALT - SHIFT - function key:
|
||
|
.BR ASF1 ", ...,"
|
||
|
.BR ASF12 .
|
||
|
.PP
|
||
|
There is one key definition that isn't a key at all:
|
||
|
.BR EXTKEY .
|
||
|
This keycode is sent by the keyboard as an indicator that the next keycode
|
||
|
is special. For instance both ALT keys have the same keycode, but the right
|
||
|
ALT key is sent by the keyboard preceded by the EXTKEY keycode. The same is
|
||
|
true for the '/' key on the numeric pad versus the other '/' key on the US
|
||
|
keyboard. (On other keyboards this key may have a different symbol.) The
|
||
|
keyboard driver knows that a different key is presses if it is preceded by
|
||
|
EXTKEY.
|
||
|
.SS "Creating/changing keyboard mapping"
|
||
|
You can create your own keyboard mapping by copying one of the existing
|
||
|
keymap source files (Standard Minix:
|
||
|
.BR kernel/keymaps/*.src ,
|
||
|
Minix-vmd:
|
||
|
.BR kernel/ibm/keymaps/*.src )
|
||
|
and modifying the desired keys. Once this has been done, you need to
|
||
|
recompile the genmap.c file, either by adding a new entry to the Makefile,
|
||
|
or by running the following commands:
|
||
|
.PP
|
||
|
.RS
|
||
|
.ft B
|
||
|
cc -DKEYSRC=\e"\fIkeymap\fP.src\e" genmap.c
|
||
|
.ft P
|
||
|
.RE
|
||
|
.PP
|
||
|
After this, the
|
||
|
.BR keymap
|
||
|
file can be generated by running:
|
||
|
.PP
|
||
|
.RS
|
||
|
.BI "a.out > " keymap .map
|
||
|
.RE
|
||
|
.PP
|
||
|
The keymap can be loaded in the keyboard driver by:
|
||
|
.PP
|
||
|
.RS
|
||
|
.BI "loadkeys " keymap .map
|
||
|
.RE
|
||
|
.PP
|
||
|
It is wise to first run
|
||
|
.B loadkeys
|
||
|
on one of the maps in
|
||
|
.B /usr/lib/keymaps
|
||
|
so that you can easily revert back to a known keymap with a few taps on the
|
||
|
up-arrow key and pressing return. You will otherwise have to fix the keymap
|
||
|
with a faulty keymap loaded into the keyboard driver, which is no fun.
|
||
|
.PP
|
||
|
When the keymap is to your satisfaction you can copy it to
|
||
|
.B /etc/keymap
|
||
|
to have it loaded automatically at reboot.
|
||
|
.SH FILES
|
||
|
.TP 15
|
||
|
.B /etc/keymap
|
||
|
Default keymap file
|
||
|
.SH "SEE ALSO"
|
||
|
.B loadkeys (1).
|
||
|
.SH AUTHOR
|
||
|
Victor A. Rodriguez - El bit Fantasma (Bit-Man@Tasa.Com.AR)
|