1// -*- indent-tabs-mode: nil -*- 2 3// Created by Frédéric Boiteux <fboiteux (at) free (dot) fr> 4// and Gildas Cotomale <gildas (dot) cotomale (at) gmail (dot) com> 5 6// Note : the special/multimedia keys (Calc, WWW, Desktop…) have a keycode 7// <I[XX]>, found in definition file /usr/share/X11/xkb/keycodes/evdev. 8// Fn = <I120>; 9// Calc = <I148>; 10// WWW = <I158>; 11// CycleWindows = <I162>; 12// Mail = <I163>; 13// PlayPause = <I172>; 14// Desktop = <I243>; 15 16 17xkb_geometry "tm2020" { 18 description = "TypeMatrix EZ-Reach 2020"; 19 20 // Keyboard total size : 21 width = 308; 22 height = 152; 23 // Background / foreground colours 24 baseColor = "white"; 25 labelColor = "black"; 26 27 // Key shapes: base key = 16 mm each side 28 shape "NORM" { cornerRadius=1, { [16, 16] }, { [1, 1], [15, 15] }}; 29 shape "ALPL" { cornerRadius=1, { [24.25, 16] }, { [1, 1], [23, 15] }}; 30 shape "DHAL" { cornerRadius=1, { [24.25, 32.5] }, { [1, 1], [23, 31.5] }}; 31 shape "FUNC" { cornerRadius=1, { [16, 12] }, { [2.5, 0], [13.5, 10] }}; 32 shape "FUNL" { cornerRadius=1, { [24.25, 12] }, { [2.5, 0], [21.5, 10] }}; 33 shape "SPCE" { cornerRadius=1, { [57, 26] }, { [2.5, 1], [54.5, 24] }}; 34 shape "DBLA" { cornerRadius=1, { [32.5, 16] }, { [1, 1], [31, 15] }}; 35 shape "LED" { cornerRadius=2, { [4, 4] }}; 36 shape "DECO" { cornerRadius=1, { [3, 18] }}; 37 38 section "Function" { 39 left = 4; 40 top = 24; 41 key.gap = 0.5; 42 key.color = "grey10"; 43 key.shape = "FUNC"; 44 row { 45 keys { { <ESC>, "FUNL" }, 46 <FK01>, <FK02>, <FK03>, <FK04>, <FK05> }; 47 key.color = "grey20"; 48 keys { { <NMLK>, "FUNL" } }; 49 }; 50 row { 51 left = 150; 52 key.color = "red"; 53 keys { { <DELE>, "FUNL" } }; 54 key.color = "grey10"; 55 keys { <FK06>, <FK07>, <FK08>, <FK09>, <FK10>, <FK11>, 56 { <FK12>, "FUNL" } }; 57 }; 58 }; 59 60 section "Alpha" { 61 left = 4; 62 top = 36.5; 63 key.gap = 0.5; 64 key.color = "grey10"; 65 key.shape = "NORM"; 66 row { 67 top = 0; 68 keys { { <TLDE>, "ALPL" }, 69 <AE01>, <AE02>, <AE03>, <AE04>, <AE05>, 70 { <BKSP>, "DHAL" } }; 71 }; 72 row { 73 top = 16.5; 74 keys { { <TAB>, "ALPL" }, 75 <AD01>, <AD02>, <AD03>, <AD04>, <AD05> }; 76 }; 77 row { 78 top = 33; 79 keys { { <LFSH>, "DHAL" }, 80 <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, 81 { <TAB>, "DHAL" } }; 82 }; 83 row { 84 top = 49.5; 85 left = 24.5; 86 keys { <AB01>, <AB02>, <AB03>, <AB04>, <AB05> }; 87 }; 88 row { 89 top = 0; 90 left = 150; 91 keys { { <BKSP>, "DHAL" }, 92 <AE06>, <AE07>, <AE08> }; 93 key.color = "grey20"; 94 keys { <AE09>, <AE10>, <AE11>, { <AE12>, "ALPL" } }; 95 }; 96 row { 97 top = 16.5; 98 left = 174.5; 99 keys { <AD06>, <AD07>, <AD08> }; 100 key.color = "grey20"; 101 keys { <AD09>, <AD10>, <AD11>, { <AD12>, "ALPL" } }; 102 }; 103 row { 104 top = 33; 105 left = 150; 106 keys { { <RTRN>, "DHAL" }, 107 <AC06>, <AC07>, <AC08> }; 108 key.color = "grey20"; 109 keys { <AC09>, <AC10>, <AC11>, { <RTSH>, "DHAL" } }; 110 }; 111 row { 112 top = 49.5; 113 left = 174.5; 114 keys { <AB06>, <AB07>, <AB08> }; 115 key.color = "grey20"; 116 keys { <AB09>, <AB10>, <BKSL> }; 117 }; 118 }; 119 120 section "Control" { 121 left = 4; 122 top = 102.5; 123 key.gap = 0.5; 124 key.color = "grey10"; 125 key.shape = "ALPL"; 126 row { 127 top = 0; 128 keys { <LCTL>, <LALT>, <CAPS> }; 129 keys { { <SPCE>, "SPCE"} }; 130 }; 131 row { 132 top = 16.5; 133 keys { <I120>, <LWIN>, <MENU> }; 134 }; 135 row { 136 top = 0; 137 left = 150; 138 key.shape = "NORM"; 139 keys { { <SPCE>, "SPCE"}, <RALT> }; 140 key.color = "grey20"; 141 keys { <RCTL>, <UP>, <I162>, { <KPEN>, "DHAL" } }; 142 }; 143 row { 144 top = 16.5; 145 left = 207.5; 146 key.shape = "NORM"; 147 key.color = "grey20"; 148 keys { { <LEFT>, "DBLA" }, <DOWN>, <RGHT> }; 149 }; 150 }; 151 152 // Leds 153 indicator.top = 12; 154 indicator.onColor = "green"; 155 indicator.offColor = "grey10"; 156 indicator.shape = "LED"; 157 indicator "Num Lock" { left = 252; }; 158 indicator "Caps Lock" { left = 266; }; 159 indicator "Misc" { left = 280; }; 160 text.top= 5; 161 text.color= "black"; 162 text "NumLockLabel" { left= 252; text="1"; }; 163 text "CapsLockLabel" { left= 266; text="A"; }; 164 text "MiscLabel" { left= 280; text="D"; }; 165 166 text "Logo" { left = 29; top = 10; text="TypeMatrix™"; }; 167 168 // Other decorations: drawings 169 solid "rainure1" { shape = "DECO"; top = 1; left = 110; color = "grey10";}; 170 solid "rainure2" { shape = "DECO"; top = 1; left = 115; color = "grey10";}; 171 solid "rainure3" { shape = "DECO"; top = 1; left = 120; color = "grey10";}; 172 solid "rainure4" { shape = "DECO"; top = 1; left = 125; color = "grey10";}; 173 solid "rainure5" { shape = "DECO"; top = 1; left = 130; color = "grey10";}; 174 solid "rainure6" { shape = "DECO"; top = 1; left = 135; color = "grey10";}; 175 solid "rainure7" { shape = "DECO"; top = 1; left = 140; color = "grey10";}; 176 solid "rainure8" { shape = "DECO"; top = 1; left = 145; color = "grey10";}; 177 solid "rainure9" { shape = "DECO"; top = 1; left = 150; color = "grey10";}; 178 solid "rainure10" { shape = "DECO"; top = 1; left = 155; color = "grey10";}; 179 solid "rainure11" { shape = "DECO"; top = 1; left = 160; color = "grey10";}; 180 solid "rainure12" { shape = "DECO"; top = 1; left = 165; color = "grey10";}; 181 solid "rainure13" { shape = "DECO"; top = 1; left = 170; color = "grey10";}; 182}; // geometry tm2020 183 184 185xkb_geometry "tm2030_shape" { 186 // Keyboard total size 187 width = 320; 188 height = 130; 189 // Background / foreground colours 190 baseColor = "white"; 191 labelColor = "black"; 192 193 // Key shapes: base key = 20 mm each side 194 shape "NORM" { cornerRadius=1, { [18, 18] }, { [1.5, 1.5], [16.5, 14] } }; 195 shape "FUNC" { cornerRadius=1, { [18, 12] }, { [2.5, 0], [15.5, 10] } }; 196 shape "LFSH" { cornerRadius=1, { [18, 36.5] }, { [2.5, 0], [15.5, 30] } }; 197 shape "ALT1" { cornerRadius=1, { [27.5, 18] }, { [2.5, 0], [23.5, 14] } }; 198 shape "BKSP" { cornerRadius=1, { [18, 30.5] }, { [1.5, 1.5], [16.5, 29] } }; 199 shape "SPCE" { cornerRadius=1, { [92, 25] }, { [1.5, 1.5], [90.5, 22] } }; 200 shape "LED" { cornerRadius=2, { [4, 4] } }; 201 shape "PAN1" { cornerRadius=1, { [27, 126.5] } }; 202 shape "PAN2" { cornerRadius=1, { [92, 13] } }; 203 204 // Other decorations: panels 205 solid "panneau1" { 206 shape = "PAN1"; 207 left = 0; 208 top = 0; 209 color = "grey40"; 210 }; 211 solid "panneau2" { 212 shape = "PAN2"; 213 left = 101.5; 214 top = 113.5; 215 color = "grey40"; 216 }; 217 218 // Leds: they must be put after panels, otherwise the panels overwrite them 219 indicator.left = 6; 220 indicator.onColor = "green"; 221 indicator.offColor = "grey10"; 222 indicator.shape = "LED"; 223 224 indicator "Num Lock" { top = 11 ; }; 225 indicator "Caps Lock" { top = 27.5; }; 226 indicator "Scroll Lock" { top = 44 ; }; 227 228 text.left = 12; 229 text.color = "black"; 230 text "NumLockLabel" { top = 11; text="num"; }; 231 text "CapsLockLabel" { top = 27.5; text="caps"; }; 232 text "SrollLockLabel" { top = 44; text="scroll"; }; 233}; // geometry tm2030_shape 234 235 236xkb_geometry "tm2030_MiscDiod_dvk" { 237 text "ModeLabel" { left = 12; top = 58; color = "black"; text="Dvorak"; }; 238}; 239 240xkb_geometry "tm2030_MiscDiod_102" { 241 text "ModeLabel" { left = 12; top = 58; color = "black"; text="102"; }; 242}; 243 244xkb_geometry "tm2030_MiscDiod_106" { 245 text "ModeLabel" { left = 12; top = 58; color = "black"; text="106"; }; 246}; 247 248xkb_geometry "tm2030_MiscDiod_off" { 249 indicator "Misc" { left = 6; top = 60.5; shape = "LED"; 250 offColor = "grey10"; onColor = "grey10"; }; 251}; 252 253xkb_geometry "tm2030_MiscDiod_on" { 254 indicator "Misc" { left = 6; top = 60.5; shape = "LED"; 255 offColor = "green"; onColor = "green"; }; 256}; 257 258 259xkb_geometry "tm2030USB_func" { 260 section "Function" { 261 left = 27; 262 top = 1.5; 263 key.gap = 0.5; 264 key.color = "grey30"; 265 key.shape = "FUNC"; 266 row { 267 keys { <ESC>, <FK01>, <FK02>, <FK03>, <FK04>, <FK05> }; 268 }; 269 row { 270 left = 129.5; 271 keys { <FK06>, <FK07>, <FK08>, <FK09>, <FK10>, <FK11>, 272 <FK12>, <NMLK> }; 273 }; 274 }; 275}; // geometry tm2030USB_func 276 277 278xkb_geometry "tm2030USB_alpha" { 279 section "Alpha" { 280 left = 27; 281 top = 14; 282 key.gap = 0.5; 283 key.color = "grey10"; 284 key.shape = "NORM"; 285 row { 286 top = 0; 287 keys { <TLDE>, <AE01>, <AE02>, <AE03>, <AE04>, <AE05> }; 288 }; 289 row { 290 top = 18.5; 291 keys { <TAB>, <AD01>, <AD02>, <AD03>, <AD04>, <AD05> }; 292 }; 293 row { 294 top = 37; 295 keys { { <LFSH>, "LFSH" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05> }; 296 }; 297 row { 298 top = 55.5; 299 left = 18.5; 300 keys { <AB01>, <AB02>, <AB03>, <AB04>, <AB05> }; 301 }; 302 303 row { 304 top = 0; 305 left = 129.5; 306 keys { <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, <AE11>, <AE12>, <I148> }; 307 }; 308 row { 309 top = 18.5; 310 left = 129.5; 311 keys { <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, <AD11>, <AD12>, <I163> }; 312 }; 313 row { 314 top = 37; 315 left = 129.5; 316 keys { <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, <AC11>, { <RTSH>, "LFSH" }, <CAPS> }; 317 }; 318 row { 319 top = 55.5; 320 left = 129.5; 321 keys { <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, <BKSL> }; 322 }; 323 row { 324 top = 55.5; 325 left = 259; 326 keys { <I158> }; 327 }; 328 row { 329 top = 74; 330 left = 74; 331 keys { { <SPCE>, "SPCE" } }; 332 }; 333 }; 334}; // geometry tm2030USB_alpha 335 336 337xkb_geometry "tm2030USB_ctrl" { 338 section "Control" { 339 left = 27; 340 top = 0; 341 key.gap = 0.5; 342 key.color = "grey30"; 343 key.shape = "NORM"; 344 row { 345 top = 88; 346 keys { <LCTL>, <I172>, <MENU>, <I162> }; 347 }; 348 row { 349 top = 106.5; 350 keys { <I120>, { <LWIN>, "ALT1" }, { <LALT>, "ALT1" } }; 351 }; 352 row { 353 top = 88; 354 left = 166.5; 355 keys { <I243>, <HOME>, <UP>, <END>, { <RCTL>, "LFSH"}, <PGUP> }; 356 }; 357 row { 358 top = 106.5; 359 left = 166.5; 360 keys { <RALT>, <LEFT>, <DOWN>, <RGHT> }; 361 }; 362 row { 363 top = 106.5; 364 left = 259; 365 keys { <PGDN> }; 366 }; 367 row { 368 top = 1; 369 left = 111.5; 370 vertical = true; 371 keys { <DELE>, { <BKSP>, "BKSP" }, { <RTRN>, "LFSH" } }; 372 }; 373 }; 374}; // geometry tm2030USB_ctrl 375 376 377xkb_geometry "tm2030PS2" { 378 include "typematrix(tm2030_shape)" 379 include "typematrix(tm2030_MiscDiod_dvk)" 380 include "typematrix(tm2030_MiscDiod_off)" 381 382 description = "TypeMatrix EZ-Reach 2030 PS2"; 383 384 section "Function" { 385 left = 27; 386 top = 1.5; 387 key.gap = 0.5; 388 key.color = "grey10"; 389 key.shape = "FUNC"; 390 row { 391 key.color = "grey30"; 392 keys { <ESC> }; 393 }; 394 row { 395 left = 18.5; 396 keys { <FK01>, <FK02>, <FK03>, <FK04> }; 397 }; 398 row { 399 left = 92.5; 400 key.color = "grey30"; 401 keys { <FK05> }; 402 }; 403 row { 404 left = 129.5; 405 key.color = "grey30"; 406 keys { <FK06>, <FK07>, <FK08> }; 407 }; 408 row { 409 left = 185; 410 keys { <FK09>, <FK10>, <FK11>, <FK12> }; 411 }; 412 row { 413 left = 259; 414 key.color = "grey30"; 415 keys { <NMLK> }; 416 }; 417 }; 418 419 section "Alpha" { 420 left = 27; 421 top = 14; 422 key.gap = 0.5; 423 key.color = "grey10"; 424 key.shape = "NORM"; 425 row { 426 top = 0; 427 keys { <TLDE>, <AE01>, <AE02>, <AE03>, <AE04>, <AE05> }; 428 }; 429 row { 430 top = 18.5; 431 keys { <TAB>, <AD01>, <AD02>, <AD03>, <AD04>, <AD05> }; 432 }; 433 row { 434 top = 37; 435 keys { { <LFSH>, "LFSH" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05> }; 436 }; 437 row { 438 top = 55.5; 439 left = 18.5; 440 keys { <AB01>, <AB02>, <AB03>, <AB04>, <AB05> }; 441 }; 442 443 row { 444 top = 0; 445 left = 129.5; 446 keys { <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, <AE11>, <AE12>, <I120> }; 447 }; 448 row { 449 top = 18.5; 450 left = 129.5; 451 keys { <AD06>, <AD07>, <AD08> }; 452 }; 453 row { 454 top = 18.5; 455 left = 185; 456 key.color = "grey30"; 457 keys { <AD09>, <AD10>, <AD11>, <AD12>}; 458 }; 459 row { 460 top = 18.5; 461 left = 259; 462 keys { <BKSP> }; 463 }; 464 row { 465 top = 37; 466 left = 129.5; 467 keys { <AC06>, <AC07>, <AC08> }; 468 }; 469 row { 470 top = 37; 471 left = 185; 472 key.color = "grey30"; 473 keys { <AC09>, <AC10>, <AC11>, { <RTSH>, "LFSH" }, 474 {<DELE>, key.color="red"} }; 475 }; 476 row { 477 top = 55.5; 478 left = 129.5; 479 keys { <AB06>, <AB07>, <AB08> }; 480 }; 481 row { 482 top = 55.5; 483 left = 185; 484 key.color = "grey30"; 485 keys { <AB09>, <AB10>, <BKSL> }; 486 }; 487 row { 488 top = 55.5; 489 left = 259; 490 keys { <INS> }; 491 }; 492 row { 493 top = 74; 494 left = 74; 495 keys { { <SPCE>, "SPCE" } }; 496 }; 497 }; 498 499 section "Control" { 500 left = 27; 501 top = 0; 502 key.gap = 0.5; 503 key.color = "grey10"; 504 key.shape = "NORM"; 505 row { 506 top = 88; 507 keys { <I120>, <LWIN>, <MENU>, <I162> }; 508 }; 509 row { 510 top = 106.5; 511 keys { <LCTL>, { <LALT>, "ALT1" }, { <LTSH>, "ALT1" } }; 512 }; 513 row { 514 top = 88; 515 left = 166.5; 516 keys { <PGUP> }; 517 }; 518 row { 519 top = 88; 520 left = 185; 521 key.color = "grey30"; 522 keys { <HOME>, <UP>, <END>, { <KPEN>, "LFSH"} }; 523 }; 524 row { 525 top = 88; 526 left = 259; 527 keys { <RCTL> }; 528 }; 529 row { 530 top = 106.5; 531 left = 166.5; 532 keys { <PGDN> }; 533 }; 534 row { 535 top = 106.5; 536 left = 185; 537 key.color = "grey30"; 538 keys { <LEFT>, <DOWN>, <RGHT> }; 539 }; 540 row { 541 top = 106.5; 542 left = 259; 543 keys { <RALT> }; 544 }; 545 row { 546 top = 1; 547 left = 111.5; 548 key.color = "grey10"; 549 vertical = true; 550 keys { <CAPS>, { <BKSP>, "BKSP" }, { <RTRN>, "LFSH" } }; 551 }; 552 }; 553}; // geometry tm2030PS2 554 555 556xkb_geometry "tm2030USB" { 557 include "typematrix(tm2030_shape)" 558 include "typematrix(tm2030_MiscDiod_102)" 559 include "typematrix(tm2030_MiscDiod_off)" 560 561 description = "TypeMatrix EZ-Reach 2030 USB"; 562 563 include "typematrix(tm2030USB_func)" 564 include "typematrix(tm2030USB_alpha)" 565 include "typematrix(tm2030USB_ctrl)" 566}; // geometry tm2030USB 567 568 569// European 102/105 keys mode. 570// Same as the standard keyboard, except for one key: Play becomes LSGT. 571xkb_geometry "tm2030USB-102" { 572 include "typematrix(tm2030_shape)" 573 include "typematrix(tm2030_MiscDiod_102)" 574 include "typematrix(tm2030_MiscDiod_on)" 575 576 description = "TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)"; 577 578 include "typematrix(tm2030USB_func)" 579 include "typematrix(tm2030USB_alpha)" 580 581 section "Control" { 582 left = 27; 583 top = 0; 584 key.gap = 0.5; 585 key.color = "grey30"; 586 key.shape = "NORM"; 587 row { 588 top = 88; 589 keys { <LCTL>, <LSGT>, <MENU>, <I162> }; 590 }; 591 row { 592 top = 106.5; 593 keys { <I120>, { <LWIN>, "ALT1" }, { <LALT>, "ALT1" } }; 594 }; 595 row { 596 top = 88; 597 left = 166.5; 598 keys { <I243>, <HOME>, <UP>, <END>, { <RCTL>, "LFSH"}, <PGUP> }; 599 }; 600 row { 601 top = 106.5; 602 left = 166.5; 603 keys { <RALT>, <LEFT>, <DOWN>, <RGHT> }; 604 }; 605 row { 606 top = 106.5; 607 left = 259; 608 keys { <PGDN> }; 609 }; 610 row { 611 top = 1; 612 left = 111.5; 613 vertical = true; 614 keys { <DELE>, { <BKSP>, "BKSP" }, { <RTRN>, "LFSH" } }; 615 }; 616 }; 617}; // geometry tm2030USB-102 618 619 620// Japan / Korean 106 keys mode. 621// Same as the standard keyboard, except for the following keys: 622// – <TLDE> is replaced by <HZTG> 623// – WWW key becomes <HKTG> 624// — Calc key becomes <AE13> 625// — <BKSL> key becomes <AB11> 626// — and Mail key becomes <BKSL> 627 628// About control keys: 629// NFER/MEHU and XFER/KANJ: TMx keeps LWIN (and RWIN if it happens to exist). 630// HKTG/HIRA: TMx keeps MENU/COMP, but locates this key in alpha section (see above). 631 632xkb_geometry "tm2030USB-106" { 633 include "typematrix(tm2030_shape)" 634 include "typematrix(tm2030_MiscDiod_106)" 635 include "typematrix(tm2030_MiscDiod_on)" 636 637 description = "TypeMatrix EZ-Reach 2030 USB (106:JP mode)"; 638 639 include "typematrix(tm2030USB_func)" 640 641 section "Alpha" { 642 left = 27; 643 top = 14; 644 key.gap = 0.5; 645 key.color = "grey10"; 646 key.shape = "NORM"; 647 row { 648 top = 0; 649 keys { <HZTG>, <AE01>, <AE02>, <AE03>, <AE04>, <AE05> }; 650 }; 651 row { 652 top = 18.5; 653 keys { <TAB>, <AD01>, <AD02>, <AD03>, <AD04>, <AD05> }; 654 }; 655 row { 656 top = 37; 657 keys { { <LFSH>, "LFSH" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05> }; 658 }; 659 row { 660 top = 55.5; 661 left = 18.5; 662 keys { <AB01>, <AB02>, <AB03>, <AB04>, <AB05> }; 663 }; 664 665 row { 666 top = 0; 667 left = 129.5; 668 keys { <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, <AE11>, <AE12>, <AE13> }; 669 }; 670 row { 671 top = 18.5; 672 left = 129.5; 673 keys { <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, <AD11>, <AD12>, <BKSL> }; 674 }; 675 row { 676 top = 37; 677 left = 129.5; 678 keys { <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, <AC11>, { <RTSH>, "LFSH" }, <CAPS> }; 679 }; 680 row { 681 top = 55.5; 682 left = 129.5; 683 keys { <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, <AB11> }; 684 }; 685 row { 686 top = 55.5; 687 left = 259; 688 keys { <HKTG> }; 689 }; 690 row { 691 top = 74; 692 left = 74; 693 keys { { <SPCE>, "SPCE" } }; 694 }; 695 }; 696 697 section "Control" { 698 left = 27; 699 top = 0; 700 key.gap = 0.5; 701 key.color = "grey30"; 702 key.shape = "NORM"; 703 row { 704 top = 88; 705 keys { <LCTL>, <I172>, <MENU>, <I162> }; 706 }; 707 row { 708 top = 106.5; 709 keys { <I120>, { <LWIN>, "ALT1" }, { <LALT>, "ALT1" } }; 710 }; 711 row { 712 top = 88; 713 left = 166.5; 714 keys { <I243>, <HOME>, <UP>, <END>, { <RCTL>, "LFSH"}, <PGUP> }; 715 }; 716 row { 717 top = 106.5; 718 left = 166.5; 719 keys { <RALT>, <LEFT>, <DOWN>, <RGHT> }; 720 }; 721 row { 722 top = 106.5; 723 left = 259; 724 keys { <PGDN> }; 725 }; 726 row { 727 top = 1; 728 left = 111.5; 729 vertical = true; 730 keys { <DELE>, { <BKSP>, "BKSP" }, { <RTRN>, "LFSH" } }; 731 }; 732 }; 733}; // geometry tm2030USB-106 734