[PATCH v3] XKB-Config.xml: update for current releases

Alan Coopersmith alan.coopersmith at oracle.com
Tue Nov 2 16:16:18 PDT 2010


- Document xorg.conf.d keyboard matches instead of kbd driver entries
  in xorg.conf
- Update to current xkb-config file names & paths, and link to the
  xkb-config project site
- Add an example of enabling the ctrl-alt-bksp zapping sequence
- Delete "Direct XKB Configuration" section, since that no longer works

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 general/input/XKB-Config.xml |  204 +++++++++++++++---------------------------
 1 files changed, 71 insertions(+), 133 deletions(-)

Incorporates changes from discussion with Matt Dew & Julien Cristau

diff --git a/general/input/XKB-Config.xml b/general/input/XKB-Config.xml
index 118f189..86fa22c 100644
--- a/general/input/XKB-Config.xml
+++ b/general/input/XKB-Config.xml
@@ -17,7 +17,7 @@
 	<surname>Pascal</surname>
       </author>
     </authorgroup>
-    <pubdate>25 November 2002</pubdate>
+    <pubdate>November 2010</pubdate>
 
     <abstract>
 
@@ -25,6 +25,12 @@
 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.
       </para>
+      <para>
+This version covers Xorg server versions 1.8 and later, used with the
+data files from the <ulink
+url="http://www.freedesktop.org/wiki/Software/XKeyboardConfig"
+>xkeyboard-config</ulink> project.
+      </para>
 
     </abstract>
 
@@ -40,6 +46,15 @@ you might need. Unless you have a completely atypical keyboard you really don't
 need to touch any of the xkb configuration files.
     </para>
 
+    <para>
+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.
+    </para>
+
   </sect1>
 
   <sect1>
@@ -98,13 +113,23 @@ files of rules to be used for keyboard mapping composition
     </para>
 
     <para>
-The proper rules file depends on your vendor. In reality, the commonest
-file of rules is <filename>xorg</filename>. For each rules file there is a
-description file named
+The rules file used depends on your system.  The rules files commonly
+used with Xorg are provided by the <ulink
+url="http://www.freedesktop.org/wiki/Software/XKeyboardConfig"
+>xkeyboard-config</ulink> project.
+On Linux systems, the <filename>evdev</filename> rules are most
+commonly used, on other systems the <filename>base</filename> 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.
+    </para>
+    <para>
+For each rules file there is a description file named
 <filename>&lt;<replaceable>vendor-rules</replaceable>&gt;.lst</filename>,
-for instance <filename>xorg.lst</filename> which is located in
+for instance <filename>base.lst</filename> which is located in
 the xkb configuration subdirectory <filename>rules</filename>
-(for example <filename>/etc/X11/xkb/rules</filename>).
+(for example <filename>/usr/share/X11/xkb/rules</filename>).
     </para>
 
     <sect2>
@@ -112,16 +137,16 @@ the xkb configuration subdirectory <filename>rules</filename>
 
       <para>
 Let's say you want to configure a PC-style American keyboard with 104
-keys as described in <filename>xorg.lst</filename>.  This can be done by simply
-writing several lines from below to your <filename>xorg.conf</filename>
-configuration file (previously known
-as <filename>/etc/X11/XF86Config-4</filename>
-or <filename>/etc/X11/XF86Config</filename>):
+keys as described in <filename>base.lst</filename>.  This can be done
+by simply writing several lines from below to a new configuration file
+in <filename>/etc/X11/xorg.conf.d</filename>, such
+as <filename>/etc/X11/xorg.conf.d/90-custom-kbd.conf</filename>.
 
- 	<screen>
-Section "InputDevice"
-    Identifier "Keyboard1"
-    Driver "kbd"
+
+	<screen>
+Section "InputClass"
+    Identifier "keyboard defaults"
+    MatchIsKeyboard "on"
 
     Option "XkbModel" "pc104"
     Option "XkbLayout" "us"
@@ -143,13 +168,35 @@ Of course, this can be also done at runtime using the utility
 The shell command loading the same keyboard mapping would look like:
 
 	<screen>
-setxkbmap -rules xorg -model pc104 -layout us -option ""
+setxkbmap -model pc104 -layout us -option ""
 	</screen>
 
 The configuration and the shell command would be very analogous
 for most other layouts (internationalized mappings).
       </para>
 
+      <para>
+If you wanted to enable the <keycombo action='simul'><keycap>Ctrl</keycap>
+<keycap>Alt</keycap><keycap>Backspace</keycap></keycombo> sequence to kill
+the X server by default, you could create a configuration snippet
+<filename>/etc/X11/xorg.conf.d/90-zap.conf</filename> containing:
+
+	<screen>
+Section "InputClass"
+    Identifier "keyboard defaults"
+    MatchIsKeyboard "on"
+
+    Option "XKbOptions" "terminate:ctrl_alt_bksp"
+EndSection
+	</screen>
+
+This would be equivalent to running the shell command:
+
+	<screen>
+setxkbmap -option "terminate:ctrl_alt_bksp"
+	</screen>
+      </para>
+
     </sect2>
 
     <sect2>
@@ -175,9 +222,9 @@ combination for switching among them.
 Then the configuration snippet could look like this:
 
 	<screen>
-Section "InputDevice"
-    Identifier "Keyboard1"
-    Driver "kbd"
+Section "InputClass"
+    Identifier "Logitech Cordless"
+    MatchIsKeyboard   "on"
 
     Option "XkbModel" "logicordless"
     Option "XkbLayout" "us,cz,de"
@@ -190,7 +237,7 @@ Of course, this can be also done at runtime using the utility
 The shell command loading the same keyboard mapping would look like:
 
 	<screen>
-setxkbmap -rules xorg -model logicordless -layout "us,cz,de" \
+setxkbmap -model logicordless -layout "us,cz,de" \
          -option "grp:alt_shift_toggle"
 	</screen>
 
@@ -208,9 +255,9 @@ the czech keyboard mapping to use another variant but basic.
 The configuration snippet then changes into:
 
 	<screen>
-Section "InputDevice"
-    Identifier "Keyboard1"
-    Driver "kbd"
+Section "InputClass"
+    Identifier "Logitech Cordless"
+    MatchIsKeyboard   "on"
 
     Option "XkbModel" "logicordless"
     Option "XkbLayout" "us,cz,de"
@@ -230,7 +277,7 @@ variant with an enhanced definition of the backslash key).
 Analogously, the loading runtime will change to:
 
 	<screen>
-setxkbmap -rules xorg -model logicordless -layout "us,cz,de" \
+setxkbmap -model logicordless -layout "us,cz,de" \
          -variant ",bksl," -option "grp:alt_shift_toggle"
 	</screen>
 
@@ -256,115 +303,6 @@ see the section starting with <quote><literal>! option</literal></quote> in the
   </sect1>
 
   <sect1>
-    <title>Direct XKB Configuration</title>
-
-    <para>
-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 <quote>brute force</quote>. You precisely need to know
-the structure and the meaning of all of used configuration components.
-    </para>
-
-    <para>
-This method also exposes all xkb configuration details directly into xorg.conf
-configuration file which is a not very fortunate fact.
-In rare occasions it may be needed, though. So how does it work?
-    </para>
-
-    <sect2>
-      <title>Basic Components</title>
-
-      <para>
-There are five basic components used to form a keyboard mapping:
-
-	<variablelist>
-	  <varlistentry>
-	    <term>key codes</term>
-	    <listitem><para>
-a translation of the scan codes produced by the keyboard into a
-suitable symbolic form
-	    </para></listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>types</term>
-	    <listitem><para>
-a specification of what various combinations of modifiers produce
-	    </para></listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>key symbols</term>
-	    <listitem><para>
-a translation of symbolic key codes into actual symbols
-	    </para></listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>geometry</term>
-	    <listitem><para>
-a description of physical keyboard geometry
-	    </para></listitem>
-	  </varlistentry>
-
-	  <varlistentry>
-	    <term>compatibility maps</term>
-	    <listitem><para>
-a specification of what action should
-each key produce in order to preserve compatibility with XKB-unware clients
-	    </para></listitem>
-	  </varlistentry>
-
-	</variablelist>
-
-      </para>
-
-    </sect2>
-
-    <sect2>
-      <title>Example Configuration</title>
-
-      <para>
-Look at the following example:
-
-	<screen>
-Section "InputDevice"
-    Identifier "Keyboard0"
-    Driver "kbd"
-
-    Option "XkbKeycodes" "xorg"
-    Option "XkbTypes"    "default"
-    Option "XkbSymbols"  "en_US(pc104)+de+swapcaps"
-    Option "XkbGeometry" "pc(pc104)"
-    Option "XkbCompat"   "basic+pc+iso9995"
-EndSection
-	</screen>
-
-      </para>
-
-      <para>
-This configuration sets the standard X server default interpretation of keyboard
-keycodes, and sets the default modifier types. The
-symbol table is composed 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 <keycap>Caps-lock</keycap> and <keycap>Control</keycap> keys is swapped.
-The standard keyboard 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.
-      </para>
-
-<!--
-    TODO: add information about layout shifting:
-    TODO: us+ru(winkeys):2+de:3
--->
-
-    </sect2>
-
-  </sect1>
-
-  <sect1>
     <title>Keymap XKB Configuration</title>
 
     <para>
-- 
1.7.3.2



More information about the xorg-devel mailing list