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