From: Michael Schutte <m.schutte.jr@gmail.com> To: kbd@lists.altlinux.org Subject: [kbd] [PATCH] Understand the CapsShift modifiers Date: Sat, 5 Apr 2008 12:46:53 +0200 Message-ID: <1207392413-7136-1-git-send-email-m.schutte.jr@gmail.com> (raw) This patch adds support for the CapsShift_Lock and SCapsShift keysyms to dumpkeys and loadkeys, which are understood my Linux kernels since 2.6.24. Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. Signed-off-by: Michael Schutte <m.schutte.jr@gmail.com> --- man/man5/keymaps.5 | 7 +++++-- src/analyze.l | 2 ++ src/dumpkeys.c | 3 ++- src/ksyms.c | 6 ++++-- src/loadkeys.y | 3 ++- src/modifiers.h | 1 + 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/man/man5/keymaps.5 b/man/man5/keymaps.5 index 29aadfe..1b28a29 100644 --- a/man/man5/keymaps.5 +++ b/man/man5/keymaps.5 @@ -99,9 +99,9 @@ in the map file. .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 @@ CtrlL .TP 24 CtrlR 128 +.TP 24 +CapsShift +256 .PD .RE .LP diff --git a/src/analyze.l b/src/analyze.l index f55c676..adb9474 100644 --- a/src/analyze.l +++ b/src/analyze.l @@ -48,6 +48,7 @@ ShiftL shiftl|ShiftL|SHIFTL 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 @@ -106,6 +107,7 @@ To to|To|TO {ShiftR} {return(SHIFTR);} {CtrlL} {return(CTRLL);} {CtrlR} {return(CTRLR);} +{CapsShift} {return(CAPSSHIFT);} {AltIsMeta} {return(ALT_IS_META);} {Strings} {return(STRINGS);} {Compose} {return(COMPOSE);} diff --git a/src/dumpkeys.c b/src/dumpkeys.c index b0a108d..73f913a 100644 --- a/src/dumpkeys.c +++ b/src/dumpkeys.c @@ -282,7 +282,8 @@ static struct { { "shiftl", KG_SHIFTL }, { "shiftr", KG_SHIFTR }, { "ctrll", KG_CTRLL }, - { "ctrlr", KG_CTRLR } + { "ctrlr", KG_CTRLR }, + { "capsshift", KG_CAPSSHIFT } }; static void diff --git a/src/ksyms.c b/src/ksyms.c index b58af59..a322f70 100644 --- a/src/ksyms.c +++ b/src/ksyms.c @@ -1482,7 +1482,8 @@ static const char *lock_syms[] = { "ShiftL_Lock", "ShiftR_Lock", "CtrlL_Lock", - "CtrlR_Lock" + "CtrlR_Lock", + "CapsShift_Lock" }; /* Keysyms whose KTYP is KT_SLOCK. */ @@ -1495,7 +1496,8 @@ static const char *sticky_syms[] = { "SShiftL", "SShiftR", "SCtrlL", - "SCtrlR" + "SCtrlR", + "SCapsShift" }; /* Keysyms whose KTYP is KT_BRL. */ diff --git a/src/loadkeys.y b/src/loadkeys.y index 5497130..179fd03 100644 --- a/src/loadkeys.y +++ b/src/loadkeys.y @@ -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 @@ -186,6 +186,7 @@ modifier : SHIFT { mod |= M_SHIFT; } | SHIFTR { mod |= M_SHIFTR; } | CTRLL { mod |= M_CTRLL; } | CTRLR { mod |= M_CTRLR; } + | CAPSSHIFT { mod |= M_CAPSSHIFT; } ; fullline : KEYCODE NUMBER EQUALS rvalue0 EOL { diff --git a/src/modifiers.h b/src/modifiers.h index af44b33..19d58be 100644 --- a/src/modifiers.h +++ b/src/modifiers.h @@ -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) -- 1.5.4.4
next reply other threads:[~2008-04-05 10:46 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-04-05 10:46 Michael Schutte [this message] 2008-05-17 23:08 ` Alexey Gladkov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1207392413-7136-1-git-send-email-m.schutte.jr@gmail.com \ --to=m.schutte.jr@gmail.com \ --cc=kbd@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux console tools development discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/kbd/0 kbd/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 kbd kbd/ http://lore.altlinux.org/kbd \ kbd@lists.altlinux.org kbd@lists.altlinux.ru kbd@lists.altlinux.com public-inbox-index kbd Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.kbd AGPL code for this site: git clone https://public-inbox.org/public-inbox.git