The bugs described in these merged bugreports were fixed upstream, see http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/CHANGELOG
(numbers slightly differs in XFree86 CVS logs and Debian changelogs):
646. Fix for XKB map 'altwin' to avoid one keysym to more than one modifier
mapping (Ivan Pascal).
635. Fix xmodmap's output of the modifiers map when the first column keysym
is empty (Ivan Pascal).
634. Fixes for XKB keyboard maps:
- fix Meta, Super, Hyper keysyms interpretation
- fix typo in rules/xfree86.xml (Ivan Pascal).
Oddly debian/patches/000_stolen_from_HEAD_xkb_data.diff contains 634,
but not the other 2 chunks. The missing pieces are in modifiers.patch.
I checked that when applied, xmodmap displays the right modifiers and
Meta_L is no more bound to Mod1.
Few days later, Ivan Pascal committed (attached in none.patch)
667. Fixes and updates for XKB keyboard maps:
...
- Fix wrong key type in the 'keymap without special keys' (Ivan Pascal).
I do not know what this does fix, but it looks pretty sane, maybe it
should go also.
Message-ID: <email address hidden>
Date: Thu, 26 Aug 2004 01:49:07 +0200
From: <email address hidden> (Denis Barbier)
To: <email address hidden>
Cc: <email address hidden>
Subject: Patch to solve XKB mess about modifiers
--0F1p//8PRICkK4MW Disposition: inline
Content-Type: text/plain; charset=us-ascii
Content-
tags 256706 + patch
thanks
The bugs described in these merged bugreports were fixed upstream, see cvsweb. xfree86. org/cvsweb/ xc/programs/ Xserver/ hw/xfree86/ CHANGELOG
http://
(numbers slightly differs in XFree86 CVS logs and Debian changelogs):
646. Fix for XKB map 'altwin' to avoid one keysym to more than one modifier
mapping (Ivan Pascal).
635. Fix xmodmap's output of the modifiers map when the first column keysym
is empty (Ivan Pascal).
634. Fixes for XKB keyboard maps:
- fix Meta, Super, Hyper keysyms interpretation
- fix typo in rules/xfree86.xml (Ivan Pascal).
Oddly debian/ patches/ 000_stolen_ from_HEAD_ xkb_data. diff contains 634,
but not the other 2 chunks. The missing pieces are in modifiers.patch.
I checked that when applied, xmodmap displays the right modifiers and
Meta_L is no more bound to Mod1.
Few days later, Ivan Pascal committed (attached in none.patch)
667. Fixes and updates for XKB keyboard maps:
...
- Fix wrong key type in the 'keymap without special keys' (Ivan Pascal).
I do not know what this does fix, but it looks pretty sane, maybe it
should go also.
Denis
--0F1p//8PRICkK4MW Disposition: attachment; filename= "modifiers. patch"
Content-Type: text/plain; charset=us-ascii
Content-
Index: programs/ xkbcomp/ symbols/ altwin ======= ======= ======= ======= ======= ======= ======= ======= ==== programs/ xkbcomp/ symbols/ altwin, v xkbcomp/ symbols/ altwin 10 Oct 2001 19:18:32 -0000 1.4 xkbcomp/ symbols/ altwin 3 Dec 2003 14:09:08 -0000 1.5 xkbcomp/ symbols/ altwin, v 1.4 2001/10/10 19:18:32 herrb Exp $ xkbcomp/ symbols/ altwin, v 1.5 2003/12/03 14:09:08 pascal Exp $
=======
RCS file: /cvs/xc/
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- programs/
+++ programs/
@@ -1,4 +1,4 @@
-// $XFree86: xc/programs/
+// $XFree86: xc/programs/
partial modifier_keys
xkb_symbols "meta_alt" {
@@ -15,7 +15,7 @@
key <LWIN> { [ Meta_L ] };
key <RWIN> { [ Meta_R ] };
modifier_map Mod1 { Alt_L, Alt_R };
- modifier_map Mod4 { Meta_L, Meta_R };
+ modifier_map Mod4 { <META>, Meta_L, Meta_R };
};
partial modifier_keys
@@ -23,7 +23,7 @@
key <LALT> { [ Alt_L, Alt_L ] };
key <LWIN> { [ Meta_L ] };
modifier_map Mod1 { Alt_L };
- modifier_map Mod4 { Meta_L };
+ modifier_map Mod4 { <META>, Meta_L };
};
partial modifier_keys xmodmap/ exec.c ======= ======= ======= ======= ======= ======= ======= ======= ==== programs/ xmodmap/ exec.c, v xmodmap/ exec.c 14 Dec 2001 20:02:13 -0000 1.5 xmodmap/ exec.c 2 Dec 2003 13:13:57 -0000 1.6 xmodmap/ exec.c, v 1.5 2001/12/14 20:02:13 dawes Exp $ */ xmodmap/ exec.c, v 1.6 2003/12/02 13:13:57 pascal Exp $ */
Index: programs/
=======
RCS file: /cvs/xc/
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- programs/
+++ programs/
@@ -56,7 +56,7 @@
* Author: Jim Fulton, MIT X Consortium; derived from parts of the
* original xmodmap, written by David Rosenthal, of Sun Microsystems.
*/
-/* $XFree86: xc/programs/
+/* $XFree86: xc/programs/
#include <X11/Xos.h> apping( XModifierKeymap *map, FILE *fp)
#include <X11/Xlib.h>
@@ -212,8 +212,13 @@
PrintModifierM
{
int i, k = 0;
+ int min_keycode, max_keycode, keysyms_per_keycode = 0;
- fprintf (fp, per_keycode) ;
ProgramName , map->max_ keypermod) ; table[i] .name); ap[k]) { m(dpy, map->modifierma p[k], 0); (ks); m(dpy, map->modifierma p[k], index); per_keycode) ; (ks);
+ XDisplayKeycodes (dpy, &min_keycode, &max_keycode);
+ XGetKeyboardMapping (dpy, min_keycode, (max_keycode - min_keycode + 1),
+ &keysyms_
+
+ fprintf (fp,
"%s: up to %d keys per modifier, (keycodes in parentheses):\n\n",
for (i = 0; i < 8; i++) {
@@ -222,8 +227,14 @@
fprintf(fp, "%-10s", modifier_
for (j = 0; j < map->max_keypermod; j++) {
if (map->modifierm
- KeySym ks = XKeycodeToKeysy
- char *nm = XKeysymToString
+ KeySym ks;
+ int index = 0;
+ char *nm;
+ do {
+ ks = XKeycodeToKeysy
+ index++;
+ } while ( !ks && index < keysyms_
+ nm = XKeysymToString
fprintf (fp, "%s %s (0x%0x)", (j > 0 ? "," : ""), p[k]);
(nm ? nm : "BadKey"), map->modifierma
--0F1p//8PRICkK4MW Disposition: attachment; filename= "none.patch"
Content-Type: text/plain; charset=us-ascii
Content-
Index: programs/ xkbcomp/ expr.c ======= ======= ======= ======= ======= ======= ======= ======= ==== programs/ xkbcomp/ expr.c, v xkbcomp/ expr.c 6 Aug 2003 14:04:05 -0000 3.7 xkbcomp/ expr.c 18 Dec 2003 14:14:37 -0000 3.8
=======
RCS file: /cvs/xc/
retrieving revision 3.7
retrieving revision 3.8
diff -u -r3.7 -r3.8
--- programs/
+++ programs/
@@ -24,7 +24,7 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
***** ******* ******* ******* ******* ******* ******* ******* **/ xkbcomp/ expr.c, v 3.7 2003/08/06 14:04:05 eich Exp $ */ xkbcomp/ expr.c, v 3.8 2003/12/18 14:14:37 pascal Exp $ */
-/* $XFree86: xc/programs/
+/* $XFree86: xc/programs/
#include "xkbcomp.h"
#include "tokens.h"
@@ -245,6 +245,7 @@
{ "mod3", Mod3MapIndex },
{ "mod4", Mod4MapIndex },
{ "mod5", Mod5MapIndex },
+ { "none", XkbNoModifier },
{ NULL, 0 }
};
--0F1p/ /8PRICkK4MW- -