[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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 (&aelig;); 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
+    (&acute;) <strong>glyph</strong> followed by the <code>A</code> key would
+    produce an "a" with an acute accent (&aacute;), whereas pressing the acute
+    accent ("dead acute") key followed by a space would produce the acute accent
+    by itself (&acute;); 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 &mdash; 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: