X Strike Force XFree86 SVN commit: r1840 - in trunk/debian: . local
Author: branden
Date: 2004-09-21 15:49:51 -0500 (Tue, 21 Sep 2004)
New Revision: 1840
Modified:
trunk/debian/CHANGESETS
trunk/debian/changelog
trunk/debian/local/FAQ.xhtml
Log:
Add FAQ entry: How does the keyboard work in the X Window System?
Modified: trunk/debian/CHANGESETS
===================================================================
--- trunk/debian/CHANGESETS 2004-09-21 18:21:04 UTC (rev 1839)
+++ trunk/debian/CHANGESETS 2004-09-21 20:49:51 UTC (rev 1840)
@@ -53,4 +53,7 @@
it messed up now? (Closes: #259740)
1823, 1832, 1835, 1836, 1838, 1839
+Add FAQ entry: How does the keyboard work in the X Window System?
+ 1840
+
vim:set ai et sts=4 sw=4 tw=80:
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2004-09-21 18:21:04 UTC (rev 1839)
+++ trunk/debian/changelog 2004-09-21 20:49:51 UTC (rev 1840)
@@ -39,12 +39,14 @@
* In the Xsession script, attempt to create a file of non-zero length in
/tmp; a full filesystem can cause mysterious X session failures.
+ * Add FAQ entry: How does the keyboard work in the X Window System?
+
Changes by Fabio M. Di Nitto:
* Create debian/tmp/usr/X11R6/lib/X11/doc when NOT_BUILDING_XFREE86_X_SERVER
is defined. Fixes FTBFS on s390.
- -- Branden Robinson <branden@debian.org> Tue, 21 Sep 2004 13:08:05 -0500
+ -- Branden Robinson <branden@debian.org> Tue, 21 Sep 2004 15:49:27 -0500
xfree86 (4.3.0.dfsg.1-7) unstable; urgency=high
Modified: trunk/debian/local/FAQ.xhtml
===================================================================
--- trunk/debian/local/FAQ.xhtml 2004-09-21 18:21:04 UTC (rev 1839)
+++ trunk/debian/local/FAQ.xhtml 2004-09-21 20:49:51 UTC (rev 1840)
@@ -59,6 +59,8 @@
<li><a href="#deffocus">What is window focus?</a></li>
<li><a href="#defresourc">What are X resources?</a></li>
<li><a href="#defappdef">What are app-defaults?</a></li>
+<li><a href="#keyboard">How does the keyboard work in the X Window
+ System?</a></li>
</ul>
<h2><a href="#specquest">Specific Questions</a></h2>
@@ -782,6 +784,131 @@
default settings for a client. They work as if they were part of the client
binary itself.</p>
+<h3><a id="keyboard">How does the keyboard work in the X Window System?</a></h3>
+
+<!--
+<p>First of all, please note that this is a highly simplified treatment of the
+subject.</p>
+
+<p>Let's begin with a glossary to which you can refer.</p>
+-->
+
+<p><em>It will take some time to write a comprehensive entry on this subject,
+but in the meantime it is hoped that the following glossary is useful.</em></p>
+
+<dl>
+ <dt><strong>compose key</strong></dt>
+ <dd>a key which causes the next two keys pressed to be treated specially
+ such that they cause a single character to be printed (this is implemented
+ in software); for example, pressing <kbd>Compose + A + E</kbd> would produce
+ the ae ligature (æ); valid compose sequences are defined in
+ locale-specific data files such as <code
+ class="filespec">/usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose</code></dd>
+ <dt><strong>dead key</strong></dt>
+ <dd>a key, typically engraved with an accent, diacritic, or other mark which
+ produces no character by itself but instead modifies the character generated
+ by the next key pressed (this is implemented in software); for example, on a
+ keyboard with dead keys, pressing a key engraved with an acute accent
+ (´) <strong>glyph</strong> followed by the <code>A</code> key would
+ produce an "a" with an acute accent (á), whereas pressing the acute
+ accent ("dead acute") key followed by a space would produce the acute accent
+ by itself (´); contrast with <strong>spacing key</strong></dd>
+ <dt><strong>engraving</strong></dt>
+ <dd>the visible marking(s) on a <strong>keycap</strong>, which indicate the
+ key's behavior via a <strong>glyph</strong> (such as <code>Q</code> or
+ <code>\</code>) or term describing a control function (such as
+ <code>Enter</code>, <code>Shift</code>, or <code>Scroll Lock</code>)</dd>
+ <dt><strong>keycap</strong></dt>
+ <dd>the surface of a key; the part of a key which is pressed and bears
+ <strong>engraving</strong>s</dd>
+ <dt><strong>keycode</strong></dt>
+ <dd>a <strong>scan code</strong> after it has undergone translation (if any)
+ by the operating system and X server</dd>
+ <dt><strong>keymap</strong></dt>
+ <dd>a complete description of a keyboard device which is used by the X
+ server to translate <strong>keycodes</strong> into <strong>keysyms</strong>
+ and <strong>modifier masks</strong>; when XKB is used, this includes
+ <strong>compat</strong>, <strong>geometry</strong>,
+ <strong>keycodes</strong>, <strong>symbols</strong>, and
+ <strong>types</strong> information</dd>
+ <dt><strong>keysym</strong></dt>
+ <dd>a symbolic name for a key, independent of the operating system and
+ keyboard hardware, which identifies a key to X clients</dd>
+ <dt><strong>layout</strong></dt>
+ <dd>an <strong>XKB</strong> configuration parameter that identifies the
+ territorial specifics of a keyboard model; two given keyboards may have the
+ same physical key arrangment but different <strong>engraving</strong>s on
+ the keys, each keyboard customized to a different region or territory</dd>
+ <dt><strong>model</strong></dt>
+ <dd>an <strong>XKB</strong> configuration parameter that identifies what
+ physical model of a keyboard is in use; used to determine what
+ <strong>keycodes</strong> are supported by the model and what its
+ <strong>geometry</strong> is</dd>
+ <dt><strong>modifier</strong></dt>
+ <dd>a flag (up or down) which can influence how <strong>keycode</strong>s
+ are translated to <strong>keysym</strong>s, and how X clients interpret key
+ events</dd>
+ <dt><strong>modifier mask</strong></dt>
+ <dd>a list of <strong>modifier</strong> states; these are
+ bitwise-<code>OR</code>ed together as the "state" value reported with key
+ events by the <code
+ class="command">xev</code> command</dd>
+ <dt><strong>options</strong></dt>
+ <dd>an <strong>XKB</strong> configuration parameter that permits the user to
+ customize aspects of keyboard behavior that are not specific to a
+ <strong>layout</strong>; for example, <code>ctrl:nocaps</code> is a popular
+ option to make the <code>Caps Lock</code> key produce the
+ <code>Control_L</code> <strong>keysym</strong>; that is, work like an
+ additional (left) <code>Control</code> key</dd>
+ <dt><strong>rules</strong></dt>
+ <dd>an <strong>XKB</strong> configuration parameter that identifies a data
+ file (such as <code>xfree86</code>) describing how <strong>model</strong>,
+ <strong>layout</strong>, <strong>variant</strong>, and
+ <strong>options</strong> specifications are translated into
+ <strong>compat</strong>, <strong>geometry</strong>,
+ <strong>keycodes</strong>, <strong>symbols</strong>, and
+ <strong>types</strong> information</dd>
+ <dt><strong>scan code</strong></dt>
+ <dd>a number which uniquely identifies a key on the keyboard, and which is
+ transmitted by the hardware to the operating system; scan codes tend to be
+ specific to the keyboard hardware</dd>
+ <dt><strong>spacing key</strong></dt>
+ <dd>a key which causes a character corresponding to the
+ <strong>glyph</strong> engraved on it to be printed; contrast with
+ <strong>dead key</strong></dd>
+ <dt><strong>variant</strong></dt>
+ <dd>an <strong>XKB</strong> configuration parameter that allows for
+ differing behavior of certain keys within a given <strong>layout</strong>;
+ for example, <code>nodeadkeys</code> is a popular variant in many European
+ <strong>layout</strong>s — it causes <strong>dead key</strong>s to be
+ treated as <strong>spacing key</strong>s</dd>
+ <dt><strong>XKB</strong></dt>
+ <dd>the X KEYBOARD extension, an extension to the X protocol providing a
+ more sophisticated means of describing keyboard events than that supported
+ by the core protocol</dd>
+<!--
+ <dt><strong>compat</strong></dt>
+ <dt><strong>geometry</strong></dt>
+ <dt><strong>keycodes</strong></dt>
+ <dt><strong>symbols</strong></dt>
+ <dt><strong>types</strong></dt>
+-->
+</dl>
+
+<p>When the XFree86 X server is started, it calls the <code
+class="command">setxkbmap</code> utility to compile a keymap from the XKB
+configuration options (<code>XkbRules</code>, <code>XkbModel</code>,
+<code>XkbLayout</code>, <code>XkbVariant</code>, and <code>XkbOptions</code>)
+from its configuration file (usually <code
+class="filespec">/etc/X11/XF86Config-4</code>). The XFree86 X server can be
+told to disable XKB with the option <code>XkbDisable</code>. Furthermore, X
+servers in general can be told not to load an XKB keymap with the option
+<kbd>-noloadxkb</kbd>, or to load a pre-compiled keymap with the
+<kbd>-xkbmap</kbd> option. This last option is useful for machines configured
+as X terminals, since they enable the X server to do without the <code
+class="command">setxkbmap</code> command, which in turn depends on <code
+class="command">xkbcomp</code>, the XKB data files, and the X libraries.</p>
+
<h2><a id="specquest" class="bigtext">Specific Questions</a></h2>
<h3><a id="custxsess">How do I customize my X session?</a></h3>
@@ -2680,6 +2807,10 @@
<p><em>Thanks to Denis Barbier for contributing much of this entry.</em></p>
+<p><em>Please see the glossary in <a href="#keyboard">"How does the keyboard work
+in the X Window System?"</a> above for explanantions of unfamiliar
+terms.</em></p>
+
<p>Many users of the X Window System, particularly outside the United States,
find that they need support for multiple <em>groups</em> on their keyboards.
One or more of the keys on their keyboards are engraved with more than two
Reply to: