[Pkg-kbd-devel] Bug#452103: kbd should handle the CapsShift modifier

Samuel Thibault samuel.thibault at ens-lyon.org
Tue Nov 20 03:57:52 UTC 2007


Package: kbd
Version: 1.12-19
Severity: normal
Tags: patch

Hi,

In order to better handle some keyboard layouts (like the french one),
here is a patch that defines the variants for the CapsShift modifier,
which permits for instance to define capslock as a CapsShift lock
(supported by kernels from 2.6.24-rc1), which is useful to type capital
accented text for instance.

Samuel

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.23
Locale: LANG=fr_FR at euro, LC_CTYPE=fr_FR at euro (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash

Versions of packages kbd depends on:
ii  console-common                0.7.71     basic infrastructure for text cons
ii  libc6                         2.6.1-6    GNU C Library: Shared libraries
ii  lsb-base                      3.1-24     Linux Standard Base 3.1 init scrip

Versions of packages kbd recommends:
ii  console-data                  2:1.03-1   Keymaps, fonts, charset maps, fall

-- no debconf information

-- 
Samuel
AUTHOR
     FvwmM4 is the result of a random  bit  mutation  on  a  hard
     disk,  presumably  a  result  of  a  cosmic-ray or some such
     thing.
(extrait de la page de man de FvwmM4)
-------------- next part --------------
diff -ur kbd-1.12/man/man5/keymaps.5 kbd-1.12-mine2/man/man5/keymaps.5
--- kbd-1.12/man/man5/keymaps.5	2002-10-11 12:08:58.000000000 +0100
+++ kbd-1.12-mine2/man/man5/keymaps.5	2007-11-20 01:38:21.000000000 +0000
@@ -99,9 +99,9 @@
 .LP
 Which of the actions bound to a given key is taken when it is pressed
 depends on what modifiers are in effect at that moment.
-The keyboard driver supports 8 modifiers. These modifiers are labeled
+The keyboard driver supports 9 modifiers. These modifiers are labeled
 (completely arbitrarily) Shift, AltGr, Control, Alt, ShiftL, ShiftR,
-CtrlL and CtrlR.
+CtrlL, CtrlR and CapsShift.
 Each of these modifiers has an associated weight of power of two
 according to the following table:
 .LP
@@ -134,6 +134,9 @@
 .TP 24
 CtrlR
 128
+.TP 24
+CapsShift
+256
 .PD
 .RE
 .LP
diff -ur kbd-1.12/src/analyze.l kbd-1.12-mine2/src/analyze.l
--- kbd-1.12/src/analyze.l	2004-01-16 21:51:44.000000000 +0000
+++ kbd-1.12-mine2/src/analyze.l	2007-11-20 01:38:21.000000000 +0000
@@ -48,6 +48,7 @@
 ShiftR			shiftr|ShiftR|SHIFTR
 CtrlL			ctrll|CtrlL|CTRLL
 CtrlR			ctrlr|CtrlR|CTRLR
+CapsShift		capsshift|Capsshift|CapsShift|CAPSSHIFT
 AltIsMeta		[aA][lL][tT][-_][iI][sS][-_][mM][eE][tT][aA]
 Strings			strings|Strings|STRINGS
 Compose                 compose|Compose|COMPOSE
@@ -93,6 +94,7 @@
 {ShiftR}		{return(SHIFTR);}
 {CtrlL}			{return(CTRLL);}
 {CtrlR}			{return(CTRLR);}
+{CapsShift}		{return(CAPSSHIFT);}
 {AltIsMeta}		{return(ALT_IS_META);}
 {Strings}		{return(STRINGS);}
 {Compose}               {return(COMPOSE);}
diff -ur kbd-1.12/src/dumpkeys.c kbd-1.12-mine2/src/dumpkeys.c
--- kbd-1.12/src/dumpkeys.c	2004-01-16 19:45:31.000000000 +0000
+++ kbd-1.12-mine2/src/dumpkeys.c	2007-11-20 01:38:21.000000000 +0000
@@ -276,7 +276,8 @@
     { "shiftl",	KG_SHIFTL },
     { "shiftr",	KG_SHIFTR },
     { "ctrll",	KG_CTRLL  },
-    { "ctrlr",	KG_CTRLR  }
+    { "ctrlr",	KG_CTRLR  },
+    { "capsshift",	KG_CAPSSHIFT  }
 };
 
 static void
diff -ur kbd-1.12/src/ksyms.c kbd-1.12-mine2/src/ksyms.c
--- kbd-1.12/src/ksyms.c	2004-01-16 19:45:31.000000000 +0000
+++ kbd-1.12-mine2/src/ksyms.c	2007-11-20 01:39:11.000000000 +0000
@@ -1481,7 +1481,8 @@
 	"ShiftL_Lock",
 	"ShiftR_Lock",
 	"CtrlL_Lock",
-	"CtrlR_Lock"
+	"CtrlR_Lock",
+	"CapsShift_Lock"
 };
 
 /* Keysyms whose KTYP is KT_SLOCK. */
@@ -1494,7 +1495,8 @@
 	"SShiftL",
 	"SShiftR",
 	"SCtrlL",
-	"SCtrlR"
+	"SCtrlR",
+	"SCapsShift"
 };
 
 #define E(x) { x, sizeof(x) / sizeof(x[0]) }
diff -ur kbd-1.12/src/loadkeys.y kbd-1.12-mine2/src/loadkeys.y
--- kbd-1.12/src/loadkeys.y	2004-01-16 21:51:25.000000000 +0000
+++ kbd-1.12-mine2/src/loadkeys.y	2007-11-20 01:39:25.000000000 +0000
@@ -5,7 +5,7 @@
  */
 
 %token EOL NUMBER LITERAL CHARSET KEYMAPS KEYCODE EQUALS
-%token PLAIN SHIFT CONTROL ALT ALTGR SHIFTL SHIFTR CTRLL CTRLR
+%token PLAIN SHIFT CONTROL ALT ALTGR SHIFTL SHIFTR CTRLL CTRLR CAPSSHIFT
 %token COMMA DASH STRING STRLITERAL COMPOSE TO CCHAR ERROR PLUS
 %token UNUMBER ALT_IS_META STRINGS AS USUAL ON FOR
 
@@ -182,6 +182,7 @@
 		| SHIFTR	{ mod |= M_SHIFTR;	}
 		| CTRLL		{ mod |= M_CTRLL;	}
 		| CTRLR		{ mod |= M_CTRLR;	}
+		| CAPSSHIFT	{ mod |= M_CAPSSHIFT;	}
 		;
 fullline	: KEYCODE NUMBER EQUALS rvalue0 EOL
 	{
diff -ur kbd-1.12/src/modifiers.h kbd-1.12-mine2/src/modifiers.h
--- kbd-1.12/src/modifiers.h	1998-04-24 15:27:41.000000000 +0100
+++ kbd-1.12-mine2/src/modifiers.h	2007-11-20 01:39:31.000000000 +0000
@@ -7,3 +7,4 @@
 #define M_SHIFTR (1 << KG_SHIFTR)
 #define M_CTRLL  (1 << KG_CTRLL)
 #define M_CTRLR  (1 << KG_CTRLR)
+#define M_CAPSSHIFT (1 << KG_CAPSSHIFT)


More information about the Pkg-kbd-devel mailing list