NAME
keymap - keyboard maps
SYNOPSIS
/etc/keymap
DESCRIPTION
/etc/keymap is the compressed mapping from keyboard scan
codes to ASCII. It is made from a keymap source file con-
sisting 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 genmap
utility.
Types (general): <sys/types.h>
<sys/types.h> defines the u8_t and u16_t types, correspond-
ing to 8 and 16 bit values.
Macros: <minix/keymap.h>
C(c) - Control
Maps to control code
A(c) - Alt
Sets the eight bit
CA(c) - Control-Alt
Short for A(C(c))
L(c) - Caps Lock
Adds Caps Lock effect
These macros are used in a keymap source file to help define
keys. So instead of writing 032 to put a CTRL-Z in the map
you write C('Z'). The 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.)
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:
Escape key and modifiers: EXT, CTRL, SHIFT, ALT.
Numeric keypad keys: HOME, END, UP, DOWN, LEFT, RIGHT,
PGUP, PGDN, MID (numeric '5'), PLUS, INSRT.
ALT + numpad key: AHOME, AEND, ..., AINSRT.
CTRL + numpad: CHOME, CEND, ..., CINSRT.
Lock keys: CALOCK (Caps Lock), NLOCK (Num Lock), SLOCK
(Scroll Lock).
Function keys: F1, ..., F12.
ALT - function key: AF1, ..., AF12.
CTRL - function key: CF1, ..., CF12.
SHIFT - function key: SF1, ..., SF12.
ALT - SHIFT - function key: ASF1, ..., ASF12.
There is one key definition that isn't a key at all: EXT-
KEY. 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.
Creating/changing keyboard mapping
You can create your own keyboard mapping by copying one of
the existing keymap source files (Standard Minix:
kernel/keymaps/*.src, Minix-vmd: 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:
cc -DKEYSRC=\"keymap.src\" genmap.c
After this, the keymap file can be generated by running:
a.out > keymap.map
The keymap can be loaded in the keyboard driver by:
loadkeys keymap.map
It is wise to first run loadkeys on one of the maps in
/usr/lib/keymaps so that you can easily revert back to a
known keymap with a few taps on the up-arrow key and press-
ing return. You will otherwise have to fix the keymap with
a faulty keymap loaded into the keyboard driver, which is no
fun.
When the keymap is to your satisfaction you can copy it to
/etc/keymap to have it loaded automatically at reboot.
FILES
/etc/keymap Default keymap file
SEE ALSO
loadkeys (1).
AUTHOR
Victor A. Rodriguez - El bit Fantasma (Bit-Man@Tasa.Com.AR)