freebsd-dev/usr.sbin/kbdcontrol/kbdmap.5
Ed Schouten b05f9c86d1 Make the keyboard layer Unicode aware.
Just take keyent_t to use an u_int to store the Unicode codepoints.
Unfortunately the keymap is now too big to be loaded using an ioctl
argument, so change the ioctl to pick a pointer.

This change breaks kbdcontrol ABI. It doesn't break X11, because X11
doesn't do anything with syscons keymaps. It just switches the device
out of K_XLATE.

Obtained from:	//depot/user/ed/newcons/...
2009-09-19 17:56:26 +00:00

327 lines
6.5 KiB
Groff

.\" Copyright (c) 2000
.\" David Malone
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd January 29, 2008
.Dt KBDMAP 5
.Os
.Sh NAME
.Nm kbdmap
.Nd keyboard map file format for kbdcontrol
.Sh SYNOPSIS
.Nm
.Sh DESCRIPTION
A
.Nm
file describes how the keys on a keyboard should behave.
These files can be loaded
using
.Xr kbdcontrol 1 ,
or
.Xr kbdmap 1
can be used to select one of the default
.Nm
files interactively.
A
.Nm
file can be specified in
.Xr rc.conf 5 ,
to be loaded
at boot time.
The current keymap may also be printed using
.Xr kbdcontrol 1 .
.Pp
Each line in the file
can describe a key or an accent.
A
.Ql #
character begins a comment,
which extends to the end of the line.
.Pp
The description of a key
begins with the scancode for that key.
Then the effect of the key
under combinations of
shift,
control
and alt
are listed in the following order:
no modifier,
shift,
control,
control and shift,
alt,
alt and shift,
alt and control,
alt and control and shift.
The action of the key
under each modifier can be:
.Bl -tag -width Ar
.It ' Ns Ar symbol Ns No '
The symbol the key should produce,
in single quotes.
.It Ar decnum
The
.Tn Unicode
value to produce
as a decimal number
(see
.Xr ascii 7 ) .
For example, 32 for space.
.It 0x Ns Ar hexnum
The
.Tn Unicode
value to produce
as a hexadecimal number.
For example, 0x20 for space.
.It Ar ctrlname
One of the standard names
for the
.Tn ASCII
control characters:
nul,
soh,
stx,
etx,
eot,
enq,
ack,
bel,
bs,
ht,
nl,
vt,
np,
cr,
so,
si,
dle,
dc1,
dc2,
dc3,
dc4,
nak,
syn,
etb,
can,
em,
sub,
esc,
fs,
gs,
rs,
ns,
us,
sp,
del.
.It Ar accentname
By giving one of the accent names,
the next key pressed will produce
an accented character
in accordance with that accent.
See the description of accents below.
The accent names are:
dgra,
dacu,
dcir,
dtil,
dmac,
dbre,
ddot,
duml,
ddia,
dsla,
drin,
dced,
dapo,
ddac,
dogo,
dcar.
.It fkey Ns Ar N
Act as the
.Ar N Ns No th
function key,
where
.Ar N
is a decimal number in the range from 1 to 96.
Refer to the
.Xr atkbd 4
manual page for a list of predefined function keys.
You can use the
.Fl f
option of the
.Xr kbdcontrol 1
utility to assign arbitrary strings to function keys.
.It lshift
Act as left shift key.
.It rshift
Act as right shift key.
.It clock
Act as caps lock key.
.It nlock
Act as num lock key.
.It slock
Act as scroll lock key.
.It lalt|alt
Act as left alt key.
.It btab
Act as backwards tab.
.It lctrl|ctrl
Act as left control key.
.It rctrl
Act as right control key.
.It ralt
Act as right alt (altgr) key.
.It alock
Act as alt lock key.
.It ashift
Act as alt shift key.
.It meta
Act as meta key.
.It lshifta|shifta
Act as left shift key / alt lock.
.It rshifta
Act as right shift key / alt lock.
.It lctrla|ctrla
Act as left ctrl key / alt lock.
.It rctrla
Act as right ctrl key / alt lock.
.It lalta|alta
Act as left alt key / alt lock.
.It ralta
Act as right alt key / alt lock.
.It nscr
Act as switch to next screen.
.It pscr
Act as switch to previous screen.
.It scr Ns Ar N
Switch to screen
.Ar N ,
where
.Ar N
is a decimal number.
.It boot
Reboot the machine.
.It halt
Halt the machine.
.It pdwn
Halt the machine
and attempt to power it down.
.It debug
Call the debugger.
.It susp
Use APM to suspend power.
.It saver
Activate screen saver
by toggling between splash/text screen.
.It panic
Panic the system.
The
.Xr sysctl 8
variable
.Va machdep.enable_panic_key
must be set to 1 to enable this feature.
.It paste
Act as mouse buffer paste.
.El
.Pp
Finally,
to complete the description of a key,
a flag which describes
the effect of caps lock and num lock
on that key is given.
The flag can be
.Ql C
to indicate that caps lock affects the key,
.Ql N
to indicate that num lock affects the key,
.Ql B
to indicate that both
caps lock and num lock affects the key,
or
.Ql O
to indicate that neither affects the key.
.Pp
An accent key works
by modifying the behavior
of the next key pressed.
The description of an accent begins
with one of the accent names
given above.
This is followed
by the symbol for the accent,
given in single quotes or
as a decimal or hexadecimal
.Tn Unicode
value.
This symbol will be produced
if the accent key is pressed and
then the space key is pressed.
.Pp
The description of the accent key
continues with a list showing
how it modifies various symbols,
by giving pairs made up of the normal symbol and
the modified symbol
enclosed in parentheses.
Both symbols in a pair can be given
in either single quotes or
as decimal or
hexadecimal
.Tn Unicode
values.
.Pp
For example,
consider the following extract from a
.Nm :
.Bd -literal -offset indent
041 dgra 172 nop nop '|' '|' nop nop O
dgra '`' ( 'a' 224 ) ( 'A' 192 ) ( 'e' 232 ) ( 'E' 200 )
( 'i' 236 ) ( 'I' 204 ) ( 'o' 242 ) ( 'O' 210 )
( 'u' 249 ) ( 'U' 217 )
.Ed
This extract
configures the backtick key on a UK keyboard
to act as a grave accent key.
Pressing backtick followed by space
produces a backtick, and
pressing a backtick followed by a vowel
produces the ISO-8859-1 symbol
for that vowel with a grave accent.
.Sh FILES
.Bl -tag -width /usr/share/syscons/keymaps/* -compact
.It Pa /usr/share/syscons/keymaps/*
standard keyboard map files
.El
.Sh SEE ALSO
.Xr kbdcontrol 1 ,
.Xr kbdmap 1 ,
.Xr keyboard 4 ,
.Xr syscons 4 ,
.Xr ascii 7
.Sh HISTORY
This manual page first appeared in
.Fx 4.2 .