keypad revision 0412cded
1154daed1Smrgpartial hidden keypad_keys 2154daed1Smrgxkb_symbols "overlay" { 3154daed1Smrg include "keypad(overlay1)" 4154daed1Smrg}; 5154daed1Smrg 6154daed1Smrgpartial hidden keypad_keys 7154daed1Smrgxkb_symbols "overlay1" { 8154daed1Smrg 9154daed1Smrg // Begin "Keypad" section 10154daed1Smrg 11154daed1Smrg key <KP7> { [ KP_Home ], overlay1=<KO7> }; 12154daed1Smrg key <KP8> { [ KP_Up ], overlay1=<KO8> }; 13154daed1Smrg key <KP9> { [ KP_Prior ], overlay1=<KO9> }; 14154daed1Smrg 15154daed1Smrg key <KP4> { [ KP_Left ], overlay1=<KO4> }; 16154daed1Smrg key <KP5> { [ KP_Begin ], overlay1=<KO5> }; 17154daed1Smrg key <KP6> { [ KP_Right ], overlay1=<KO6> }; 18154daed1Smrg 19154daed1Smrg key <KP1> { [ KP_End ], overlay1=<KO1> }; 20154daed1Smrg key <KP2> { [ KP_Down ], overlay1=<KO2> }; 21154daed1Smrg key <KP3> { [ KP_Next ], overlay1=<KO3> }; 22154daed1Smrg 23154daed1Smrg key <KP0> { [ KP_Insert ], overlay1=<KO0> }; 24154daed1Smrg key <KPDL> { [ KP_Delete ], overlay1=<KODL> }; 25154daed1Smrg 26154daed1Smrg key <KO7> { [ KP_7 ] }; 27154daed1Smrg key <KO8> { [ KP_8 ] }; 28154daed1Smrg key <KO9> { [ KP_9 ] }; 29154daed1Smrg 30154daed1Smrg key <KO4> { [ KP_4 ] }; 31154daed1Smrg key <KO5> { [ KP_5 ] }; 32154daed1Smrg key <KO6> { [ KP_6 ] }; 33154daed1Smrg 34154daed1Smrg key <KO1> { [ KP_1 ] }; 35154daed1Smrg key <KO2> { [ KP_2 ] }; 36154daed1Smrg key <KO3> { [ KP_3 ] }; 37154daed1Smrg 38154daed1Smrg key <KO0> { [ KP_0 ] }; 39154daed1Smrg key <KODL> { [ KP_Decimal ] }; 40154daed1Smrg 41154daed1Smrg // End "Keypad" section 42154daed1Smrg}; 43154daed1Smrg 44154daed1Smrgpartial hidden keypad_keys 45154daed1Smrgxkb_symbols "overlay2" { 46154daed1Smrg 47154daed1Smrg // Begin "Keypad" section 48154daed1Smrg 49154daed1Smrg key <KP7> { [ KP_Home ], overlay2=<KO7> }; 50154daed1Smrg key <KP8> { [ KP_Up ], overlay2=<KO8> }; 51154daed1Smrg key <KP9> { [ KP_Prior ], overlay2=<KO9> }; 52154daed1Smrg 53154daed1Smrg key <KP4> { [ KP_Left ], overlay2=<KO4> }; 54154daed1Smrg key <KP5> { [ KP_Begin ], overlay2=<KO5> }; 55154daed1Smrg key <KP6> { [ KP_Right ], overlay2=<KO6> }; 56154daed1Smrg 57154daed1Smrg key <KP1> { [ KP_End ], overlay2=<KO1> }; 58154daed1Smrg key <KP2> { [ KP_Down ], overlay2=<KO2> }; 59154daed1Smrg key <KP3> { [ KP_Next ], overlay2=<KO3> }; 60154daed1Smrg 61154daed1Smrg key <KP0> { [ KP_Insert ], overlay2=<KO0> }; 62154daed1Smrg key <KPDL> { [ KP_Delete ], overlay2=<KODL> }; 63154daed1Smrg 64154daed1Smrg key <KO7> { [ KP_7 ] }; 65154daed1Smrg key <KO8> { [ KP_8 ] }; 66154daed1Smrg key <KO9> { [ KP_9 ] }; 67154daed1Smrg 68154daed1Smrg key <KO4> { [ KP_4 ] }; 69154daed1Smrg key <KO5> { [ KP_5 ] }; 70154daed1Smrg key <KO6> { [ KP_6 ] }; 71154daed1Smrg 72154daed1Smrg key <KO1> { [ KP_1 ] }; 73154daed1Smrg key <KO2> { [ KP_2 ] }; 74154daed1Smrg key <KO3> { [ KP_3 ] }; 75154daed1Smrg 76154daed1Smrg key <KO0> { [ KP_0 ] }; 77154daed1Smrg key <KODL> { [ KP_Decimal ] }; 78154daed1Smrg 79154daed1Smrg // End "Keypad" section 80154daed1Smrg}; 81154daed1Smrg 82154daed1Smrgpartial hidden default keypad_keys 83154daed1Smrgxkb_symbols "x11" { 84154daed1Smrg// Ungrab cancels server/keyboard/pointer grabs 85154daed1Smrg key <KPDV> { 86154daed1Smrg type="CTRL+ALT", 870412cdedSmrg symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] 88154daed1Smrg }; 89154daed1Smrg 90154daed1Smrg// ClsGrb kills whichever client has a grab in effect 91154daed1Smrg key <KPMU> { 92154daed1Smrg type="CTRL+ALT", 930412cdedSmrg symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] 94154daed1Smrg }; 95154daed1Smrg 96154daed1Smrg// -VMode switches to the previous video mode 97154daed1Smrg key <KPSU> { 98154daed1Smrg type="CTRL+ALT", 990412cdedSmrg symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] 100154daed1Smrg }; 101154daed1Smrg 102154daed1Smrg key <KP7> { [ KP_Home, KP_7 ] }; 103154daed1Smrg key <KP8> { [ KP_Up, KP_8 ] }; 104154daed1Smrg key <KP9> { [ KP_Prior, KP_9 ] }; 105154daed1Smrg 106154daed1Smrg// +VMode switches to the next video mode 107154daed1Smrg key <KPAD> { 108154daed1Smrg type="CTRL+ALT", 1090412cdedSmrg symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] 110154daed1Smrg }; 111154daed1Smrg 112154daed1Smrg key <KP4> { [ KP_Left, KP_4 ] }; 113154daed1Smrg key <KP5> { [ KP_Begin, KP_5 ] }; 114154daed1Smrg key <KP6> { [ KP_Right, KP_6 ] }; 115154daed1Smrg 116154daed1Smrg key <KP1> { [ KP_End, KP_1 ] }; 117154daed1Smrg key <KP2> { [ KP_Down, KP_2 ] }; 118154daed1Smrg key <KP3> { [ KP_Next, KP_3 ] }; 119154daed1Smrg key <KPEN> { [ KP_Enter ] }; 120154daed1Smrg key <KPEQ> { [ KP_Equal ] }; 121154daed1Smrg 122154daed1Smrg key <KP0> { [ KP_Insert, KP_0 ] }; 123154daed1Smrg key <KPDL> { [ KP_Delete, KP_Decimal ] }; 12447fb91feSmrg key <KPPT> { [ KP_Decimal, KP_Decimal ] }; 125154daed1Smrg}; 126154daed1Smrg 127154daed1Smrg 128154daed1Smrg// Legacy PC keypad definition 129154daed1Smrg// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 130154daed1Smrgkeypad_keys 131154daed1Smrgxkb_symbols "legacy" { 132154daed1Smrg 133154daed1Smrg include "keypad(core)" 134154daed1Smrg include "keypad(legacymath)" 135154daed1Smrg include "keypad(legacynumber)" 136154daed1Smrg include "kpdl(dot)" 137154daed1Smrg}; 138154daed1Smrg 139154daed1Smrg 140154daed1Smrg// Legacy Wang 725-3771-ae and 725-3771-uk keypad definition 141154daed1Smrg// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 142154daed1Smrgkeypad_keys 143154daed1Smrgxkb_symbols "legacy_wang" { 144154daed1Smrg 145154daed1Smrg include "keypad(core)" 146154daed1Smrg include "keypad(legacymath)" 147154daed1Smrg include "keypad(legacynumber_wang)" 148154daed1Smrg include "kpdl(dot)" 149154daed1Smrg}; 150154daed1Smrg 151154daed1Smrg 152154daed1Smrg// Complete new keypad definition 153154daed1Smrg// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 154154daed1Smrgkeypad_keys 155154daed1Smrgxkb_symbols "oss" { 156154daed1Smrg 157154daed1Smrg include "keypad(core)" 158154daed1Smrg include "keypad(ossmath)" 159154daed1Smrg include "keypad(ossnumber)" 160154daed1Smrg include "kpdl(dotoss)" 161154daed1Smrg}; 162154daed1Smrg 163154daed1Smrg 164154daed1Smrg// Latin9 restriction of new keypad definition 165154daed1Smrg// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 166154daed1Smrgkeypad_keys 167154daed1Smrgxkb_symbols "oss_latin9" { 168154daed1Smrg 169154daed1Smrg include "keypad(core)" 170154daed1Smrg include "keypad(ossmath_latin9)" 171154daed1Smrg include "keypad(legacynumber)" 172154daed1Smrg include "kpdl(dotoss_latin9)" 173154daed1Smrg}; 174154daed1Smrg 175154daed1Smrg 176154daed1Smrg// Wang 725-3771-ae and 725-3771-uk keypad variant of oss keypad 177154daed1Smrg// Copyright © 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 178154daed1Smrgkeypad_keys 179154daed1Smrgxkb_symbols "oss_wang" { 180154daed1Smrg 181154daed1Smrg include "keypad(core)" 182154daed1Smrg include "keypad(ossmath)" 183154daed1Smrg include "keypad(ossnumber_wang)" 184154daed1Smrg include "kpdl(dotoss)" 185154daed1Smrg}; 186154daed1Smrg 187154daed1Smrg 188154daed1Smrg// Forward-looking keypad definition 189154daed1Smrg// Won't work with applications that make ASCII assumptions 190154daed1Smrg// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 191154daed1Smrgkeypad_keys 192154daed1Smrgxkb_symbols "future" { 193154daed1Smrg 194154daed1Smrg include "keypad(core)" 195154daed1Smrg include "keypad(futuremath)" 196154daed1Smrg include "keypad(ossnumber)" 197154daed1Smrg include "kpdl(commaoss)" 198154daed1Smrg}; 199154daed1Smrg 200154daed1Smrg 201154daed1Smrg// Forward-looking keypad definition 202154daed1Smrg// Won't work with applications that make ASCII assumptions 203154daed1Smrg// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 204154daed1Smrgkeypad_keys 205154daed1Smrgxkb_symbols "future_wang" { 206154daed1Smrg 207154daed1Smrg include "keypad(core)" 208154daed1Smrg include "keypad(futuremath)" 209154daed1Smrg include "keypad(ossnumber_wang)" 210154daed1Smrg include "kpdl(commaoss)" 211154daed1Smrg}; 212154daed1Smrg 213154daed1Smrg 214154daed1Smrg// Keypad keys nobody changes 215154daed1Smrg// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 216154daed1Smrgpartial keypad_keys 217154daed1Smrgxkb_symbols "core" { 218154daed1Smrg 219154daed1Smrg modifier_map Mod2 { Num_Lock }; 220154daed1Smrg 221154daed1Smrg key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] }; 222154daed1Smrg key <KPEN> { [ KP_Enter ] }; 223154daed1Smrg key <KPEQ> { [ KP_Equal ] }; 224154daed1Smrg}; 225154daed1Smrg 226154daed1Smrg 227154daed1Smrg// Legacy keypad math area 228154daed1Smrg// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 229154daed1Smrg// 230154daed1Smrg// ┏━━━━━┱─────┬─────┬─────┐ 231154daed1Smrg// ┃Num ┃ ₁ │ ₂ │ ₃ │ ₁ <XF86_Ungrab> 232154daed1Smrg// ┃Lock⇭┃ / │ * │ - │ ₂ <XF86_ClearGrab> 233154daed1Smrg// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode> 234154daed1Smrg// │ ₄ │ ₄ <XF86_Next_VMode> 235154daed1Smrg// │ │ 236154daed1Smrg// ┤ │ 1 None 237154daed1Smrg// │ │ 2 Ctrl+Alt 238154daed1Smrg// │ + │ 239154daed1Smrg// ╆━━━━━┪ 240154daed1Smrgpartial keypad_keys 241154daed1Smrgxkb_symbols "legacymath" { 242154daed1Smrg 243154daed1Smrg key.type[Group1]="CTRL+ALT" ; 244154daed1Smrg 2450412cdedSmrg key <KPDV> { [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; // / <XF86_Ungrab> 2460412cdedSmrg key <KPMU> { [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; // * <XF86_ClearGrab> 2470412cdedSmrg key <KPSU> { [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode> 248154daed1Smrg 2490412cdedSmrg key <KPAD> { [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; // + <XF86_Next_VMode> 250154daed1Smrg 251154daed1Smrg}; 252154daed1Smrg 253154daed1Smrg 254154daed1Smrg// Keypad math area with non-CS operators 255154daed1Smrg// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 256154daed1Smrg// 257154daed1Smrg// ┏━━━━━┱─────┬─────┬─────┐ 258154daed1Smrg// ┃Num ┃ ∕ ₁ │ . ₂ │ − ₃ │ ₁ <XF86_Ungrab> 259154daed1Smrg// ┃Lock⇭┃ / ÷ │ * × │ - − │ ₂ <XF86_ClearGrab> 260154daed1Smrg// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode> 261154daed1Smrg// │ + ₄ │ ₄ <XF86_Next_VMode> 262154daed1Smrg// │ │ 263154daed1Smrg// ┤ │ 1 None 264154daed1Smrg// │ │ 2 Level3 ⇮ 265154daed1Smrg// │ + + │ 3 Shift+Level3 ⇧⇮ 266154daed1Smrg// ╆━━━━━┪ 4 Ctrl+Alt 267154daed1Smrgpartial keypad_keys 268154daed1Smrgxkb_symbols "ossmath" { 269154daed1Smrg 2700412cdedSmrg key.type[Group1]="CTRL+ALT" ; 271154daed1Smrg 2720412cdedSmrg key <KPDV> { [ KP_Divide, 0x1002215, 0x10000F7, VoidSymbol, XF86_Ungrab ] }; // / ∕ ÷ <XF86_Ungrab> 2730412cdedSmrg key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol, XF86_ClearGrab ] }; // * ⋅ × <XF86_ClearGrab> 2740412cdedSmrg key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - − − <XF86_Prev_VMode> 2750412cdedSmrg key <KPAD> { [ KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode> 276154daed1Smrg 277154daed1Smrg}; 278154daed1Smrg 279154daed1Smrg 280154daed1Smrg// Keypad math area with non-CS operators in first levels 281154daed1Smrg// As demanded by users not interested in legacy pre-unicode junk 282154daed1Smrg// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 283154daed1Smrg// 284154daed1Smrg// ┏━━━━━┱─────┬─────┬─────┐ 285154daed1Smrg// ┃Num ┃ / ₁ │ * ₂ │ - ₃ │ ₁ <XF86_Ungrab> 286154daed1Smrg// ┃Lock⇭┃ ∕ ÷ │ . × │ − − │ ₂ <XF86_ClearGrab> 287154daed1Smrg// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode> 288154daed1Smrg// │ + ₄ │ ₄ <XF86_Next_VMode> 289154daed1Smrg// │ │ 290154daed1Smrg// ┤ │ 1 None 291154daed1Smrg// │ │ 2 Level3 ⇮ 292154daed1Smrg// │ + + │ 3 Shift+Level3 ⇧⇮ 293154daed1Smrg// ╆━━━━━┪ 4 Ctrl+Alt 294154daed1Smrgpartial keypad_keys 295154daed1Smrgxkb_symbols "futuremath" { 296154daed1Smrg 297154daed1Smrg key.type[Group1]="FOUR_LEVEL_X" ; 298154daed1Smrg 299154daed1Smrg key <KPDV> { [ 0x1002215, KP_Divide, 0x10000F7, XF86_Ungrab ] }; // ∕ / ÷ <XF86_Ungrab> 300154daed1Smrg key <KPMU> { [ 0x10022C5, KP_Multiply, 0x10000D7, XF86_ClearGrab ] }; // ⋅ * × <XF86_ClearGrab> 301154daed1Smrg key <KPSU> { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; // − - − <XF86_Prev_VMode> 302154daed1Smrg 303154daed1Smrg key <KPAD> { [ 0x100002B, KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode> 304154daed1Smrg}; 305154daed1Smrg 306154daed1Smrg 307154daed1Smrg// Keypad math area with non-CS operators, restricted to latin9 308154daed1Smrg// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 309154daed1Smrg// 310154daed1Smrg// ┏━━━━━┱─────┬─────┬─────┐ 311154daed1Smrg// ┃Num ┃ / ₁ │ · ₂ │ - ₃ │ ₁ <XF86_Ungrab> 312154daed1Smrg// ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂ <XF86_ClearGrab> 313154daed1Smrg// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode> 314154daed1Smrg// │ + ₄ │ ₄ <XF86_Next_VMode> 315154daed1Smrg// │ │ 316154daed1Smrg// ┤ │ 1 None 317154daed1Smrg// │ │ 2 Level3 ⇮ 318154daed1Smrg// │ + + │ 3 Shift+Level3 ⇧⇮ 319154daed1Smrg// ╆━━━━━┪ 4 Ctrl+Alt 320154daed1Smrgpartial keypad_keys 321154daed1Smrgxkb_symbols "ossmath_latin9" { 322154daed1Smrg 323154daed1Smrg key.type[Group1]="FOUR_LEVEL_X"; 324154daed1Smrg 325154daed1Smrg key <KPDV> { [ KP_Divide, slash, division, XF86_Ungrab ] }; // / / ÷ <XF86_Ungrab> 326154daed1Smrg key <KPMU> { [ KP_Multiply, periodcentered, multiply, XF86_ClearGrab ] }; // * · × <XF86_ClearGrab> 327154daed1Smrg key <KPSU> { [ KP_Subtract, minus, minus, XF86_Prev_VMode ] }; // - - - <XF86_Prev_VMode> 328154daed1Smrg 329154daed1Smrg key <KPAD> { [ KP_Add, plus, plus, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode> 330154daed1Smrg}; 331154daed1Smrg 332154daed1Smrg 333154daed1Smrg// Legacy keypad number area 334154daed1Smrg// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 335154daed1Smrg// 336154daed1Smrg// ┏━━━━━┱ ⇱ Home 337154daed1Smrg// ┃Num ┃ ⇲ End 338154daed1Smrg// ┃Lock⇭┃ ⇞ Page up 339154daed1Smrg// ┡━━━━━╃─────┼─────┼ ⇟ Page down 340154daed1Smrg// │ 7 │ 8 │ 9 │ ⇞ Page up 341154daed1Smrg// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert 342154daed1Smrg// ├─────┼─────┼─────┤ ␥ Delete 343154daed1Smrg// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions 344154daed1Smrg// │ ⇦ │ │ ⇨ │ 345154daed1Smrg// ├─────┼─────┼─────╆ 346154daed1Smrg// │ 1 │ 2 │ 3 ┃ 347154daed1Smrg// │ ⇲ │ ⇩ │ ⇟ ┃ 1 None 348154daed1Smrg// ├─────┴─────┼─────┨ 2 Num Lock ⇭ 349154daed1Smrg// │ 0 │ 350154daed1Smrg// │ ⎀ │ 351154daed1Smrg// └───────────┴ 352154daed1Smrgpartial keypad_keys 353154daed1Smrgxkb_symbols "legacynumber" { 354154daed1Smrg 355154daed1Smrg key.type[Group1]="KEYPAD" ; 356154daed1Smrg 357154daed1Smrg key <KP7> { [ KP_Home, KP_7 ] }; // <home> 7 358154daed1Smrg key <KP8> { [ KP_Up, KP_8 ] }; // <up> 8 359154daed1Smrg key <KP9> { [ KP_Prior, KP_9 ] }; // <prior> 9 360154daed1Smrg 361154daed1Smrg key <KP4> { [ KP_Left, KP_4 ] }; // <left> 4 362154daed1Smrg key <KP5> { [ KP_Begin, KP_5 ] }; // <begin> 5 363154daed1Smrg key <KP6> { [ KP_Right, KP_6 ] }; // <right> 6 364154daed1Smrg 365154daed1Smrg key <KP1> { [ KP_End, KP_1 ] }; // <end> 1 366154daed1Smrg key <KP2> { [ KP_Down, KP_2 ] }; // <down> 2 367154daed1Smrg key <KP3> { [ KP_Next, KP_3 ] }; // <next> 3 368154daed1Smrg 369154daed1Smrg key <KP0> { [ KP_Insert, KP_0 ] }; // <insert> 0 370154daed1Smrg}; 371154daed1Smrg 372154daed1Smrg 373154daed1Smrg// Legacy Wang 725-3771-ae and 725-3771-uk keypad number area 374154daed1Smrg// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 375154daed1Smrg// This is actually a three-level keypad, declared as four-level 376154daed1Smrg// to avoid defining a new type 377154daed1Smrg// 378154daed1Smrg// ┏━━━━━┱ ⇱ Home 379154daed1Smrg// ┃Num ┃ ⇲ End 380154daed1Smrg// ┃Lock⇭┃ ⇞ Page up 381154daed1Smrg// ┡━━━━━╃─────┼─────┼ ⇟ Page down 382154daed1Smrg// │ 7 │ 8 │ 9 │ ⇞ Page up 383154daed1Smrg// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert 384154daed1Smrg// ├─────┼─────┼─────┤ ␥ Delete 385154daed1Smrg// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions 386154daed1Smrg// │ ⇦ [ │ ] │ ⇨ $ │ 387154daed1Smrg// ├─────┼─────┼─────╆ 388154daed1Smrg// │ 1 │ 2 │ 3 ┃ 389154daed1Smrg// │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None 390154daed1Smrg// ├─────┴─────┼─────┨ 2 Num Lock ⇭ 391154daed1Smrg// │ 0 │ 3 Level3 ⇮ 392154daed1Smrg// │ ⎀ │ 393154daed1Smrg// └───────────┴ 394154daed1Smrgpartial keypad_keys 395154daed1Smrgxkb_symbols "legacynumber_wang" { 396154daed1Smrg 397154daed1Smrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 398154daed1Smrg 399154daed1Smrg key <KP7> { [ KP_Home, KP_7, less ] }; // <home> 7 < 400154daed1Smrg key <KP8> { [ KP_Up, KP_8, greater ] }; // <up> 8 > 401154daed1Smrg key <KP9> { [ KP_Prior, KP_9, asciicircum ] }; // <prior> 9 ^ 402154daed1Smrg 403154daed1Smrg key <KP4> { [ KP_Left, KP_4, bracketleft ] }; // <left> 4 [ 404154daed1Smrg key <KP5> { [ KP_Begin, KP_5, bracketright ] }; // <begin> 5 ] 405154daed1Smrg key <KP6> { [ KP_Right, KP_6, dollar ] }; // <right> 6 $ 406154daed1Smrg 407154daed1Smrg key <KP1> { [ KP_End, KP_1, ampersand ] }; // <end> 1 & 408154daed1Smrg key <KP2> { [ KP_Down, KP_2, at ] }; // <down> 2 @ 409154daed1Smrg key <KP3> { [ KP_Next, KP_3, numbersign ] }; // <next> 3 # 410154daed1Smrg 411154daed1Smrg key <KP0> { [ KP_Insert, KP_0, apostrophe ] }; // <insert> 0 ' 412154daed1Smrg}; 413154daed1Smrg 414154daed1Smrg 415154daed1Smrg// Keypad number area with arrow symbols 416154daed1Smrg// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 417154daed1Smrg// 418154daed1Smrg// ┏━━━━━┱ ⇱ Home 419154daed1Smrg// ┃Num ┃ ⇲ End 420154daed1Smrg// ┃Lock⇭┃ ⇞ Page up 421154daed1Smrg// ┡━━━━━╃─────┼─────┼ ⇟ Page down 422154daed1Smrg// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ ⇞ Page up 423154daed1Smrg// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert 424154daed1Smrg// ├─────┼─────┼─────┤ ␥ Delete 425154daed1Smrg// │ 4 ⇐ │ 5 ⇔ │ 6 ⇗ │ ⇦⇧⇨⇩ Directions 426154daed1Smrg// │ ⇦ ← │ ↔ │ ⇨ ↗ │ ⍽ narrow no-break space 427154daed1Smrg// ├─────┼─────┼─────╆ 428154daed1Smrg// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃ 429154daed1Smrg// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ 1 None 430154daed1Smrg// ├─────┴─────┼─────┨ 2 Num Lock ⇭ 431154daed1Smrg// │ 0 ⇕ │ 3 Level3 ⇮ 432154daed1Smrg// │ ⎀ ↕ │ 4 Shift+Level3 ⇧⇮ 433154daed1Smrg// └───────────┴ 434154daed1Smrgpartial keypad_keys 435154daed1Smrgxkb_symbols "ossnumber" { 436154daed1Smrg 437154daed1Smrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 438154daed1Smrg 439154daed1Smrg key <KP7> { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // <home> 7 ↖ ⇖ 440154daed1Smrg key <KP8> { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // <up> 8 ↑ ⇑ 441154daed1Smrg key <KP9> { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // <prior> 9 ↗ ⇗ 442154daed1Smrg 443154daed1Smrg key <KP4> { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // <left> 4 ← ⇐ 444154daed1Smrg key <KP5> { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // <begin> 5 ↔ ⇔ 445154daed1Smrg key <KP6> { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // <right> 6 → ⇒ 446154daed1Smrg 447154daed1Smrg key <KP1> { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // <end> 1 ↙ ⇙ 448154daed1Smrg key <KP2> { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // <down> 2 ↓ ⇓ 449154daed1Smrg key <KP3> { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // <next> 3 ↘ ⇘ 450154daed1Smrg 451154daed1Smrg key <KP0> { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // <insert> 0 ↕ ⇕ 452154daed1Smrg}; 453154daed1Smrg 454154daed1Smrg 455154daed1Smrg// Wang 725-3771-ae and 725-3771-uk keypad number area with additional arrow symbols 456154daed1Smrg// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 457154daed1Smrg// 458154daed1Smrg// ┏━━━━━┱ ⇱ Home 459154daed1Smrg// ┃Num ┃ ⇲ End 460154daed1Smrg// ┃Lock⇭┃ ⇞ Page up 461154daed1Smrg// ┡━━━━━╃─────┼─────┼ ⇟ Page down 462154daed1Smrg// │ 7 ↖ │ 8 ↑ │ 9 ↗ │ ⇞ Page up 463154daed1Smrg// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert 464154daed1Smrg// ├─────┼─────┼─────┤ ␥ Delete 465154daed1Smrg// │ 4 ← │ 5 ↔ │ 6 → │ ⇦⇧⇨⇩ Directions 466154daed1Smrg// │ ⇦ [ │ ] │ ⇨ $ │ ⍽ narrow no-break space 467154daed1Smrg// ├─────┼─────┼─────╆ 468154daed1Smrg// │ 1 ↙ │ 2 ↓ │ 3 ↘ ┃ 469154daed1Smrg// │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None 470154daed1Smrg// ├─────┴─────┼─────┨ 2 Num Lock ⇭ 471154daed1Smrg// │ 0 ↕ │ 3 Level3 ⇮ 472154daed1Smrg// │ ⎀ ' │ 4 Shift+Level3 ⇧⇮ 473154daed1Smrg// └───────────┴ 474154daed1Smrgpartial keypad_keys 475154daed1Smrgxkb_symbols "ossnumber_wang" { 476154daed1Smrg 477154daed1Smrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 478154daed1Smrg 479154daed1Smrg key <KP7> { [ KP_Home, KP_7, less, 0x1002196 ] }; // <home> 7 < ↖ 480154daed1Smrg key <KP8> { [ KP_Up, KP_8, greater, 0x1002191 ] }; // <up> 8 > ↑ 481154daed1Smrg key <KP9> { [ KP_Prior, KP_9, asciicircum, 0x1002197 ] }; // <prior> 9 ^ ↗ 482154daed1Smrg 483154daed1Smrg key <KP4> { [ KP_Left, KP_4, bracketleft, 0x1002190 ] }; // <left> 4 [ ← 484154daed1Smrg key <KP5> { [ KP_Begin, KP_5, bracketright, 0x1002194 ] }; // <begin> 5 ] ↔ 485154daed1Smrg key <KP6> { [ KP_Right, KP_6, dollar, 0x1002192 ] }; // <right> 6 $ → 486154daed1Smrg 487154daed1Smrg key <KP1> { [ KP_End, KP_1, ampersand, 0x1002199 ] }; // <end> 1 & ↙ 488154daed1Smrg key <KP2> { [ KP_Down, KP_2, at, 0x1002193 ] }; // <down> 2 @ ↓ 489154daed1Smrg key <KP3> { [ KP_Next, KP_3, numbersign, 0x1002198 ] }; // <next> 3 # ↘ 490154daed1Smrg 491154daed1Smrg key <KP0> { [ KP_Insert, KP_0, apostrophe, 0x1002195 ] }; // <insert> 0 ' ↕ 492154daed1Smrg}; 4935a35480eSmrg 494c067fea9Sghen// Standard base "pc" layout only contains cursor keys, and then gets 495c067fea9Sghen// augmented with the digits later. If you define your own layout for 496c067fea9Sghen// the numpad you can inherit the cursors, but you'll have to define 497c067fea9Sghen// the digits yourself. This module can be included in the rules to 498c067fea9Sghen// define math operators; these are the variants used in computer 499c067fea9Sghen// languages that are based on ASCII. NoSymbol doesn't mean that 500c067fea9Sghen// nothing is bound to the key but that no assignment is done here. 501c067fea9Sghen// srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to 502c067fea9Sghen// be of type CTRL+ALT in order to assign server control events to 503c067fea9Sghen// them, but it uses the second level which is overwritten if we have 504c067fea9Sghen// more than one definition (shift state) for the key. Instead, here 505c067fea9Sghen// the commands are put at the fourth level. 5065a35480eSmrgpartial keypad_keys 507c067fea9Sghenxkb_symbols "ops" { 508c067fea9Sghen key <KPDV> { [ NoSymbol, slash, NoSymbol, XF86_Ungrab ] }; 509c067fea9Sghen key <KPMU> { [ NoSymbol, asterisk, NoSymbol, XF86_ClearGrab ] }; 510c067fea9Sghen key <KPSU> { [ NoSymbol, minus, NoSymbol, XF86_Prev_VMode ] }; 511c067fea9Sghen key <KPAD> { [ NoSymbol, plus, NoSymbol, XF86_Next_VMode ] }; 512c067fea9Sghen key <KPEQ> { [ NoSymbol, equal ] }; 513c067fea9Sghen}; 5145a35480eSmrg 515c067fea9Sghen// Hexadecimal Numpad, by Roland Kaufmann <rlndkfmn at gmail dot com> 516c067fea9Sghen// License: BSD (also covers variant with ATM digit order) 517c067fea9Sghen// Third-level gives the letters used in hexadecimal numbers, or 518c067fea9Sghen// columns in small spreadsheets. As a bonus, having 'e' available at 519c067fea9Sghen// the center of the keyboard makes it easy to enter floating point 520c067fea9Sghen// numbers in scientific notation. 521c067fea9Sghen// Equal is added to start formulas (most numpads on PCs don't have 522c067fea9Sghen// their own equal key), comma as a list separator (as most 523c067fea9Sghen// programming languages wants period as a decimal separator) and 524c067fea9Sghen// colon to enter times and ranges. Someone also may want to represent 525c067fea9Sghen// multiplication and division in prose using x and colon. 526c067fea9Sghen// Two first levels are specified as NoSymbol to not override any 527c067fea9Sghen// previous specification. Combine this with another keypad specifier, 528c067fea9Sghen// e.g. "legacy". 529c067fea9Sghenpartial keypad_keys 530c067fea9Sghenxkb_symbols "hex" { 5315a35480eSmrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 5325a35480eSmrg 533c067fea9Sghen // None NumLock AltGr 5345a35480eSmrg // symbol row 535c067fea9Sghen key <KPDV> { [ NoSymbol, NoSymbol, parenleft ] }; 536c067fea9Sghen key <KPMU> { [ NoSymbol, NoSymbol, parenright ] }; 537c067fea9Sghen key <KPSU> { [ NoSymbol, NoSymbol, dollar ] }; 5385a35480eSmrg 5395a35480eSmrg // upper row 540c067fea9Sghen key <KP7> { [ NoSymbol, NoSymbol, a ] }; 541c067fea9Sghen key <KP8> { [ NoSymbol, NoSymbol, b ] }; 542c067fea9Sghen key <KP9> { [ NoSymbol, NoSymbol, c ] }; 5435a35480eSmrg 5445a35480eSmrg // home row 545c067fea9Sghen key <KP4> { [ NoSymbol, NoSymbol, d ] }; 546c067fea9Sghen key <KP5> { [ NoSymbol, NoSymbol, e ] }; 547c067fea9Sghen key <KP6> { [ NoSymbol, NoSymbol, f ] }; 548c067fea9Sghen key <KPAD> { [ NoSymbol, NoSymbol, comma ] }; 5495a35480eSmrg 5505a35480eSmrg // lower row 551c067fea9Sghen key <KP1> { [ NoSymbol, NoSymbol, equal ] }; 552c067fea9Sghen key <KP2> { [ NoSymbol, NoSymbol, x ] }; 553c067fea9Sghen key <KP3> { [ NoSymbol, NoSymbol, colon ] }; 5545a35480eSmrg 5555a35480eSmrg // decimal row 556c067fea9Sghen key <KP0> { [ NoSymbol, NoSymbol, backslash ] }; 557c067fea9Sghen}; 558c067fea9Sghen 559c067fea9Sghen// Main numbers follows the traditions from ATMs and phones with 560c067fea9Sghen// numbers increasing downwards to the right. (It is easier to 561c067fea9Sghen// change the keyboard layout than to reprogram your local ATM; 562c067fea9Sghen// also cell-phones are becoming more common while calculators are 563c067fea9Sghen// becoming more rare). 564c067fea9Sghen// First level is left unspecified, so it may be combined with another 565c067fea9Sghen// layout, e.g. "legacy". 566c067fea9Sghenpartial keypad_keys 567c067fea9Sghenxkb_symbols "atm" { 568c067fea9Sghen // upper row 569c067fea9Sghen key <KP7> { [ NoSymbol, KP_1 ] }; 570c067fea9Sghen key <KP8> { [ NoSymbol, KP_2 ] }; 571c067fea9Sghen key <KP9> { [ NoSymbol, KP_3 ] }; 572c067fea9Sghen 573c067fea9Sghen // lower row 574c067fea9Sghen key <KP1> { [ NoSymbol, KP_7 ] }; 575c067fea9Sghen key <KP2> { [ NoSymbol, KP_8 ] }; 576c067fea9Sghen key <KP3> { [ NoSymbol, KP_9 ] }; 5775a35480eSmrg}; 578da6c6c0bSmrg 579da6c6c0bSmrg 5800412cdedSmrgpartial modifier_keys 581da6c6c0bSmrgxkb_symbols "pointerkeys" { 582da6c6c0bSmrg key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] }; 583da6c6c0bSmrg}; 584da6c6c0bSmrg 585da6c6c0bSmrg// Only numbers, operators and decimal separator, 586da6c6c0bSmrg// as seen on keypad overlay on Japanese keyboard. 587da6c6c0bSmrg// ┌─┬─┬─┬─┐ 588da6c6c0bSmrg// │7│8│9│*│ 589da6c6c0bSmrg// ├─┼─┼─┼─┤ 590da6c6c0bSmrg// │4│5│6│-│ 591da6c6c0bSmrg// ├─┼─┼─┼─┤ 592da6c6c0bSmrg// │1│2│3│+│ 593da6c6c0bSmrg// ├─┼─┼─┼─┤ 594da6c6c0bSmrg// │0│ │·│/│ 595da6c6c0bSmrg// └─┴─┴─┴─┘ 596da6c6c0bSmrgpartial keypad_keys 597da6c6c0bSmrgxkb_symbols "numoperdecsep" { 598da6c6c0bSmrg key <KO7> { [ KP_7 ] }; 599da6c6c0bSmrg key <KO8> { [ KP_8 ] }; 600da6c6c0bSmrg key <KO9> { [ KP_9 ] }; 601da6c6c0bSmrg// ClsGrb kills whichever client has a grab in effect 602da6c6c0bSmrg key <KOMU> { 603da6c6c0bSmrg type="CTRL+ALT", 6040412cdedSmrg symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] 605da6c6c0bSmrg }; 606da6c6c0bSmrg 607da6c6c0bSmrg key <KO4> { [ KP_4 ] }; 608da6c6c0bSmrg key <KO5> { [ KP_5 ] }; 609da6c6c0bSmrg key <KO6> { [ KP_6 ] }; 610da6c6c0bSmrg// -VMode switches to the previous video mode 611da6c6c0bSmrg key <KOSU> { 612da6c6c0bSmrg type="CTRL+ALT", 6130412cdedSmrg symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] 614da6c6c0bSmrg }; 615da6c6c0bSmrg 616da6c6c0bSmrg key <KO1> { [ KP_1 ] }; 617da6c6c0bSmrg key <KO2> { [ KP_2 ] }; 618da6c6c0bSmrg key <KO3> { [ KP_3 ] }; 619da6c6c0bSmrg// +VMode switches to the next video mode 620da6c6c0bSmrg key <KOAD> { 621da6c6c0bSmrg type="CTRL+ALT", 6220412cdedSmrg symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] 623da6c6c0bSmrg }; 624da6c6c0bSmrg 625da6c6c0bSmrg key <KO0> { [ KP_0 ] }; 626da6c6c0bSmrg key <KODL> { [ KP_Decimal ] }; 627da6c6c0bSmrg// Ungrab cancels server/keyboard/pointer grabs 628da6c6c0bSmrg key <KODV> { 629da6c6c0bSmrg type="CTRL+ALT", 6300412cdedSmrg symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] 631da6c6c0bSmrg }; 632da6c6c0bSmrg}; 633