KEYMAP(5) File Formats Manual KEYMAP(5)
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 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 0xE8 to
NR_SCAN_CODES, corresponding to the range of defined USB HID key codes,
which is the set of key codes that is to be provided by all keyboard
drivers), and each element is 2 bytes in length (see u16_t in type def-
initions). 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, corresponding to 8 and
16 bit values.
Keys: <minix/input.h>
This header file contains the list of keys, prefixed by a INPUT_KEY_
prefix. The K macro (see below) automatically adds the INPUT_KEY_ pre-
fix to the given key name. Input types from pages other than the key
page are not supported by TTY.
Macros: <minix/keymap.h>
K(k) - Key
Maps to the entry for the key in the bitmap
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.)
Similarly, some keys in column 0 have a N prefix to indicate that they
are affected by the Num Lock key.
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:
Modifier keys: LCTRL, RCTRL, LSHIFT, RSHIFT, LALT, RALT.
Special keys: HOME, END, UP, DOWN, LEFT, RIGHT, PGUP, PGDN, MID (nu-
meric '5'), MIN (only with A or C prefix), PLUS, INSRT, DEL.
Special keys affected by Num Lock: NHOME, NEND, ... NINSRT, NDEL.
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.
Creating/changing keyboard mapping
You can create your own keyboard mapping by copying one of the existing
keymap source files (Standard Minix: drivers/tty/keymaps/*.src) and
modifying the desired keys. Once this has been done, you need to recom-
pile 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 pressing 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 (
[email protected])
KEYMAP(5)