X Strike Force XFree86 SVN commit: r1956 - in trunk/debian: . local
Author: branden
Date: 2004-10-15 15:53:23 -0500 (Fri, 15 Oct 2004)
New Revision: 1956
Modified:
trunk/debian/CHANGESETS
trunk/debian/changelog
trunk/debian/local/FAQ.xhtml
Log:
Update FAQ entry: My keyboard configuration worked with XFree86 4.2; why
is it messed up now?
Update FAQ entry: How does the keyboard work in the X Window System?
Modified: trunk/debian/CHANGESETS
===================================================================
--- trunk/debian/CHANGESETS 2004-10-15 19:04:50 UTC (rev 1955)
+++ trunk/debian/CHANGESETS 2004-10-15 20:53:23 UTC (rev 1956)
@@ -146,4 +146,9 @@
windows; what's happening?
1954
+Update FAQ entry: My keyboard configuration worked with XFree86 4.2; why
+is it messed up now?
+Update FAQ entry: How does the keyboard work in the X Window System?
+ 1956
+
vim:set ai et sts=4 sw=4 tw=80:
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2004-10-15 19:04:50 UTC (rev 1955)
+++ trunk/debian/changelog 2004-10-15 20:53:23 UTC (rev 1956)
@@ -54,6 +54,11 @@
* Add FAQ entry: Sometimes I get garbage characters like 1;2c in my xterm
windows; what's happening?
+ * Update FAQ entry: My keyboard configuration worked with XFree86 4.2; why
+ is it messed up now?
+
+ * Update FAQ entry: How does the keyboard work in the X Window System?
+
Changes by Denis Barbier and Fabio M. Di Nitto:
* Edit xc/programs/xkbcomp/symbols/pc/Imakefile so that the new pc/us_intl
Modified: trunk/debian/local/FAQ.xhtml
===================================================================
--- trunk/debian/local/FAQ.xhtml 2004-10-15 19:04:50 UTC (rev 1955)
+++ trunk/debian/local/FAQ.xhtml 2004-10-15 20:53:23 UTC (rev 1956)
@@ -881,8 +881,11 @@
-->
<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>
+but in the meantime it is hoped that the information presented here is useful.
+Thanks to Denis Barbier for his patience and his explanations.</em></p>
+<h4>Glossary</h4>
+
<dl>
<dt><strong>compose key</strong></dt>
<dd>a key which causes the next two keys pressed to be treated specially
@@ -1010,6 +1013,49 @@
class="command">setxkbmap</code> command, which in turn depends on <code
class="command">xkbcomp</code>, the XKB data files, and the X libraries.</p>
+<p>Many users of the X Window System, particularly outside the United States,
+find that they need support for multiple <em>group</em>s on their keyboards.
+A group a set of two keyboard symbols paired so that pressing an unshifted key
+gets you the first symbol in the group, and pressing the same key with the
+<code>Shift</code> key held down give you the second symbol in the group.</p>
+
+<p>A U.S. keyboard has only one group, which is sufficient to type all of the
+symbols in the ASCII character set. Elsewhere in the world, however, keyboards
+frequently have keys engraved with more than two glyphs. A third and often a
+fourth glyph appear. These comprise the <em>alternate group</em>, which is
+usually accessed with a modifier key not found on most U.S. keyboards:
+<code>AltGr</code>. When the <code>AltGr</code> key is pressed, the third and
+fourth glyphs on the keycap can be entered: <code>AltGr + <em>key</em></code>
+gives you the third, and if a fourth is engraved, it is entered with <code>AltGr
++ Shift + <em>key</em></code>. For example, on many European keyboards, one can
+press <kbd>AltGr + E</kbd> to produce the Euro sign (€). Sometimes the
+<code>Alt</code> key on the right-hand side of the keyboard is used as
+<code>AltGr</code> if there is no key actually engraved with
+<code>AltGr</code>.</p>
+
+<p>If even an alternate group does not suffice to let users type all of the
+symbols they need to, the entire keyboard mapping can be switched out with a
+single keystroke using what the X KEYBOARD Extension (XKB) refers to as a
+"level". This is typically done with a <code>Mode Switch</code> key, which is
+somewhat analogous to <code>Caps Lock</code>. When this key is pressed, the X
+Window System toggles the second level. This approach is often taken with
+keyboards that need to type in both the Cyrillic and Latin alphabets. A Russian
+user, for example, might use a French keyboard layout (complete with alternate
+group symbols) on the first level to correspond with Western European friends
+via email, but then press <code>Mode Switch</code> to change to the second
+level, featuring Cyrillic letters, to write messages to Russian friends.</p>
+
+<p>XKB supports up to four keysyms per level (two groups of two symbols each),
+and up to four levels. In such situations, rather than having a <code>Mode
+Switch</code> key, there might be <code>Next Mode</code> and <code>Previous
+Mode</code> keys that cycle through the available levels.</p>
+
+<p>A U.S. keyboard, even if keys are remapped so that <code>AltGr</code> and/or
+<code>Mode Switch</code> keys are available, does not acquire much meaningful
+additional functionality unless an alternate group and/or multiple levels are
+defined in software, so that "the keys know what to do" when the alternate group
+is activated or the level is changed.</p>
+
<h2><a id="specquest" class="bigtext">Specific Questions</a></h2>
<h3><a id="custxsess">How do I customize my X session?</a></h3>
@@ -2912,40 +2958,11 @@
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
-glyphs. On a typical U.S. keyboard, there are at most two glyphs on each keycap
-— one is accessed with a <code>Shift</code> or <code>Caps Lock</code> key,
-and one without. Many keyboards outside the United States enable access to
-glyphs beyond the third with modifier keys not found on most U.S. keyboards.
-One approach is with an <code>AltGr</code> (alternate group) key, which is
-analogous to <code>Shift</code>. The other approach is with a <code>Mode
-Switch</code> key, which is analogous to <code>Caps Lock</code>. When either of
-these keys are pressed, the X Window System needs to know to switch to an
-alternative key layout — preferably one which corresponds to the
-engravings on the user's keyboard. A U.S. keyboard, even if keys are remapped
-so that <code>AltGr</code> and/or <code>Mode Switch</code> keys are available,
-does not acquire much meaningful additional functionality unless and alternate
-group is defined in software, so that "the keys know what to do" when the
-alternate group is enabled.</p>
-
-<p>Sometimes a key layout for a given territory (such as <code>gb</code> for the
-United Kingdom or <code>fr</code> for France) defines what should be in the
-alternate group. For example, on many European keyboards, one can press
-<kbd>AltGr + E</kbd> to produce the Euro sign (€). This approach is often
-taken when most keys don't need an symbol defined for the alternate group,
-because most keys are engraved with two or fewer glyphs.</p>
-
-<p>Other times, however, most or all of the printing keys on the keyboard are
-engraved with primary group <em>and</em> alternate group glyphs. Russian
-keyboards, for example, because they must support both the Latin and Cyrillic
-alphabets, often work this way. As a consequence, users of the X Window System
-need a way to <em>combine layouts</em>.</p>
-
-<p>Prior to XFree86 4.3, combining layouts was difficult because keyboard
-symbols (<em>keysyms</em>) were defined to be specific to a given group. For
-example, the <code>us</code> symbols file (in <code
+<p>First of all, XKB layouts have been revisited in XFree86 4.3.
+The most intuitive approach to supporting multiple levels on the keyboard is
+through combining layouts. Prior to XFree86 4.3, though, this was difficult because
+keyboard symbols (<em>keysyms</em>) were defined to be specific to a given
+group. For example, the <code>us</code> symbols file (in <code
class="filespec">/etc/X11/xkb/symbols/</code>) defined the its keycode to keysym
mappings specifically for group 1 — the primary group. The
<code>us_group2</code> and <code>us_group3</code> files repeated these
@@ -2955,12 +2972,12 @@
was consequently impossible without modifying the XKB data files directly
— a skill most users do not possess.</p>
-<p>XKB layouts have been revisited in XFree86 4.3, and new definitions can now
-be used in arbitrary order so that <code>us,ru</code> and <code>ru,us</code> use
-the same <code>symbols</code> files. The new definitions have been placed in
-<code class="filespec">/etc/X11/xkb/symbols/pc/</code> while the old ones are
-still available in their traditional location; that is, directly within the
-<code class="filespec">/etc/X11/xkb/symbols/</code> directory.</p>
+<p>There are now new definitions that are "multi-layout aware"; they can be used in
+arbitrary order so that <code>us,ru</code> and <code>ru,us</code> use the same
+<code>symbols</code> files. The multi-layout-capable definitions have been
+placed in <code class="filespec">/etc/X11/xkb/symbols/pc/</code> while the old
+ones are still available in their traditional location; that is, directly within
+the <code class="filespec">/etc/X11/xkb/symbols/</code> directory.</p>
<p>Some symbols files have not been converted to the new multi-layout approach,
and thus can not be combined with others. These are listed as
@@ -2969,21 +2986,34 @@
combining layouts, check that you are not trying to load a layout listed
there.</p>
-<p>Modifiers have also been affected by these changes to make the system more
-modular. A consequence is that <em>fake keys</em> have been introduced in XKB
-data files for <code>Alt</code>, <code>Meta</code>, <code>Super</code> and
-<code>Hyper</code>. (The fake keys are distinguished from real keys by not
-being pair-oriented to the "left" or "right". Even keyboards that have only one
-of a pair of such keys — like laptop keyboards — report the keys
-they do have as being either left or right, for compatibility with full-size
-models.) By default, the modifiers <code>mod1</code> and <code>mod4</code> use
-these fake keys instead of real ones. XKB-aware applications can handle those
-fake keys, but some applications, like <application>GNU Emacs</application>, get
-confused and will not recognize your keys as modifiers. Until these
-applications are fixed, you can bind keys explicitly with <code>altwin</code>
-XKB options; for example, <kbd>Option "XkbOptions" "altwin:super_win"</kbd>
-binds your logo keys to <code>Super</code> modifiers.</p>
+<p>Secondly, modifiers also been affected by the multi-layout changes to make
+the system more modular. One consequence is that <em>fake keys</em> have been
+introduced in XKB data files for <code>Alt</code>, <code>Meta</code>,
+<code>Super</code> and <code>Hyper</code>. (The fake keys are distinguished
+from real keys by not being pair-oriented to the "left" or "right". Even
+keyboards that have only one of a pair of such keys — like laptop
+keyboards — report the keys they do have as being either left or right,
+for compatibility with full-size models.) By default, the modifiers
+<code>mod1</code> and <code>mod4</code> use these fake keys instead of real
+ones. XKB-aware applications can handle those fake keys, but some applications,
+like GNU Emacs, XEmacs, and Sawfish, are buggy — they get confused and
+will not recognize some of your keys as activating the right modifiers. A
+workaround for XEmacs is to set the <code class="other">altwin:super_win</code>
+XKB option. The recommendation of Debian developers to frustrated Sawfish users
+appears to be to switch to Metacity.</p>
+<p>Futher reading:</p>
+
+<ul>
+ <li><a
+ href="http://lists.debian.org/debian-emacsen/2004/09/msg00019.html">description
+ of Emacs modifer problem</a></li>
+ <li><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=274103">Debian
+ <code class="package">emacs21</code> bug report</a></li>
+ <li><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=263073">Debian
+ <code class="package">sawfish</code> bug report</a></li>
+</ul>
+
<h3><a id="composeinput">Why does composing characters work in some applications
but not others?</a></h3>
Reply to: