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.13 mrg // languages that are based on ASCII. NoSymbol does not 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.13 mrg // the commands are put at the 4th lever. 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