[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