042aae5043
* XKB-Config(7), XKB-Enhancing(7): user-level documentation for XKB configuration; not perfect, but the best available. * xtrans(3): a library actively maintained upstream. * libXmu and libXext: Many libraries are effectively frozen upstream. According to matthieu@, the documentation of libXmu and libXext is among the most valuable of those. Feedback and OK matthieu@.
240 lines
6.9 KiB
Groff
240 lines
6.9 KiB
Groff
.\" automatically generated with docbook2mdoc XKB-Config.xml
|
|
.Dd November 2010
|
|
.Dt XKB-CONFIG 7
|
|
.Os
|
|
.Sh NAME
|
|
.Nm XKB-Config
|
|
.Nd The XKB Configuration Guide
|
|
.Sh ABSTRACT
|
|
This document describes how to configure Xorg XKB from a user's point
|
|
of view.
|
|
It covers basic configuration syntax and gives also a few examples.
|
|
.Pp
|
|
This version covers Xorg server versions 1.8 and later, used with the
|
|
data files from the
|
|
.Lk http://www.freedesktop.org/wiki/Software/XKeyboardConfig xkeyboard-config
|
|
project.
|
|
.Sh OVERVIEW
|
|
The XKB configuration is decomposed into a number of components.
|
|
Selecting
|
|
proper parts and combining them back you can achieve most of the configurations
|
|
you might need.
|
|
Unless you have a completely atypical keyboard you really don't
|
|
need to touch any of the xkb configuration files.
|
|
.Pp
|
|
Some desktop environments now provide integrated graphical configuration
|
|
tools for setting XKB configuration as part of your desktop session.
|
|
The
|
|
instructions in this document are provided for those without such support,
|
|
those who need to configure XKB before the session startup (such as at the
|
|
login screen), or those who need to perform more advanced configuration
|
|
than those tools provide.
|
|
.Sh SELECTING XKB CONFIGURATION
|
|
The easiest and the most natural way to specify a keyboard mapping is to use
|
|
the
|
|
.Ql rules
|
|
component.
|
|
As its name suggests it describes a number of
|
|
general rules 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
|
|
fulfill your needs.
|
|
.Pp
|
|
The parameters are:
|
|
.Bl -tag -width Ds
|
|
.It Fl XkbRules
|
|
files of rules to be used for keyboard mapping composition
|
|
.It Fl XkbModel
|
|
name of the model of your keyboard type
|
|
.It Fl XkbLayout
|
|
layout(s) you intend to use
|
|
.It Fl XkbVariant
|
|
variant(s) of the layout you intend to use
|
|
.It Fl XkbOptions
|
|
extra xkb configuration options
|
|
.El
|
|
.Pp
|
|
The rules file used depends on your system.
|
|
The rules files commonly
|
|
used with Xorg are provided by the
|
|
.Lk http://www.freedesktop.org/wiki/Software/XKeyboardConfig xkeyboard-config
|
|
project.
|
|
On Linux systems, the
|
|
.Pa evdev
|
|
rules are most
|
|
commonly used, on other systems the
|
|
.Pa base
|
|
rules
|
|
are used.
|
|
Some additional rules files exist for historical reasons,
|
|
but are no longer widely used.
|
|
In general, it's best to simply not
|
|
specify the rules file, in order to use the default rules selected
|
|
automatically by the X server.
|
|
.Pp
|
|
For each rules file there is a description file named
|
|
.Pa < Ns Ar vendor-rules Ns > . Ns lst ,
|
|
for instance
|
|
.Pa base.lst
|
|
which is located in
|
|
the xkb configuration subdirectory
|
|
.Pa rules
|
|
(for example
|
|
.Pa /usr/share/X11/xkb/rules ) .
|
|
.Ss Basic Configuration
|
|
Let's say you want to configure a PC-style American keyboard with 104
|
|
keys as described in
|
|
.Pa base.lst .
|
|
This can be done
|
|
by simply writing several lines from below to a new configuration file
|
|
in
|
|
.Pa /etc/X11/xorg.conf.d ,
|
|
such
|
|
as
|
|
.Pa /etc/X11/xorg.conf.d/90-custom-kbd.conf .
|
|
.Bd -literal
|
|
Section "InputClass"
|
|
Identifier "keyboard defaults"
|
|
MatchIsKeyboard "on"
|
|
Option "XkbModel" "pc104"
|
|
Option "XkbLayout" "us"
|
|
Option "XKbOptions" ""
|
|
EndSection
|
|
.Ed
|
|
.Pp
|
|
The values of
|
|
.Fl XkbModel
|
|
and
|
|
.Fl XkbLayout
|
|
are
|
|
really not surprising.
|
|
The
|
|
.Fl XkbOptions
|
|
has been explicitly set to the empty set of parameters.
|
|
The
|
|
.Fl XkbVariant
|
|
option has been left out.
|
|
That means the default variant named
|
|
.Ql basic
|
|
is loaded.
|
|
.Pp
|
|
Of course, this can be also done at runtime using the utility
|
|
.Nm setxkbmap .
|
|
The shell command loading the same keyboard mapping would look like:
|
|
.Bd -literal
|
|
setxkbmap -model pc104 -layout us -option ""
|
|
.Ed
|
|
.Pp
|
|
The configuration and the shell command would be very analogous
|
|
for most other layouts (internationalized mappings).
|
|
.Pp
|
|
If you wanted to enable the
|
|
.Sy Ctrl
|
|
.Sy Alt Ns Sy Backspace
|
|
sequence to kill
|
|
the X server by default, you could create a configuration snippet
|
|
.Pa /etc/X11/xorg.conf.d/90-zap.conf
|
|
containing:
|
|
.Bd -literal
|
|
Section "InputClass"
|
|
Identifier "keyboard defaults"
|
|
MatchIsKeyboard "on"
|
|
Option "XKbOptions" "terminate:ctrl_alt_bksp"
|
|
EndSection
|
|
.Ed
|
|
.Pp
|
|
This would be equivalent to running the shell command:
|
|
.Bd -literal
|
|
setxkbmap -option "terminate:ctrl_alt_bksp"
|
|
.Ed
|
|
.Ss Advanced Configuration
|
|
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.
|
|
.Pp
|
|
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
|
|
.Sy Alt Ns Sy Shift
|
|
combination for switching among them.
|
|
.Pp
|
|
Then the configuration snippet could look like this:
|
|
.Bd -literal
|
|
Section "InputClass"
|
|
Identifier "Logitech Cordless"
|
|
MatchIsKeyboard "on"
|
|
Option "XkbModel" "logicordless"
|
|
Option "XkbLayout" "us,cz,de"
|
|
Option "XKbOptions" "grp:alt_shift_toggle"
|
|
EndSection
|
|
.Ed
|
|
.Pp
|
|
Of course, this can be also done at runtime using the utility
|
|
.Nm setxkbmap .
|
|
The shell command loading the same keyboard mapping would look like:
|
|
.Bd -literal
|
|
setxkbmap -model logicordless -layout "us,cz,de" \e
|
|
-option "grp:alt_shift_toggle"
|
|
.Ed
|
|
.Ss 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:
|
|
.Bd -literal
|
|
Section "InputClass"
|
|
Identifier "Logitech Cordless"
|
|
MatchIsKeyboard "on"
|
|
Option "XkbModel" "logicordless"
|
|
Option "XkbLayout" "us,cz,de"
|
|
Option "XkbVariant" ",bksl,"
|
|
Option "XKbOptions" "grp:alt_shift_toggle" EndSection
|
|
.Ed
|
|
.Pp
|
|
That 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
|
|
.Ql basic ) ,
|
|
the second is set to
|
|
.Ql bksl
|
|
(a special
|
|
variant with an enhanced definition of the backslash key).
|
|
.Pp
|
|
Analogously, the loading runtime will change to:
|
|
.Bd -literal
|
|
setxkbmap -model logicordless -layout "us,cz,de" \e
|
|
-variant ",bksl," -option "grp:alt_shift_toggle"
|
|
.Ed
|
|
.Ss Basic Global Options
|
|
For a list of available options, with a short description of what they do,
|
|
see the section starting with
|
|
.Dq Li ! option
|
|
in the
|
|
.Pa rules/*.lst
|
|
files.
|
|
.Sh KEYMAP XKB CONFIGURATION
|
|
Keymap configuration is the way formerly used 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 flexible and allow simpler and more
|
|
intuitive syntax.
|
|
It is preserved merely for compatibility reasons and
|
|
should be avoided if possible.
|
|
.Sh AUTHORS
|
|
.An -nosplit
|
|
X Version 11, Release 6
|
|
.An -split
|
|
.An Kamil Toman
|
|
.An Ivan U. Pascal
|