xkbdesc/symbols fr,1.9,1.10 keypad,1.3,1.4

Sergey V. Oudaltsov xlibs-commit at pdx.freedesktop.org
Sun Sep 24 13:07:02 PDT 2006


Committed by: svu

Update of /cvs/xlibs/xkbdesc/symbols
In directory kemper:/tmp/cvs-serv24447/symbols

Modified Files:
	fr keypad 
Log Message:
new French layouts, b.fd.o#8240

Index: fr
===================================================================
RCS file: /cvs/xlibs/xkbdesc/symbols/fr,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- fr	17 Sep 2006 21:40:40 -0000	1.9
+++ fr	24 Sep 2006 20:07:00 -0000	1.10
@@ -81,6 +81,184 @@
     key <AB10>	{ [    exclam,    section, dead_belowdot,    abovedot ]	};
 };
 
+
+// Unicode French derivative
+// Loose refactoring of the historic Linux French keyboard layout
+//
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+//
+// Credits (fr-latin1, fr-latin0, fr-latin9)
+//   © 199x-1996 René Cougnenc ✝
+//   © 1997-2002 Guylhem Aznar <clavier @ externe.net> 
+//   © 2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
+// │ Ø ¸ │ 1 ˇ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
+// │ ø ` │ & ´ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃  arrière┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
+// ┃       ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ ¥ ┃Entrée ┃
+// ┃Tab ↹  ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ ~ │ $ ³ ┃   ⏎   ┃
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
+// ┃        ┃ Q Ä │ S „ │ D Ë │ F ` │ G ' │ H Ð │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃      ┃
+// ┃Maj ⇬   ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l ŀ │ m ö │ ù ¹ │ * ² ┃      ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
+// ┃       ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃             ┃
+// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧      ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
+// ┃       ┃       ┃       ┃ ␣              Espace insécable ⍽ ┃       ┃       ┃       ┃
+// ┃Ctrl   ┃Meta   ┃Alt    ┃ ␣ Espace                        ␣ ┃AltGr ⇮┃Menu   ┃Ctrl   ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
+partial alphanumeric_keys
+xkb_symbols "oss" {
+
+    include "latin"
+    include "level3(ralt_switch)"
+    include "keypad(oss)"
+
+    name[Group1]="France - Alternative";
+
+    // First row
+    key <TLDE>	{ [           oslash,         Ooblique,           dead_grave,          dead_cedilla ] }; // ø Ø  ` ¸ 
+    key <AE01>	{ [        ampersand,                1,           dead_acute,            dead_caron ] }; // & 1 ´ ˇ
+    key <AE02>	{ [           eacute,                2,           asciitilde,                Eacute ] }; // é 2 ~ É
+    key <AE03>	{ [         quotedbl,                3,           numbersign,            dead_breve ] }; // " 3 # ˘
+    key <AE04>	{ [       apostrophe,                4,            braceleft,             0x1002014 ] }; // ' 4 { — (tiret cadratin)
+    key <AE05>	{ [        parenleft,                5,          bracketleft,             0x1002013 ] }; // ( 5 } – (tiret demi-cadratin)
+    key <AE06>	{ [            minus,                6,                  bar,             0x1002011 ] }; // - 6 | ‑ (tiret insécable)
+    key <AE07>	{ [           egrave,                7,                grave,                Egrave ] }; // è 7 ` È
+    key <AE08>	{ [       underscore,                8,            backslash,             trademark ] }; // _ 8 \ â„¢
+    key <AE09>	{ [         ccedilla,                9,          asciicircum,              Ccedilla ] }; // ç 9 ^ Ç
+    key <AE10>	{ [           agrave,                0,                   at,                Agrave ] }; // à 0 @ À
+    key <AE11>	{ [       parenright,           degree,         bracketright,              notequal ] }; // ) ° ] ≠ 
+    key <AE12>	{ [            equal,             plus,           braceright,             plusminus ] }; // = + } ±
+
+    // Second row
+    key <AD01>	{ [                a,                A,                   ae,                    AE ] }; // a A æ Æ
+    key <AD02>	{ [                z,                Z,          acircumflex,           Acircumflex ] }; // z Z â Â
+    key <AD03>	{ [                e,                E,             EuroSign,                  cent ] }; // e E € ¢
+    key <AD04>	{ [                r,                R,          ecircumflex,           Ecircumflex ] }; // r R ê Ê
+    key <AD05>	{ [                t,                T,                thorn,                 THORN ] }; // t T þ Þ
+    key <AD06>	{ [                y,                Y,           ydiaeresis,            Ydiaeresis ] }; // y Y ÿ Ÿ
+    key <AD07>	{ [                u,                U,          ucircumflex,           Ucircumflex ] }; // u U û Û
+    key <AD08>	{ [                i,                I,          icircumflex,           Icircumflex ] }; // i I î Î
+    key <AD09>	{ [                o,                O,                   oe,                    OE ] }; // o O Å“ Å’
+    key <AD10>	{ [                p,                P,          ocircumflex,           Ocircumflex ] }; // p P ô Ô
+    key <AD11>	{ [  dead_circumflex,   dead_diaeresis,           dead_tilde,        dead_abovering ] }; // ^ ̈ ̃ ˚
+    key <AD12>	{ [           dollar,         sterling,        threesuperior,                   yen ] }; // $ £ ³ ¥
+
+    // Third row
+    key <AC01>	{ [                q,                Q,           adiaeresis,            Adiaeresis ] }; // q Q ä Ä
+    key <AC02>	{ [                s,                S,               ssharp,    doublelowquotemark ] }; // s S ß „ 
+    key <AC03>	{ [                d,                D,           ediaeresis,            Ediaeresis ] }; // d D ë Ë
+    key <AC04>	{ [                f,                F,  leftsinglequotemark,             quoteleft ] }; // f F ‘ `
+    key <AC05>	{ [                g,                G, rightsinglequotemark,            quoteright ] }; // g G ’ '
+    key <AC06>	{ [                h,                H,                  eth,                   ETH ] }; // h H ð Ð
+    key <AC07>	{ [                j,                J,           udiaeresis,            Udiaeresis ] }; // j J ü Ü
+    key <AC08>	{ [                k,                K,           idiaeresis,            Idiaeresis ] }; // k K ï Ï
+    key <AC09>	{ [                l,                L,            0x1000140,             0x100013F ] }; // l L ŀ Ŀ
+    key <AC10>	{ [                m,                M,           odiaeresis,            Odiaeresis ] }; // m M ö Ö
+    key <AC11>	{ [           ugrave,          percent,          onesuperior,                Ugrave ] }; // ù % ¹ Ù
+    key <BKSL>	{ [         asterisk,               mu,          twosuperior,           dead_macron ] }; // * µ ² ̄
+
+    // Fourth row
+    key <LSGT>  { [             less,          greater,        lessthanequal,      greaterthanequal ] }; // < > ≤ ≥
+    key <AB01>  { [                w,                W,        guillemotleft,   leftdoublequotemark ] }; // w W « “
+    key <AB02>  { [                x,                X,       guillemotright,  rightdoublequotemark ] }; // x X » ”
+    key <AB03>  { [                c,                C,            copyright,            registered ] }; // c C © ®
+    key <AB04>  { [                v,                V,            0x100202F,             leftarrow ] }; // v V ⍽ ← (espace fine insécable)
+    key <AB05>  { [                b,                B,            downarrow,               uparrow ] }; // b B ↓ ↑
+    key <AB06>  { [                n,                N,              notsign,            rightarrow ] }; // n N ¬ →
+    key <AB07>  { [            comma,         question,         questiondown,             0x1002026 ] }; // , ? ¿ …
+    key <AB08>  { [        semicolon,           period,             multiply,             0x10022C5 ] }; // ; . × ⋅
+    key <AB09>  { [            colon,            slash,             division,             0x1002215 ] }; // : / ÷ ∕
+    key <AB10>  { [           exclam,          section,           exclamdown,             0x1002212 ] }; // ! § ¡ −
+
+    // Make nobreakspace harder to hit
+    key <SPCE>  { [            space,            space,                space,          nobreakspace ] }; // ␣ ␣ ␣ ⍽ (espace insécable)
+};
+
+partial alphanumeric_keys
+xkb_symbols "oss_latin9" {
+
+    // Restricts the fr(oss) layout to latin9 symbols
+
+    include "fr(oss)"
+    include "keypad(oss_latin9)"
+
+    name[Group1]="France - Alternative, latin-9 only";
+
+    // First row
+    key <AE03>	{ [         quotedbl,                3,           numbersign,            dead_tilde ] }; // " 3 # ~
+    key <AE04>	{ [       apostrophe,                4,            braceleft,            underscore ] }; // ' 4 { _
+    key <AE05>	{ [        parenleft,                5,          bracketleft,                 minus ] }; // ( 5 } -
+    key <AE06>  { [            minus,                6,                  bar,                 minus ] }; // - 6 | -
+    key <AE08>  { [       underscore,                8,            backslash,             backslash ] }; // _ 8 \ \
+
+    // Third row
+    key <AC02>	{ [                s,                S,               ssharp,         guillemotleft ] }; // s S ß « 
+    key <AC04>	{ [                f,                F,            apostophe,             quoteleft ] }; // f F ' `
+    key <AC05>	{ [                g,                G,           apostrophe,            quoteright ] }; // g G ' '
+    key <AC09>  { [                l,                L,       periodcentered,        periodcentered ] }; // l L · ·
+    key <BKSL>	{ [         asterisk,               mu,          twosuperior,       dead_circumflex ] }; // * µ ² ^ 
+
+    // Fourth row
+    key <LSGT>  { [             less,          greater,                 less,               greater ] }; // < > < >
+    key <AB01>  { [                w,                W,        guillemotleft,         guillemotleft ] }; // w W « «
+    key <AB02>  { [                x,                X,       guillemotright,        guillemotright ] }; // x X » »
+    key <AB04>  { [                v,                V,         nobreakspace,                  less ] }; // v V ⍽ < (espace insécable)
+    key <AB05>  { [                b,                B,                minus,           asciicircum ] }; // b B - ^
+    key <AB06>  { [                n,                N,              notsign,               greater ] }; // n N ¬ >
+    key <AB07>  { [            comma,         question,         questiondown,                period ] }; // , ? ¿ .
+    key <AB08>  { [        semicolon,           period,             multiply,        periodcentered ] }; // ; . × ·
+    key <AB09>  { [            colon,            slash,             division,                 slash ] }; // : / ÷ /
+    key <AB10>  { [           exclam,          section,           exclamdown,                 minus ] }; // ! § ¡ -
+};
+
+partial alphanumeric_keys
+xkb_symbols "oss_Sundeadkeys" {
+
+    // Modifies the basic fr(oss) layout to use the Sun dead keys
+
+    include "fr(oss)"
+
+    // First row
+    key <TLDE>	{ [           oslash,         Ooblique,          SunFA_Grave,         SunFA_Cedilla ] }; // ø Ø ` ¸ 
+    key <AE01>	{ [        ampersand,                1,          SunFA_Acute,            dead_caron ] }; // & 1 ´ ˇ
+
+    // Second row
+    key <AD11>	{ [     SunFA_Circum,  SunFA_Diaeresis,          SunFA_Tilde,        dead_abovering ] }; // ^ ̈ ̃ ˚
+};
+
+partial alphanumeric_keys
+xkb_symbols "oss_sundeadkeys" {
+
+    include "fr(oss_Sundeadkeys)"
+
+    name[Group1]="France - Alternative, Sun dead keys";
+};
+
+partial alphanumeric_keys
+xkb_symbols "oss_nodeadkeys" {
+
+    // Modifies the basic fr(oss) layout to eliminate all dead keys
+
+    include "fr(oss)"
+
+    name[Group1]="France - Alternative, eliminate dead keys";
+
+    // First row
+    key <TLDE>	{ [           oslash,         Ooblique,                grave,          dead_cedilla ] }; // ø Ø ` ¸ 
+    key <AE01>	{ [        ampersand,                1,                acute,                 caron ] }; // & 1 ´ ˇ
+    key <AE03>  { [         quotedbl,                3,           numbersign,                 breve ] }; // " 3 # ˘
+
+    // Second row
+    key <AD11>	{ [      asciicircum,  	     diaeresis,           asciitilde,                 Aring ] }; // ^ ̈ ~ Å
+
+    // Third row
+    key <BKSL>  { [         asterisk,               mu,          twosuperior,                macron ] }; // * µ ² ̄
+};
+
+
 // Historic Linux French keyboard layout (fr-latin9)
 // Copyright (c) 199x, 2002 Rene Cougnenc (original work)
 //                          Guylhem Aznar <clavier @ externe.net> (maintainer)
@@ -146,14 +324,13 @@
 //
 // AltGr (1) puis e : é
 // Shift+AltGr (1) puis e : É ...
-
 partial alphanumeric_keys
 
 xkb_symbols "latin9" {
 
     include "latin"
 
-    name[Group1]="France - Alternative";
+    name[Group1]="France - (Legacy) Alternative";
 
     key <TLDE>	{ [              oe,              OE, leftdoublequotemark, rightdoublequotemark ] };
     key <AE01>	{ [       ampersand,               1,          dead_acute,       periodcentered ] };
@@ -234,7 +411,7 @@
 
     include "fr(latin9_Sundeadkeys)"
 
-    name[Group1]="France - Alternative, Sun dead keys";
+    name[Group1]="France - (Legacy) Alternative, Sun dead keys";
 };
 
 partial alphanumeric_keys
@@ -244,7 +421,7 @@
 
     include "fr(latin9)"
 
-    name[Group1]="France - Alternative, eliminate dead keys";
+    name[Group1]="France - (Legacy) Alternative, eliminate dead keys";
 
     key <AE01>	{ [       ampersand,               1,          apostrophe,       periodcentered ] };
     key <AE07>	{ [          egrave,               7,               grave,               Egrave ] };

Index: keypad
===================================================================
RCS file: /cvs/xlibs/xkbdesc/symbols/keypad,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- keypad	17 Sep 2006 20:03:34 -0000	1.3
+++ keypad	24 Sep 2006 20:07:00 -0000	1.4
@@ -137,3 +137,215 @@
 xkb_symbols "dot" {
     key <KPDL> {       [ KP_Delete, KP_Decimal ] };
 };
+
+
+// Legacy PC keypad definition
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+keypad_keys
+xkb_symbols "legacy" {
+
+    include "keypad(core)"
+    include "keypad(legacymath)"
+    include "keypad(legacynumber)"
+};
+
+
+// Complete new keypad definition
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+keypad_keys
+xkb_symbols "oss" {
+
+    include "keypad(core)"
+    include "keypad(ossmath)"
+    include "keypad(ossnumber)"
+};
+
+
+// Latin9 restriction of new keypad definition
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+keypad_keys
+xkb_symbols "oss_latin9" {
+
+    include "keypad(core)"
+    include "keypad(ossmath_latin9)"
+    include "keypad(legacynumber)"
+
+    key <KPDL> { type="FOUR_LEVEL_MIXED_KEYPAD",
+                 [ KP_Delete,             period, comma, nobreakspace ] }; // <delete> . , ⍽ (no-break space)
+};
+
+// Keypad keys nobody changes
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+partial keypad_keys
+xkb_symbols "core" {
+
+    modifier_map Mod2 { Num_Lock };
+
+    key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
+    key <KPEN> { [ KP_Enter                     ] };
+    key <KPEQ> { [ KP_Equal                     ] };
+};
+
+
+// Legacy keypad math area
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+//
+// ┏━━━━━┱─────┬─────┬─────┐
+// ┃Num  ┃ ₁   │ ₂   │ ₃   │ ₁ <XF86_Ungrab>
+// ┃Lock⇭┃ /   │ *   │ -   │ ₂ <XF86_ClearGrab>
+// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>
+//                   │ ₄   │ ₄ <XF86_Next_VMode>
+//                   │     │
+//                   ┤     │ 1 None
+//                   │     │ 2 Ctrl+Alt
+//                   │ +   │
+//                   ╆━━━━━┪
+partial keypad_keys
+xkb_symbols "legacymath" {
+
+    key.type[Group1]="CTRL+ALT" ;
+
+    key <KPDV> { [   KP_Divide,     XF86_Ungrab ] }; // / <XF86_Ungrab>
+    key <KPMU> { [ KP_Multiply,  XF86_ClearGrab ] }; // * <XF86_ClearGrab>
+    key <KPSU> { [ KP_Subtract, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
+
+    key <KPAD> { [      KP_Add, XF86_Next_VMode ] }; // + <XF86_Next_VMode>
+
+};
+
+
+// Keypad math area with non-CS operators
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+//
+// ┏━━━━━┱─────┬─────┬─────┐
+// ┃Num  ┃ ∕ ₁ │ . ₂ │ − ₃ │ ₁ <XF86_Ungrab>
+// ┃Lock⇭┃ / ÷ │ * × │ - − │ ₂ <XF86_ClearGrab>
+// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>
+//                   │ + ₄ │ ₄ <XF86_Next_VMode>
+//                   │     │
+//                   ┤     │ 1 None
+//                   │     │ 2 Level3 ⇮
+//                   │ + + │ 3 Shift+Level3 ⇧⇮
+//                   ╆━━━━━┪ 4 Ctrl+Alt
+partial keypad_keys
+xkb_symbols "ossmath" {
+
+    key.type[Group1]="FOUR_LEVEL_X" ;
+
+    key <KPDV> { [   KP_Divide, 0x1002215, 0x10000F7,     XF86_Ungrab ] }; // / ∕ ÷     <XF86_Ungrab>
+    key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7,  XF86_ClearGrab ] }; // * ⋅ ×  <XF86_ClearGrab>
+    key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, XF86_Prev_VMode ] }; // - − − <XF86_Prev_VMode>
+
+    key <KPAD> { [      KP_Add, 0x100002B, 0x100002B, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
+
+};
+
+
+// Keypad math area with non-CS operators, restricted to latin9
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+//
+// ┏━━━━━┱─────┬─────┬─────┐
+// ┃Num  ┃ / ₁ │ · ₂ │ - ₃ │ ₁ <XF86_Ungrab>
+// ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂ <XF86_ClearGrab>
+// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode>
+//                   │ + ₄ │ ₄ <XF86_Next_VMode>
+//                   │     │
+//                   ┤     │ 1 None
+//                   │     │ 2 Level3 ⇮
+//                   │ + + │ 3 Shift+Level3 ⇧⇮
+//                   ╆━━━━━┪ 4 Ctrl+Alt
+partial keypad_keys
+xkb_symbols "ossmath_latin9" {
+
+    key.type[Group1]="FOUR_LEVEL_X";
+
+    key <KPDV> { [   KP_Divide,          slash, division,     XF86_Ungrab ] }; // / / ÷     <XF86_Ungrab>
+    key <KPMU> { [ KP_Multiply, periodcentered, multiply,  XF86_ClearGrab ] }; // * · ×  <XF86_ClearGrab>
+    key <KPSU> { [ KP_Subtract,          minus,    minus, XF86_Prev_VMode ] }; // - - - <XF86_Prev_VMode>
+
+    key <KPAD> { [      KP_Add,           plus,     plus, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
+};
+
+
+// Legacy keypad number area
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+//
+// ┏━━━━━┱                   ⇱ Home
+// ┃Num  ┃                   ⇲ End
+// ┃Lock⇭┃                   ⇞ Page up
+// ┡━━━━━╃─────┼─────┼       ⇟ Page down
+// │ 7   │ 8   │ 9   │       ⇞ Page up
+// │ ⇱   │ ⇧   │ ⇞   │       ⎀ Insert
+// ├─────┼─────┼─────┤       ␥ Delete
+// │ 4   │ 5   │ 6   │       ⇦⇧⇨⇩ Directions
+// │ ⇦   │     │ ⇨   │
+// ├─────┼─────┼─────╆━━━━━┪
+// │ 1   │ 2   │ 3   ┃Enter┃
+// │ ⇲   │ ⇩   │ ⇟   ┃  ⎆  ┃ 1 None
+// ├─────┴─────┼─────┨     ┃ 2 Num Lock ⇭
+// │ 0         │ .   ┃     ┃
+// │ ⎀         │ ␥   ┃     ┃
+// └───────────┴─────┺━━━━━┛
+partial keypad_keys
+xkb_symbols "legacynumber" {
+
+    key.type[Group1]="KEYPAD" ;
+
+    key <KP7>  { [   KP_Home,       KP_7 ] }; //   <home> 7
+    key <KP8>  { [     KP_Up,       KP_8 ] }; //     <up> 8
+    key <KP9>  { [  KP_Prior,       KP_9 ] }; //  <prior> 9
+ 
+    key <KP4>  { [   KP_Left,       KP_4 ] }; //   <left> 4
+    key <KP5>  { [  KP_Begin,       KP_5 ] }; //  <begin> 5
+    key <KP6>  { [  KP_Right,       KP_6 ] }; //  <right> 6
+
+    key <KP1>  { [    KP_End,       KP_1 ] }; //    <end> 1
+    key <KP2>  { [   KP_Down,       KP_2 ] }; //   <down> 2
+    key <KP3>  { [   KP_Next,       KP_3 ] }; //   <next> 3
+
+    key <KP0>  { [ KP_Insert,       KP_0 ] }; // <insert> 0
+    key <KPDL> { [ KP_Delete, KP_Decimal ] }; // <delete> .
+};
+
+
+// Keypad number area with arrow symbols
+// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
+//
+// ┏━━━━━┱                   ⇱ Home
+// ┃Num  ┃                   ⇲ End
+// ┃Lock⇭┃                   ⇞ Page up
+// ┡━━━━━╃─────┼─────┼       ⇟ Page down
+// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │       ⇞ Page up
+// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │       ⎀ Insert
+// ├─────┼─────┼─────┤       ␥ Delete
+// │ 4 ⇐ │ 5 ⇔ │ 6 ⇗ │       ⇦⇧⇨⇩ Directions
+// │ ⇦ ← │   ↔ │ ⇨ ↗ │       ⍽ narrow no-break space
+// ├─────┼─────┼─────╆━━━━━┪
+// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃Enter┃
+// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃  ⎆  ┃ 1 None
+// ├─────┴─────┼─────┨     ┃ 2 Num Lock ⇭
+// │ 0       ⇕ │ . ⍽ ┃     ┃ 3 Level3 ⇮
+// │ ⎀       ↕ │ ␥ , ┃     ┃ 4 Shift+Level3 ⇧⇮
+// └───────────┴─────┺━━━━━┛
+partial keypad_keys
+xkb_symbols "ossnumber" {
+
+    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
+
+    key <KP7>  { [   KP_Home,   KP_7, 0x1002196, 0x10021D6 ] }; //   <home> 7 ↖ ⇖
+    key <KP8>  { [     KP_Up,   KP_8, 0x1002191, 0x10021D1 ] }; //     <up> 8 ↑ ⇑
+    key <KP9>  { [  KP_Prior,   KP_9, 0x1002197, 0x10021D7 ] }; //  <prior> 9 ↗ ⇗
+ 
+    key <KP4>  { [   KP_Left,   KP_4, 0x1002190, 0x10021D0 ] }; //   <left> 4 ← ⇐
+    key <KP5>  { [  KP_Begin,   KP_5, 0x1002194, 0x10021D4 ] }; //  <begin> 5 ↔ ⇔
+    key <KP6>  { [  KP_Right,   KP_6, 0x1002192, 0x10021D2 ] }; //  <right> 6 → ⇒
+
+    key <KP1>  { [    KP_End,   KP_1, 0x1002199, 0x10021D9 ] }; //    <end> 1 ↙ ⇙
+    key <KP2>  { [   KP_Down,   KP_2, 0x1002193, 0x10021D3 ] }; //   <down> 2 ↓ ⇓
+    key <KP3>  { [   KP_Next,   KP_3, 0x1002198, 0x10021D8 ] }; //   <next> 3 ↘ ⇘
+
+    key <KP0>  { [ KP_Insert,   KP_0, 0x1002195, 0x10021D5 ] }; // <insert> 0 ↕ ⇕
+    // We could use KP_Decimal and KP_Separator but we do not want the locale
+    // decimal and separator symbol but locale-insensitive dot and comma
+    key <KPDL> { [ KP_Delete, period,     comma, 0x100202F ] }; // <delete> . , ⍽ (narrow no-break space)
+};



More information about the xlibs-commit mailing list