Bug#245848: this bug has been fixed by Branden Robinsen, patch included

Michael Olson Michael Olson <bigmike160@yahoo.com>, 245848@bugs.debian.org
Fri, 28 May 2004 17:16:27 -0500


--IJpNTDwzlM2Ie8A6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

According to <http://lists.debian.org/debian-x/2004/05/msg00693.html>,
the problem is with XKB.  From the above link:

>Here's how to use it.
>
>1) Save the attachment someplace like /tmp.
>2) Become root.
>3) cd / && patch -p0 < /tmp/fix_numlock.diff

I've taken the liberty of including the patch with this email.  You
could alternatively find it from the aforementioned link.

Michael Olson

--IJpNTDwzlM2Ie8A6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="fix_numlock.diff"

--- etc/X11/xkb/types/basic	27 Apr 1994 07:21:51 -0000	1.1
+++ etc/X11/xkb/types/basic	16 Jan 2001 23:00:29 -0000	1.1.1.4
@@ -1,28 +1,39 @@
-// $XConsortium: basic,v 1.3 94/04/08 16:00:43 erik Exp $
-xkb_types "Common"
+// $Xorg: basic,v 1.3 2000/08/17 19:54:48 cpqbld Exp $
+default xkb_types "basic" {

-virtual_modifiers NumLock;
+    // Fairly standard definitions for
+    // the four required key types

-type "ONE_LEVEL" {
-    modifiers = None;
-    map[None] = Level1;
-    level_name[Level1]= "Any";
-};
+    virtual_modifiers NumLock;

-type "TWO_LEVEL" {
-    modifiers = Shift;
-    map[Shift] = Level2;
-    level_name[Level1] = "Base";
-    level_name[Level2] = "Shift";
-};
+    type "ONE_LEVEL" {
+	modifiers = None;
+	map[None] = Level1;
+	level_name[Level1]= "Any";
+    };

-type "KEYPAD" {
-    modifiers = Shift+NumLock;
-    map[None] = Level1;
-    map[Shift] = Level2;
-    map[NumLock] = Level1;
-    map[Shift+NumLock] = Level2;
-    level_name[Level1] = "Base";
-    level_name[Level2] = "Number";
-};
+    type "TWO_LEVEL" {
+	modifiers = Shift;
+	map[Shift] = Level2;
+	level_name[Level1] = "Base";
+	level_name[Level2] = "Shift";
+    };

+    type "ALPHABETIC" {
+	modifiers = Shift+Lock;
+	map[Shift] = Level2;
+	preserve[Lock]= Lock;
+	level_name[Level1] = "Base";
+	level_name[Level2] = "Caps";
+    };
+
+    type "KEYPAD" {
+	modifiers = Shift+NumLock;
+	map[None] = Level1;
+	map[Shift] = Level2;
+	map[NumLock] = Level2;
+	map[Shift+NumLock] = Level1;
+	level_name[Level1] = "Base";
+	level_name[Level2] = "Number";
+    };
+};

--IJpNTDwzlM2Ie8A6--