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)
 |