Home | History | Annotate | Line # | Download | only in symbols
keypad revision 1.1.1.10
      1       1.1   mrg partial hidden keypad_keys
      2       1.1   mrg xkb_symbols "overlay" {
      3       1.1   mrg     include "keypad(overlay1)"
      4       1.1   mrg };
      5       1.1   mrg 
      6       1.1   mrg partial hidden keypad_keys
      7       1.1   mrg xkb_symbols "overlay1" {
      8       1.1   mrg 
      9       1.1   mrg     key  <KP7> {	[  KP_Home	],	overlay1=<KO7>	};
     10       1.1   mrg     key  <KP8> {	[  KP_Up	],	overlay1=<KO8>	};
     11       1.1   mrg     key  <KP9> {	[  KP_Prior	],	overlay1=<KO9>	};
     12       1.1   mrg 
     13       1.1   mrg     key  <KP4> {	[  KP_Left	],	overlay1=<KO4>	};
     14       1.1   mrg     key  <KP5> {	[  KP_Begin	],	overlay1=<KO5>	};
     15       1.1   mrg     key  <KP6> {	[  KP_Right	],	overlay1=<KO6>	};
     16       1.1   mrg 
     17       1.1   mrg     key  <KP1> {	[  KP_End	],	overlay1=<KO1>	};
     18       1.1   mrg     key  <KP2> {	[  KP_Down	],	overlay1=<KO2>	};
     19       1.1   mrg     key  <KP3> {	[  KP_Next	],	overlay1=<KO3>	};
     20       1.1   mrg 
     21       1.1   mrg     key  <KP0> {	[  KP_Insert	],	overlay1=<KO0>	};
     22  1.1.1.10   mrg     key <KPDL> {	[  KP_Delete	],	overlay1=<KODL>	};
     23       1.1   mrg 
     24       1.1   mrg     key  <KO7> {	[  KP_7	]	};
     25       1.1   mrg     key  <KO8> {	[  KP_8	]	};
     26       1.1   mrg     key  <KO9> {	[  KP_9	]	};
     27       1.1   mrg 
     28       1.1   mrg     key  <KO4> {	[  KP_4	]	};
     29       1.1   mrg     key  <KO5> {	[  KP_5	]	};
     30       1.1   mrg     key  <KO6> {	[  KP_6	]	};
     31       1.1   mrg 
     32       1.1   mrg     key  <KO1> {	[  KP_1	]	};
     33       1.1   mrg     key  <KO2> {	[  KP_2	]	};
     34       1.1   mrg     key  <KO3> {	[  KP_3	]	};
     35       1.1   mrg 
     36       1.1   mrg     key  <KO0> {	[  KP_0	]	};
     37  1.1.1.10   mrg     key <KODL> {	[  KP_Decimal ]	};
     38       1.1   mrg };
     39       1.1   mrg 
     40       1.1   mrg partial hidden keypad_keys
     41       1.1   mrg xkb_symbols "overlay2" {
     42       1.1   mrg 
     43       1.1   mrg     key  <KP7> {	[  KP_Home	],	overlay2=<KO7>	};
     44       1.1   mrg     key  <KP8> {	[  KP_Up	],	overlay2=<KO8>	};
     45       1.1   mrg     key  <KP9> {	[  KP_Prior	],	overlay2=<KO9>	};
     46       1.1   mrg 
     47       1.1   mrg     key  <KP4> {	[  KP_Left	],	overlay2=<KO4>	};
     48       1.1   mrg     key  <KP5> {	[  KP_Begin	],	overlay2=<KO5>	};
     49       1.1   mrg     key  <KP6> {	[  KP_Right	],	overlay2=<KO6>	};
     50       1.1   mrg 
     51       1.1   mrg     key  <KP1> {	[  KP_End	],	overlay2=<KO1>	};
     52       1.1   mrg     key  <KP2> {	[  KP_Down	],	overlay2=<KO2>	};
     53       1.1   mrg     key  <KP3> {	[  KP_Next	],	overlay2=<KO3>	};
     54       1.1   mrg 
     55       1.1   mrg     key  <KP0> {	[  KP_Insert	],	overlay2=<KO0>	};
     56  1.1.1.10   mrg     key <KPDL> {	[  KP_Delete	],	overlay2=<KODL>	};
     57       1.1   mrg 
     58       1.1   mrg     key  <KO7> {	[  KP_7	]	};
     59       1.1   mrg     key  <KO8> {	[  KP_8	]	};
     60       1.1   mrg     key  <KO9> {	[  KP_9	]	};
     61       1.1   mrg 
     62       1.1   mrg     key  <KO4> {	[  KP_4	]	};
     63       1.1   mrg     key  <KO5> {	[  KP_5	]	};
     64       1.1   mrg     key  <KO6> {	[  KP_6	]	};
     65       1.1   mrg 
     66       1.1   mrg     key  <KO1> {	[  KP_1	]	};
     67       1.1   mrg     key  <KO2> {	[  KP_2	]	};
     68       1.1   mrg     key  <KO3> {	[  KP_3	]	};
     69       1.1   mrg 
     70       1.1   mrg     key  <KO0> {	[  KP_0	]	};
     71  1.1.1.10   mrg     key <KODL> {	[  KP_Decimal ]	};
     72       1.1   mrg };
     73       1.1   mrg 
     74  1.1.1.10   mrg partial hidden keypad_keys
     75  1.1.1.10   mrg xkb_symbols "operators" {
     76  1.1.1.10   mrg     // Puts some commands to control the X server on
     77  1.1.1.10   mrg     // the fifth level of the keypad's operator keys.
     78       1.1   mrg     key <KPDV> {
     79  1.1.1.10   mrg         type="CTRL+ALT",	// Ungrab cancels server/keyboard/pointer grabs
     80   1.1.1.9   mrg         symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]
     81       1.1   mrg     };
     82       1.1   mrg     key <KPMU> {
     83  1.1.1.10   mrg         type="CTRL+ALT",	// ClsGrb kills whichever client has a grab in effect
     84   1.1.1.9   mrg         symbols[Group1]= [ KP_Multiply,	KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]
     85       1.1   mrg     };
     86       1.1   mrg     key <KPSU> {
     87  1.1.1.10   mrg         type="CTRL+ALT",	// -VMode switches to the previous video mode
     88   1.1.1.9   mrg         symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]
     89       1.1   mrg     };
     90  1.1.1.10   mrg     key <KPAD> {
     91  1.1.1.10   mrg         type="CTRL+ALT",	// +VMode switches to the next video mode
     92  1.1.1.10   mrg         symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ]
     93  1.1.1.10   mrg     };
     94  1.1.1.10   mrg };
     95  1.1.1.10   mrg 
     96  1.1.1.10   mrg default  partial hidden keypad_keys
     97  1.1.1.10   mrg xkb_symbols "x11" {
     98  1.1.1.10   mrg 
     99  1.1.1.10   mrg     include "keypad(operators)"
    100       1.1   mrg 
    101       1.1   mrg     key  <KP7> {	[  KP_Home,	KP_7	]	};
    102       1.1   mrg     key  <KP8> {	[  KP_Up,	KP_8	]	};
    103       1.1   mrg     key  <KP9> {	[  KP_Prior,	KP_9	]	};
    104       1.1   mrg 
    105       1.1   mrg     key  <KP4> {	[  KP_Left,	KP_4	]	};
    106       1.1   mrg     key  <KP5> {	[  KP_Begin,	KP_5	]	};
    107       1.1   mrg     key  <KP6> {	[  KP_Right,	KP_6	]	};
    108       1.1   mrg 
    109       1.1   mrg     key  <KP1> {	[  KP_End,	KP_1	]	};
    110       1.1   mrg     key  <KP2> {	[  KP_Down,	KP_2	]	};
    111       1.1   mrg     key  <KP3> {	[  KP_Next,	KP_3	]	};
    112  1.1.1.10   mrg     key <KPEN> {	[	KP_Enter	]	};
    113  1.1.1.10   mrg     key <KPEQ> {	[	KP_Equal	]	};
    114       1.1   mrg 
    115       1.1   mrg     key  <KP0> {	[  KP_Insert,	KP_0	]	};
    116  1.1.1.10   mrg     key <KPDL> {	[  KP_Delete,	KP_Decimal ]	};
    117  1.1.1.10   mrg     key <KPPT> {	[  KP_Decimal,	KP_Decimal ]	};
    118       1.1   mrg };
    119       1.1   mrg 
    120       1.1   mrg 
    121       1.1   mrg // Legacy PC keypad definition
    122       1.1   mrg // Copyright  2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    123       1.1   mrg keypad_keys
    124       1.1   mrg xkb_symbols "legacy" {
    125       1.1   mrg 
    126       1.1   mrg     include "keypad(core)"
    127       1.1   mrg     include "keypad(legacymath)"
    128       1.1   mrg     include "keypad(legacynumber)"
    129       1.1   mrg     include "kpdl(dot)"
    130       1.1   mrg };
    131       1.1   mrg 
    132       1.1   mrg 
    133       1.1   mrg // Legacy Wang 725-3771-ae and 725-3771-uk keypad definition
    134       1.1   mrg // Copyright  2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    135       1.1   mrg keypad_keys
    136       1.1   mrg xkb_symbols "legacy_wang" {
    137       1.1   mrg 
    138       1.1   mrg     include "keypad(core)"
    139       1.1   mrg     include "keypad(legacymath)"
    140       1.1   mrg     include "keypad(legacynumber_wang)"
    141       1.1   mrg     include "kpdl(dot)"
    142       1.1   mrg };
    143       1.1   mrg 
    144       1.1   mrg 
    145       1.1   mrg // Complete new keypad definition
    146       1.1   mrg // Copyright  2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    147       1.1   mrg keypad_keys
    148       1.1   mrg xkb_symbols "oss" {
    149       1.1   mrg 
    150       1.1   mrg     include "keypad(core)"
    151       1.1   mrg     include "keypad(ossmath)"
    152       1.1   mrg     include "keypad(ossnumber)"
    153       1.1   mrg     include "kpdl(dotoss)"
    154       1.1   mrg };
    155       1.1   mrg 
    156       1.1   mrg 
    157       1.1   mrg // Latin9 restriction of new keypad definition
    158       1.1   mrg // Copyright  2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    159       1.1   mrg keypad_keys
    160       1.1   mrg xkb_symbols "oss_latin9" {
    161       1.1   mrg 
    162       1.1   mrg     include "keypad(core)"
    163       1.1   mrg     include "keypad(ossmath_latin9)"
    164       1.1   mrg     include "keypad(legacynumber)"
    165       1.1   mrg     include "kpdl(dotoss_latin9)"
    166       1.1   mrg };
    167       1.1   mrg 
    168       1.1   mrg 
    169       1.1   mrg // Wang 725-3771-ae and 725-3771-uk keypad variant of oss keypad
    170       1.1   mrg // Copyright  2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    171       1.1   mrg keypad_keys
    172       1.1   mrg xkb_symbols "oss_wang" {
    173       1.1   mrg 
    174       1.1   mrg     include "keypad(core)"
    175       1.1   mrg     include "keypad(ossmath)"
    176       1.1   mrg     include "keypad(ossnumber_wang)"
    177       1.1   mrg     include "kpdl(dotoss)"
    178       1.1   mrg };
    179       1.1   mrg 
    180       1.1   mrg 
    181       1.1   mrg // Forward-looking keypad definition
    182       1.1   mrg // Won't work with applications that make ASCII assumptions
    183       1.1   mrg // Copyright  2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    184       1.1   mrg keypad_keys
    185       1.1   mrg xkb_symbols "future" {
    186       1.1   mrg 
    187       1.1   mrg     include "keypad(core)"
    188       1.1   mrg     include "keypad(futuremath)"
    189       1.1   mrg     include "keypad(ossnumber)"
    190       1.1   mrg     include "kpdl(commaoss)"
    191       1.1   mrg };
    192       1.1   mrg 
    193       1.1   mrg 
    194       1.1   mrg // Forward-looking keypad definition
    195       1.1   mrg // Won't work with applications that make ASCII assumptions
    196       1.1   mrg // Copyright  2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    197       1.1   mrg keypad_keys
    198       1.1   mrg xkb_symbols "future_wang" {
    199       1.1   mrg 
    200       1.1   mrg     include "keypad(core)"
    201       1.1   mrg     include "keypad(futuremath)"
    202       1.1   mrg     include "keypad(ossnumber_wang)"
    203       1.1   mrg     include "kpdl(commaoss)"
    204       1.1   mrg };
    205       1.1   mrg 
    206       1.1   mrg 
    207       1.1   mrg // Keypad keys nobody changes
    208       1.1   mrg // Copyright  2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    209       1.1   mrg partial keypad_keys
    210       1.1   mrg xkb_symbols "core" {
    211       1.1   mrg 
    212       1.1   mrg     modifier_map Mod2 { Num_Lock };
    213       1.1   mrg 
    214       1.1   mrg     key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
    215       1.1   mrg     key <KPEN> { [ KP_Enter                     ] };
    216       1.1   mrg     key <KPEQ> { [ KP_Equal                     ] };
    217       1.1   mrg };
    218       1.1   mrg 
    219       1.1   mrg 
    220       1.1   mrg // Legacy keypad math area
    221       1.1   mrg // Copyright  2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    222       1.1   mrg //
    223       1.1   mrg // 
    224       1.1   mrg // Num                <XF86_Ungrab>
    225       1.1   mrg // Lock /    *    -     <XF86_ClearGrab>
    226       1.1   mrg //   <XF86_Prev_VMode>
    227       1.1   mrg //                         <XF86_Next_VMode>
    228       1.1   mrg //                        
    229       1.1   mrg //                         1 None
    230       1.1   mrg //                         2 Ctrl+Alt
    231       1.1   mrg //                    +   
    232       1.1   mrg //                   
    233       1.1   mrg partial keypad_keys
    234       1.1   mrg xkb_symbols "legacymath" {
    235       1.1   mrg 
    236       1.1   mrg     key.type[Group1]="CTRL+ALT" ;
    237       1.1   mrg 
    238   1.1.1.9   mrg     key <KPDV> { [   KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; // / <XF86_Ungrab>
    239   1.1.1.9   mrg     key <KPMU> { [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; // * <XF86_ClearGrab>
    240   1.1.1.9   mrg     key <KPSU> { [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
    241       1.1   mrg 
    242   1.1.1.9   mrg     key <KPAD> { [      KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; // + <XF86_Next_VMode>
    243       1.1   mrg };
    244       1.1   mrg 
    245       1.1   mrg 
    246       1.1   mrg // Keypad math area with non-CS operators
    247       1.1   mrg // Copyright  2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    248       1.1   mrg //
    249       1.1   mrg // 
    250       1.1   mrg // Num      .       <XF86_Ungrab>
    251       1.1   mrg // Lock /   *   -    <XF86_ClearGrab>
    252       1.1   mrg //   <XF86_Prev_VMode>
    253       1.1   mrg //                    +    <XF86_Next_VMode>
    254       1.1   mrg //                        
    255       1.1   mrg //                         1 None
    256       1.1   mrg //                         2 Level3 
    257       1.1   mrg //                    + +  3 Shift+Level3 
    258       1.1   mrg //                    4 Ctrl+Alt
    259       1.1   mrg partial keypad_keys
    260       1.1   mrg xkb_symbols "ossmath" {
    261       1.1   mrg 
    262   1.1.1.9   mrg     key.type[Group1]="CTRL+ALT" ;
    263       1.1   mrg 
    264   1.1.1.9   mrg     key <KPDV> { [   KP_Divide, 0x1002215, 0x10000F7, VoidSymbol,     XF86_Ungrab ] }; // /       <XF86_Ungrab>
    265   1.1.1.9   mrg     key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol,  XF86_ClearGrab ] }; // *    <XF86_ClearGrab>
    266   1.1.1.9   mrg     key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // -   <XF86_Prev_VMode>
    267       1.1   mrg 
    268  1.1.1.10   mrg     key <KPAD> { [      KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
    269       1.1   mrg };
    270       1.1   mrg 
    271       1.1   mrg 
    272       1.1   mrg // Keypad math area with non-CS operators in first levels
    273       1.1   mrg // As demanded by users not interested in legacy pre-unicode junk
    274       1.1   mrg // Copyright  2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    275       1.1   mrg //
    276       1.1   mrg // 
    277       1.1   mrg // Num   /   *   -    <XF86_Ungrab>
    278       1.1   mrg // Lock    .       <XF86_ClearGrab>
    279       1.1   mrg //   <XF86_Prev_VMode>
    280       1.1   mrg //                    +    <XF86_Next_VMode>
    281       1.1   mrg //                        
    282       1.1   mrg //                         1 None
    283       1.1   mrg //                         2 Level3 
    284       1.1   mrg //                    + +  3 Shift+Level3 
    285       1.1   mrg //                    4 Ctrl+Alt
    286       1.1   mrg partial keypad_keys
    287       1.1   mrg xkb_symbols "futuremath" {
    288       1.1   mrg 
    289       1.1   mrg     key.type[Group1]="FOUR_LEVEL_X" ;
    290       1.1   mrg 
    291       1.1   mrg     key <KPDV> { [ 0x1002215,   KP_Divide, 0x10000F7,     XF86_Ungrab ] }; //  /      <XF86_Ungrab>
    292       1.1   mrg     key <KPMU> { [ 0x10022C5, KP_Multiply, 0x10000D7,  XF86_ClearGrab ] }; //  *   <XF86_ClearGrab>
    293       1.1   mrg     key <KPSU> { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; //  -  <XF86_Prev_VMode>
    294       1.1   mrg 
    295       1.1   mrg     key <KPAD> { [ 0x100002B,      KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
    296       1.1   mrg };
    297       1.1   mrg 
    298       1.1   mrg 
    299       1.1   mrg // Keypad math area with non-CS operators, restricted to latin9
    300       1.1   mrg // Copyright  2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    301       1.1   mrg //
    302       1.1   mrg // 
    303       1.1   mrg // Num   /      -    <XF86_Ungrab>
    304       1.1   mrg // Lock /   *   - -   <XF86_ClearGrab>
    305       1.1   mrg //   <XF86_Prev_VMode>
    306       1.1   mrg //                    +    <XF86_Next_VMode>
    307       1.1   mrg //                        
    308       1.1   mrg //                         1 None
    309       1.1   mrg //                         2 Level3 
    310       1.1   mrg //                    + +  3 Shift+Level3 
    311       1.1   mrg //                    4 Ctrl+Alt
    312       1.1   mrg partial keypad_keys
    313       1.1   mrg xkb_symbols "ossmath_latin9" {
    314       1.1   mrg 
    315       1.1   mrg     key.type[Group1]="FOUR_LEVEL_X";
    316       1.1   mrg 
    317       1.1   mrg     key <KPDV> { [   KP_Divide,          slash, division,     XF86_Ungrab ] }; // / /      <XF86_Ungrab>
    318       1.1   mrg     key <KPMU> { [ KP_Multiply, periodcentered, multiply,  XF86_ClearGrab ] }; // *    <XF86_ClearGrab>
    319       1.1   mrg     key <KPSU> { [ KP_Subtract,          minus,    minus, XF86_Prev_VMode ] }; // - - - <XF86_Prev_VMode>
    320       1.1   mrg 
    321       1.1   mrg     key <KPAD> { [      KP_Add,           plus,     plus, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
    322       1.1   mrg };
    323       1.1   mrg 
    324       1.1   mrg 
    325       1.1   mrg // Legacy keypad number area
    326       1.1   mrg // Copyright  2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    327       1.1   mrg //
    328  1.1.1.10   mrg // 
    329  1.1.1.10   mrg // Num                      Home
    330  1.1.1.10   mrg // Lock                    End
    331  1.1.1.10   mrg //         Page up
    332  1.1.1.10   mrg //  7    8    9           Page down
    333       1.1   mrg //                     Insert
    334       1.1   mrg //         Delete
    335       1.1   mrg //  4    5    6           Directions
    336       1.1   mrg //              
    337       1.1   mrg // 
    338       1.1   mrg //  1    2    3   
    339  1.1.1.10   mrg //                    1 None
    340  1.1.1.10   mrg //        2 Num Lock 
    341       1.1   mrg //  0         
    342       1.1   mrg //           
    343       1.1   mrg // 
    344       1.1   mrg partial keypad_keys
    345       1.1   mrg xkb_symbols "legacynumber" {
    346       1.1   mrg 
    347       1.1   mrg     key.type[Group1]="KEYPAD" ;
    348       1.1   mrg 
    349       1.1   mrg     key <KP7>  { [   KP_Home,       KP_7 ] }; //   <home> 7
    350       1.1   mrg     key <KP8>  { [     KP_Up,       KP_8 ] }; //     <up> 8
    351       1.1   mrg     key <KP9>  { [  KP_Prior,       KP_9 ] }; //  <prior> 9
    352  1.1.1.10   mrg 
    353       1.1   mrg     key <KP4>  { [   KP_Left,       KP_4 ] }; //   <left> 4
    354       1.1   mrg     key <KP5>  { [  KP_Begin,       KP_5 ] }; //  <begin> 5
    355       1.1   mrg     key <KP6>  { [  KP_Right,       KP_6 ] }; //  <right> 6
    356       1.1   mrg 
    357       1.1   mrg     key <KP1>  { [    KP_End,       KP_1 ] }; //    <end> 1
    358       1.1   mrg     key <KP2>  { [   KP_Down,       KP_2 ] }; //   <down> 2
    359       1.1   mrg     key <KP3>  { [   KP_Next,       KP_3 ] }; //   <next> 3
    360       1.1   mrg 
    361       1.1   mrg     key <KP0>  { [ KP_Insert,       KP_0 ] }; // <insert> 0
    362       1.1   mrg };
    363       1.1   mrg 
    364       1.1   mrg 
    365       1.1   mrg // Legacy Wang 725-3771-ae and 725-3771-uk keypad number area
    366       1.1   mrg // Copyright  2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    367       1.1   mrg // This is actually a three-level keypad, declared as four-level
    368       1.1   mrg // to avoid defining a new type
    369       1.1   mrg //
    370  1.1.1.10   mrg // 
    371  1.1.1.10   mrg // Num                      Home
    372  1.1.1.10   mrg // Lock                    End
    373  1.1.1.10   mrg //         Page up
    374  1.1.1.10   mrg //  7    8    9           Page down
    375       1.1   mrg //   <   >   ^         Insert
    376       1.1   mrg //         Delete
    377       1.1   mrg //  4    5    6           Directions
    378       1.1   mrg //   [    ]   $ 
    379       1.1   mrg // 
    380       1.1   mrg //  1    2    3   
    381       1.1   mrg //   &   @   #        1 None
    382       1.1   mrg //        2 Num Lock 
    383       1.1   mrg //  0                      3 Level3 
    384       1.1   mrg //           
    385       1.1   mrg // 
    386       1.1   mrg partial keypad_keys
    387       1.1   mrg xkb_symbols "legacynumber_wang" {
    388       1.1   mrg 
    389       1.1   mrg     key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
    390       1.1   mrg 
    391       1.1   mrg     key <KP7>  { [   KP_Home,   KP_7,         less ] }; //   <home> 7 <
    392       1.1   mrg     key <KP8>  { [     KP_Up,   KP_8,      greater ] }; //     <up> 8 >
    393       1.1   mrg     key <KP9>  { [  KP_Prior,   KP_9,  asciicircum ] }; //  <prior> 9 ^
    394  1.1.1.10   mrg 
    395       1.1   mrg     key <KP4>  { [   KP_Left,   KP_4,  bracketleft ] }; //   <left> 4 [
    396       1.1   mrg     key <KP5>  { [  KP_Begin,   KP_5, bracketright ] }; //  <begin> 5 ]
    397       1.1   mrg     key <KP6>  { [  KP_Right,   KP_6,       dollar ] }; //  <right> 6 $
    398       1.1   mrg 
    399       1.1   mrg     key <KP1>  { [    KP_End,   KP_1,    ampersand ] }; //    <end> 1 &
    400       1.1   mrg     key <KP2>  { [   KP_Down,   KP_2,           at ] }; //   <down> 2 @
    401       1.1   mrg     key <KP3>  { [   KP_Next,   KP_3,   numbersign ] }; //   <next> 3 #
    402       1.1   mrg 
    403       1.1   mrg     key <KP0>  { [ KP_Insert,   KP_0,   apostrophe ] }; // <insert> 0 '
    404       1.1   mrg };
    405       1.1   mrg 
    406       1.1   mrg 
    407       1.1   mrg // Keypad number area with arrow symbols
    408       1.1   mrg // Copyright  2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    409       1.1   mrg //
    410  1.1.1.10   mrg // 
    411  1.1.1.10   mrg // Num                      Home
    412  1.1.1.10   mrg // Lock                    End
    413  1.1.1.10   mrg //         Page up
    414  1.1.1.10   mrg //  7   8   9          Page down
    415       1.1   mrg //                  Insert
    416       1.1   mrg //         Delete
    417  1.1.1.10   mrg //  4   5   6          Directions
    418  1.1.1.10   mrg //                   narrow no-break space
    419       1.1   mrg // 
    420       1.1   mrg //  1   2   3  
    421       1.1   mrg //                 1 None
    422       1.1   mrg //        2 Num Lock 
    423       1.1   mrg //  0                     3 Level3 
    424       1.1   mrg //                       4 Shift+Level3 
    425       1.1   mrg // 
    426       1.1   mrg partial keypad_keys
    427       1.1   mrg xkb_symbols "ossnumber" {
    428       1.1   mrg 
    429       1.1   mrg     key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
    430       1.1   mrg 
    431       1.1   mrg     key <KP7>  { [   KP_Home,   KP_7, 0x1002196, 0x10021D6 ] }; //   <home> 7  
    432       1.1   mrg     key <KP8>  { [     KP_Up,   KP_8, 0x1002191, 0x10021D1 ] }; //     <up> 8  
    433       1.1   mrg     key <KP9>  { [  KP_Prior,   KP_9, 0x1002197, 0x10021D7 ] }; //  <prior> 9  
    434  1.1.1.10   mrg 
    435       1.1   mrg     key <KP4>  { [   KP_Left,   KP_4, 0x1002190, 0x10021D0 ] }; //   <left> 4  
    436       1.1   mrg     key <KP5>  { [  KP_Begin,   KP_5, 0x1002194, 0x10021D4 ] }; //  <begin> 5  
    437       1.1   mrg     key <KP6>  { [  KP_Right,   KP_6, 0x1002192, 0x10021D2 ] }; //  <right> 6  
    438       1.1   mrg 
    439       1.1   mrg     key <KP1>  { [    KP_End,   KP_1, 0x1002199, 0x10021D9 ] }; //    <end> 1  
    440       1.1   mrg     key <KP2>  { [   KP_Down,   KP_2, 0x1002193, 0x10021D3 ] }; //   <down> 2  
    441       1.1   mrg     key <KP3>  { [   KP_Next,   KP_3, 0x1002198, 0x10021D8 ] }; //   <next> 3  
    442       1.1   mrg 
    443       1.1   mrg     key <KP0>  { [ KP_Insert,   KP_0, 0x1002195, 0x10021D5 ] }; // <insert> 0  
    444       1.1   mrg };
    445       1.1   mrg 
    446       1.1   mrg 
    447       1.1   mrg // Wang 725-3771-ae and 725-3771-uk keypad number area with additional arrow symbols
    448       1.1   mrg // Copyright  2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    449       1.1   mrg //
    450  1.1.1.10   mrg // 
    451  1.1.1.10   mrg // Num                      Home
    452  1.1.1.10   mrg // Lock                    End
    453  1.1.1.10   mrg //         Page up
    454  1.1.1.10   mrg //  7   8   9          Page down
    455       1.1   mrg //   <   >   ^         Insert
    456       1.1   mrg //         Delete
    457       1.1   mrg //  4   5   6          Directions
    458       1.1   mrg //   [    ]   $         narrow no-break space
    459       1.1   mrg // 
    460       1.1   mrg //  1   2   3  
    461       1.1   mrg //   &   @   #        1 None
    462       1.1   mrg //        2 Num Lock 
    463       1.1   mrg //  0                     3 Level3 
    464       1.1   mrg //         '              4 Shift+Level3 
    465       1.1   mrg // 
    466       1.1   mrg partial keypad_keys
    467       1.1   mrg xkb_symbols "ossnumber_wang" {
    468       1.1   mrg 
    469       1.1   mrg     key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
    470       1.1   mrg 
    471       1.1   mrg     key <KP7>  { [   KP_Home,   KP_7,         less, 0x1002196 ] }; //   <home> 7 < 
    472       1.1   mrg     key <KP8>  { [     KP_Up,   KP_8,      greater, 0x1002191 ] }; //     <up> 8 > 
    473       1.1   mrg     key <KP9>  { [  KP_Prior,   KP_9,  asciicircum, 0x1002197 ] }; //  <prior> 9 ^ 
    474  1.1.1.10   mrg 
    475       1.1   mrg     key <KP4>  { [   KP_Left,   KP_4,  bracketleft, 0x1002190 ] }; //   <left> 4 [ 
    476       1.1   mrg     key <KP5>  { [  KP_Begin,   KP_5, bracketright, 0x1002194 ] }; //  <begin> 5 ] 
    477       1.1   mrg     key <KP6>  { [  KP_Right,   KP_6,       dollar, 0x1002192 ] }; //  <right> 6 $ 
    478       1.1   mrg 
    479       1.1   mrg     key <KP1>  { [    KP_End,   KP_1,    ampersand, 0x1002199 ] }; //    <end> 1 & 
    480       1.1   mrg     key <KP2>  { [   KP_Down,   KP_2,           at, 0x1002193 ] }; //   <down> 2 @ 
    481       1.1   mrg     key <KP3>  { [   KP_Next,   KP_3,   numbersign, 0x1002198 ] }; //   <next> 3 # 
    482       1.1   mrg 
    483       1.1   mrg     key <KP0>  { [ KP_Insert,   KP_0,   apostrophe, 0x1002195 ] }; // <insert> 0 ' 
    484       1.1   mrg };
    485   1.1.1.2   mrg 
    486   1.1.1.3  ghen // Standard base "pc" layout only contains cursor keys, and then gets
    487   1.1.1.3  ghen // augmented with the digits later. If you define your own layout for
    488   1.1.1.3  ghen // the numpad you can inherit the cursors, but you'll have to define
    489   1.1.1.3  ghen // the digits yourself. This module can be included in the rules to
    490   1.1.1.3  ghen // define math operators; these are the variants used in computer
    491   1.1.1.3  ghen // languages that are based on ASCII. NoSymbol doesn't mean that
    492   1.1.1.3  ghen // nothing is bound to the key but that no assignment is done here.
    493   1.1.1.3  ghen // srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to
    494   1.1.1.3  ghen // be of type CTRL+ALT in order to assign server control events to
    495   1.1.1.3  ghen // them, but it uses the second level which is overwritten if we have
    496   1.1.1.3  ghen // more than one definition (shift state) for the key. Instead, here
    497   1.1.1.3  ghen // the commands are put at the fourth level.
    498   1.1.1.2   mrg partial keypad_keys
    499   1.1.1.3  ghen xkb_symbols "ops" {
    500   1.1.1.3  ghen     key <KPDV> { [ NoSymbol,  slash,     NoSymbol,  XF86_Ungrab     ] };
    501   1.1.1.3  ghen     key <KPMU> { [ NoSymbol,  asterisk,  NoSymbol,  XF86_ClearGrab  ] };
    502   1.1.1.3  ghen     key <KPSU> { [ NoSymbol,  minus,     NoSymbol,  XF86_Prev_VMode ] };
    503   1.1.1.3  ghen     key <KPAD> { [ NoSymbol,  plus,      NoSymbol,  XF86_Next_VMode ] };
    504   1.1.1.3  ghen     key <KPEQ> { [ NoSymbol,  equal      ] };
    505   1.1.1.3  ghen };
    506   1.1.1.2   mrg 
    507   1.1.1.3  ghen // Hexadecimal Numpad, by Roland Kaufmann <rlndkfmn at gmail dot com>
    508   1.1.1.3  ghen // License: BSD (also covers variant with ATM digit order)
    509   1.1.1.3  ghen // Third-level gives the letters used in hexadecimal numbers, or
    510   1.1.1.3  ghen // columns in small spreadsheets. As a bonus, having 'e' available at
    511   1.1.1.3  ghen // the center of the keyboard makes it easy to enter floating point
    512   1.1.1.3  ghen // numbers in scientific notation.
    513   1.1.1.3  ghen // Equal is added to start formulas (most numpads on PCs don't have
    514   1.1.1.3  ghen // their own equal key), comma as a list separator (as most
    515   1.1.1.3  ghen // programming languages wants period as a decimal separator) and
    516   1.1.1.3  ghen // colon to enter times and ranges. Someone also may want to represent
    517   1.1.1.3  ghen // multiplication and division in prose using x and colon.
    518   1.1.1.3  ghen // Two first levels are specified as NoSymbol to not override any
    519   1.1.1.3  ghen // previous specification. Combine this with another keypad specifier,
    520   1.1.1.3  ghen // e.g. "legacy".
    521   1.1.1.3  ghen partial keypad_keys
    522   1.1.1.3  ghen xkb_symbols "hex" {
    523   1.1.1.2   mrg     key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
    524   1.1.1.2   mrg 
    525  1.1.1.10   mrg     //             None       NumLock    AltGr
    526   1.1.1.2   mrg     // symbol row
    527   1.1.1.3  ghen     key <KPDV> { [ NoSymbol,  NoSymbol,  parenleft  ] };
    528   1.1.1.3  ghen     key <KPMU> { [ NoSymbol,  NoSymbol,  parenright ] };
    529   1.1.1.3  ghen     key <KPSU> { [ NoSymbol,  NoSymbol,  dollar     ] };
    530   1.1.1.2   mrg 
    531   1.1.1.2   mrg     // upper row
    532   1.1.1.3  ghen     key <KP7>  { [ NoSymbol,  NoSymbol,  a          ] };
    533   1.1.1.3  ghen     key <KP8>  { [ NoSymbol,  NoSymbol,  b          ] };
    534   1.1.1.3  ghen     key <KP9>  { [ NoSymbol,  NoSymbol,  c          ] };
    535  1.1.1.10   mrg 
    536   1.1.1.2   mrg     // home row
    537   1.1.1.3  ghen     key <KP4>  { [ NoSymbol,  NoSymbol,  d          ] };
    538   1.1.1.3  ghen     key <KP5>  { [ NoSymbol,  NoSymbol,  e          ] };
    539   1.1.1.3  ghen     key <KP6>  { [ NoSymbol,  NoSymbol,  f          ] };
    540   1.1.1.3  ghen     key <KPAD> { [ NoSymbol,  NoSymbol,  comma      ] };
    541   1.1.1.2   mrg 
    542   1.1.1.2   mrg     // lower row
    543   1.1.1.3  ghen     key <KP1>  { [ NoSymbol,  NoSymbol,  equal      ] };
    544   1.1.1.3  ghen     key <KP2>  { [ NoSymbol,  NoSymbol,  x          ] };
    545   1.1.1.3  ghen     key <KP3>  { [ NoSymbol,  NoSymbol,  colon      ] };
    546   1.1.1.2   mrg 
    547   1.1.1.2   mrg     // decimal row
    548   1.1.1.3  ghen     key <KP0>  { [ NoSymbol,  NoSymbol,  backslash  ] };
    549   1.1.1.3  ghen };
    550   1.1.1.3  ghen 
    551   1.1.1.3  ghen // Main numbers follows the traditions from ATMs and phones with
    552   1.1.1.3  ghen // numbers increasing downwards to the right. (It is easier to
    553   1.1.1.3  ghen // change the keyboard layout than to reprogram your local ATM;
    554   1.1.1.3  ghen // also cell-phones are becoming more common while calculators are
    555   1.1.1.3  ghen // becoming more rare).
    556   1.1.1.3  ghen // First level is left unspecified, so it may be combined with another
    557   1.1.1.3  ghen // layout, e.g. "legacy".
    558   1.1.1.3  ghen partial keypad_keys
    559   1.1.1.3  ghen xkb_symbols "atm" {
    560   1.1.1.3  ghen     // upper row
    561   1.1.1.3  ghen     key <KP7>  { [ NoSymbol,  KP_1 ] };
    562   1.1.1.3  ghen     key <KP8>  { [ NoSymbol,  KP_2 ] };
    563   1.1.1.3  ghen     key <KP9>  { [ NoSymbol,  KP_3 ] };
    564   1.1.1.3  ghen 
    565   1.1.1.3  ghen     // lower row
    566   1.1.1.3  ghen     key <KP1>  { [ NoSymbol,  KP_7 ] };
    567   1.1.1.3  ghen     key <KP2>  { [ NoSymbol,  KP_8 ] };
    568   1.1.1.3  ghen     key <KP3>  { [ NoSymbol,  KP_9 ] };
    569   1.1.1.2   mrg };
    570   1.1.1.7   mrg 
    571   1.1.1.7   mrg 
    572   1.1.1.9   mrg partial modifier_keys
    573   1.1.1.7   mrg xkb_symbols "pointerkeys" {
    574  1.1.1.10   mrg     key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
    575   1.1.1.7   mrg };
    576   1.1.1.7   mrg 
    577  1.1.1.10   mrg 
    578   1.1.1.7   mrg // Only numbers, operators and decimal separator,
    579   1.1.1.7   mrg // as seen on keypad overlay on Japanese keyboard.
    580   1.1.1.7   mrg // 
    581   1.1.1.7   mrg // 789*
    582   1.1.1.7   mrg // 
    583   1.1.1.7   mrg // 456-
    584   1.1.1.7   mrg // 
    585   1.1.1.7   mrg // 123+
    586   1.1.1.7   mrg // 
    587   1.1.1.7   mrg // 0 /
    588   1.1.1.7   mrg // 
    589   1.1.1.7   mrg partial keypad_keys
    590   1.1.1.7   mrg xkb_symbols "numoperdecsep" {
    591   1.1.1.7   mrg     key  <KO7> {	[  KP_7	]	};
    592   1.1.1.7   mrg     key  <KO8> {	[  KP_8	]	};
    593   1.1.1.7   mrg     key  <KO9> {	[  KP_9	]	};
    594   1.1.1.7   mrg // ClsGrb kills whichever client has a grab in effect
    595   1.1.1.7   mrg     key <KOMU> {
    596   1.1.1.7   mrg         type="CTRL+ALT",
    597   1.1.1.9   mrg         symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]
    598   1.1.1.7   mrg     };
    599   1.1.1.7   mrg 
    600   1.1.1.7   mrg     key  <KO4> {	[  KP_4	]	};
    601   1.1.1.7   mrg     key  <KO5> {	[  KP_5	]	};
    602   1.1.1.7   mrg     key  <KO6> {	[  KP_6	]	};
    603   1.1.1.7   mrg // -VMode switches to the previous video mode
    604   1.1.1.7   mrg     key <KOSU> {
    605   1.1.1.7   mrg         type="CTRL+ALT",
    606   1.1.1.9   mrg         symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]
    607   1.1.1.7   mrg     };
    608   1.1.1.7   mrg 
    609   1.1.1.7   mrg     key  <KO1> {	[  KP_1	]	};
    610   1.1.1.7   mrg     key  <KO2> {	[  KP_2	]	};
    611   1.1.1.7   mrg     key  <KO3> {	[  KP_3	]	};
    612   1.1.1.7   mrg // +VMode switches to the next video mode
    613   1.1.1.7   mrg     key <KOAD> {
    614   1.1.1.7   mrg         type="CTRL+ALT",
    615   1.1.1.9   mrg         symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ]
    616   1.1.1.7   mrg     };
    617   1.1.1.7   mrg 
    618   1.1.1.7   mrg     key  <KO0> {	[  KP_0	]	};
    619   1.1.1.7   mrg     key <KODL> {	[ KP_Decimal ]	};
    620   1.1.1.7   mrg // Ungrab cancels server/keyboard/pointer grabs
    621   1.1.1.7   mrg     key <KODV> {
    622   1.1.1.7   mrg         type="CTRL+ALT",
    623   1.1.1.9   mrg         symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]
    624   1.1.1.7   mrg     };
    625   1.1.1.7   mrg };
    626