Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Alan Coopersmith
xkbcomp
Commits
262961d8
Commit
262961d8
authored
Nov 14, 2003
by
Kaleb Keithley Keithley
Browse files
Initial revision
parent
2af3aabf
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
README.config
0 → 100644
View file @
262961d8
The
XKB
Configuration
Guide
Kamil
Toman
,
Ivan
U
.
Pascal
25
November
2002
Abstract
This
document
describes
how
to
configure
XFree86
XKB
from
a
user
'
s
point
a
few
.
It
converts
basic
configuration
syntax
and
gives
also
a
few
examples
.
1
.
Overview
The
XKB
configuration
is
decomposed
into
a
number
of
components
.
Selecting
proper
parts
and
combining
them
back
you
can
achieve
most
of
configurations
you
might
need
.
Unless
you
have
a
completely
atypical
keyboard
you
really
don
'
t
need
to
touch
any
of
xkb
configuration
files
.
2
.
Selecting
XKB
Configuration
The
easiest
and
the
most
natural
way
how
to
specify
a
keyboard
mapping
is
tu
use
rules
component
.
As
its
name
suggests
it
describes
a
number
of
general
rules
how
to
combine
all
bits
and
pieces
into
a
valid
and
useful
keyboard
mapping
.
All
you
need
to
do
is
to
select
a
suitable
rules
file
and
then
to
feed
it
with
a
few
parameters
that
will
adjust
the
keyboard
behaviour
to
ful
-
fill
your
needs
.
The
parameters
are
:
o
XkbRules
-
files
of
rules
to
be
used
for
keyboard
mapping
composition
o
XkbModel
-
name
of
model
of
your
keyboard
type
o
XkbLayout
-
layout
(
s
)
you
intend
to
use
o
XkbVariant
-
variant
(
s
)
of
layout
you
intend
to
use
o
XkbOptions
-
extra
xkb
configuration
options
The
proper
rules
file
depends
on
your
vendor
.
In
reality
,
the
commonest
file
of
rules
is
xfree86
.
For
each
rules
file
there
is
a
description
file
named
<
vendor
-
rules
>.
lst
,
for
instance
xfree86
.
lst
which
is
located
in
xkb
configu
-
ration
subdirectory
rules
(
for
example
/
etc
/
X11
/
xkb
/
rules
).
2
.
1
Basic
Configuration
Let
'
s
say
you
want
to
configure
a
PC
style
America
keyboard
with
104
keys
as
described
in
xfree86
.
lst
.
It
can
be
done
by
simply
writing
several
lines
from
below
to
you
XFree86
configuration
file
(
often
found
as
/
etc
/
X11
/
XF86Config
-
4
or
/
etc
/
X11
/
XF86Config
):
Section
"InputDevice"
Identifier
"Keyboard1"
Driver
"Keyboard"
Option
"XkbModel"
"pc104"
Option
"XkbLayout"
"us"
Option
"XKbOptions"
""
EndSection
The
values
of
parameters
XkbModel
and
XkbLayout
are
really
not
surprising
.
The
parameters
XkbOptions
has
been
explicitly
set
to
empty
set
of
parameters
.
The
parameter
XkbVariant
has
been
left
out
.
That
means
the
default
variant
named
basic
is
loaded
.
Of
course
,
this
can
be
also
done
at
runtime
using
utility
setxkbmap
.
Shell
command
loading
the
same
keyboard
mapping
would
look
like
:
setxkbmap
-
rules
xfree86
-
model
pc104
-
layout
us
-
option
""
The
configuration
and
the
shell
command
would
be
very
analogical
for
most
other
layouts
(
internationalized
mappings
).
2
.
2
Advanced
Configuration
Since
XFree86
4
.
3
.
x
you
can
use
multi
-
layouts
xkb
configuration
.
What
does
it
mean
?
Basically
it
allows
to
load
up
to
four
different
keyboard
layouts
at
a
time
.
Each
such
layout
would
reside
in
its
own
group
.
The
groups
(
unlike
complete
keyboard
remapping
)
can
be
switched
very
fast
from
one
to
another
by
a
combination
of
keys
.
Let
'
s
say
you
want
to
configure
your
new
Logitech
cordless
desktop
keyboard
,
you
intend
to
use
three
different
layouts
at
the
same
time
-
us
,
czech
and
german
(
in
this
order
),
and
that
you
are
used
to
Alt
-
Shift
combination
for
switching
among
them
.
Then
the
configuration
snippet
could
look
like
this
:
Section
"InputDevice"
Identifier
"Keyboard1"
Driver
"Keyboard"
Option
"XkbModel"
"logicordless"
Option
"XkbLayout"
"us,cz,de"
Option
"XKbOptions"
"grp:alt_shift_toggle"
EndSection
Of
course
,
this
can
be
also
done
at
runtime
using
utility
setxkbmap
.
Shell
command
loading
the
same
keyboard
mapping
would
look
like
:
setxkmap
-
rules
xfree86
-
model
logicordless
-
layout
"us,cz,de"
\
-
option
"grp:alt_shift_toggle"
2
.
3
Even
More
Advanced
Configuration
Okay
,
let
'
s
say
you
are
more
demanding
.
You
do
like
the
example
above
but
you
want
it
to
change
a
bit
.
Let
'
s
imagine
you
want
the
czech
keyboard
mapping
to
use
another
variant
but
basic
.
The
configuration
snippet
then
changes
into
:
Section
"InputDevice"
Identifier
"Keyboard1"
Driver
"Keyboard"
Option
"XkbModel"
"logicordless"
Option
"XkbLayout"
"us,cz,de"
Option
"XkbVariant"
",bksl,"
Option
"XKbOptions"
"grp:alt_shift_toggle"
EndSection
That
'
s
seems
tricky
but
it
is
not
.
The
logic
for
settings
of
variants
is
the
same
as
for
layouts
,
that
means
the
first
and
the
third
variant
settings
are
left
out
(
set
to
basic
),
the
second
is
set
to
bksl
(
a
special
variant
with
an
enhanced
definition
of
the
backslash
key
).
Analogically
,
the
loading
runtime
will
change
to
:
setxkmap
-
rules
xfree86
-
model
logicordless
-
layout
"us,cz,de"
\
-
variant
",bksl,"
-
option
"grp:alt_shift_toggle"
2
.
4
Basic
Global
Options
See
rules
/*.
lst
files
.
3
.
Direct
XKB
Configuration
Generally
,
you
can
directly
prescribe
what
configuration
of
each
of
basic
xkb
components
should
be
used
to
form
the
resulting
keyboard
mapping
.
This
method
is
rather
"brute force"
.
You
precisely
need
to
know
the
structure
and
the
meaning
of
all
of
used
configuration
components
.
This
method
also
exposes
all
xkb
configuration
details
directly
into
XFree86
configuration
file
which
is
a
not
very
fortunate
fact
.
In
rare
occasions
it
may
be
needed
,
though
.
So
how
does
it
work
?
3
.
1
Basic
Components
There
are
five
basic
components
used
to
form
a
keyboard
mapping
:
o
key
codes
-
a
translation
of
the
scan
codes
produced
by
the
keyboard
into
a
suitable
symbolic
form
o
types
-
a
specification
of
what
various
combinations
of
modifiers
pro
-
duce
o
key
symbols
-
a
translation
of
symbolic
key
codes
into
actual
symbols
o
geometry
-
a
description
of
physical
keyboard
geometry
o
compatibility
maps
-
a
specification
of
what
action
should
each
key
pro
-
duce
in
order
to
preserve
compatibility
with
XKB
-
unware
clients
3
.
2
Example
Configuration
Look
at
the
following
example
:
Section
"InputDevice"
Identifier
"Keyboard0"
Driver
"Keyboard"
Option
"XkbKeycodes"
"xfree86"
Option
"XkbTypes"
"default"
Option
"XkbSymbols"
"en_US(pc104)+de+swapcaps"
Option
"XkbGeometry"
"pc(pc104)"
Option
"XkbCompat"
"basic+pc+iso9995"
EndSection
This
configuration
sets
the
standard
XFree86
default
interpretation
of
key
-
board
keycodes
,
sets
the
default
modificator
types
.
The
symbol
table
is
com
-
posed
of
extended
US
keyboard
layout
in
its
variant
for
pc
keyboards
with
104
keys
plus
all
keys
for
german
layout
are
redefined
respectively
.
Also
the
logical
meaning
of
Caps
-
lock
and
Control
keys
is
swapped
.
The
standard
key
-
board
geometry
(
physical
look
)
is
set
to
pc
style
keyboard
with
104
keys
.
The
compatibility
map
is
set
to
allow
basic
shifting
,
to
allow
Alt
keys
to
be
interpreted
and
also
to
allow
iso9995
group
shifting
.
4
.
Keymap
XKB
Configuration
It
is
the
formerly
used
way
to
configure
xkb
.
The
user
included
a
special
keymap
file
which
specified
the
direct
xkb
configuration
.
This
method
has
been
obsoleted
by
previously
described
rules
files
which
are
far
more
flexi
-
ble
and
allow
simpler
and
more
intuitive
syntax
.
It
is
preserved
merely
for
compatibility
reasons
.
Avoid
using
it
if
it
is
possible
.
Generated
from
XFree86
:
xc
/
programs
/
Xserver
/
hw
/
xfree86
/
doc
/
sgml
/
XKB
-
Config
.
sgml
,
v
1
.
2
2003
/
02
/
25
19
:
31
:
02
dawes
Exp
$
$
XFree86
:
xc
/
programs
/
xkbcomp
/
README
.
config
,
v
1
.
3
2003
/
02
/
25
21
:
32
:
33
dawes
Exp
$
README.enhancing
0 → 100644
View file @
262961d8
This diff is collapsed.
Click to expand it.
compat.h
0 → 100644
View file @
262961d8
/* $XFree86: xc/programs/xkbcomp/compat.h,v 1.1 2002/06/05 00:00:37 dawes Exp $ */
#ifndef COMPAT_H
#define COMPAT_H 1
extern
LookupEntry
groupNames
[];
#endif
/* COMPAT_H */
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment