1 // -*- indent-tabs-mode: nil -*-
3 // Created by Frédéric Boiteux <fboiteux (at) free (dot) fr>
4 // and Gildas Cotomale <gildas (dot) cotomale (at) gmail (dot) com>
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.
11 // CycleWindows = <I162>;
13 // PlayPause = <I172>;
17 xkb_geometry "tm2020" {
18 description = "TypeMatrix EZ-Reach 2020";
20 // Keyboard total size :
23 // background / foreground colours :
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] }};
46 keys { { <ESC>, "FUNL" },
47 <FK01>, <FK02>, <FK03>, <FK04>, <FK05> };
49 keys { { <NMLK>, "FUNL" } };
54 keys { { <DELE>, "FUNL" } };
56 keys { <FK06>, <FK07>, <FK08>, <FK09>, <FK10>, <FK11>,
61 // Alpha-numeric keys rows
70 keys { { <TLDE>, "ALPL" },
71 <AE01>, <AE02>, <AE03>, <AE04>, <AE05>,
76 keys { { <TAB>, "ALPL" },
77 <AD01>, <AD02>, <AD03>, <AD04>, <AD05> };
81 keys { { <LFSH>, "DHAL" },
82 <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
88 keys { <AB01>, <AB02>, <AB03>, <AB04>, <AB05> };
93 keys { { <BKSP>, "DHAL" },
94 <AE06>, <AE07>, <AE08> };
96 keys { <AE09>, <AE10>, <AE11>, { <AE12>, "ALPL" } };
101 keys { <AD06>, <AD07>, <AD08> };
102 key.color = "grey20";
103 keys { <AD09>, <AD10>, <AD11>, { <AD12>, "ALPL" } };
108 keys { { <RTRN>, "DHAL" },
109 <AC06>, <AC07>, <AC08> };
110 key.color = "grey20";
111 keys { <AC09>, <AC10>, <AC11>, { <RTSH>, "DHAL" } };
116 keys { <AB06>, <AB07>, <AB08> };
117 key.color = "grey20";
118 keys { <AB09>, <AB10>, <BKSL> };
127 key.color = "grey10";
131 keys { <LCTL>, <LALT>, <CAPS> };
132 keys { { <SPCE>, "SPCE"} };
136 keys { <I120>, <LWIN>, <MENU> };
142 keys { { <SPCE>, "SPCE"}, <RALT> };
143 key.color = "grey20";
144 keys { <RCTL>, <UP>, <I162>, { <KPEN>, "DHAL" } };
150 key.color = "grey20";
151 keys { { <LEFT>, "DBLA" }, <DOWN>, <RGHT> };
157 indicator.onColor = "green";
158 indicator.offColor = "grey10";
159 indicator.shape = "LED";
160 indicator "Num Lock" { left = 252; };
161 indicator "Caps Lock" { left = 266; };
162 indicator "Misc" { left = 280; };
165 text "NumLockLabel" { left= 252; text="1"; };
166 text "CapsLockLabel" { left= 266; text="A"; };
167 text "MiscLabel" { left= 280; text="D"; };
169 text "Logo" { left = 29; top = 10; text="TypeMatrix™"; };
171 // other decorations : drawings
172 solid "rainure1" { shape = "DECO"; top = 1; left = 110; color = "grey10";};
173 solid "rainure2" { shape = "DECO"; top = 1; left = 115; color = "grey10";};
174 solid "rainure3" { shape = "DECO"; top = 1; left = 120; color = "grey10";};
175 solid "rainure4" { shape = "DECO"; top = 1; left = 125; color = "grey10";};
176 solid "rainure5" { shape = "DECO"; top = 1; left = 130; color = "grey10";};
177 solid "rainure6" { shape = "DECO"; top = 1; left = 135; color = "grey10";};
178 solid "rainure7" { shape = "DECO"; top = 1; left = 140; color = "grey10";};
179 solid "rainure8" { shape = "DECO"; top = 1; left = 145; color = "grey10";};
180 solid "rainure9" { shape = "DECO"; top = 1; left = 150; color = "grey10";};
181 solid "rainure10" { shape = "DECO"; top = 1; left = 155; color = "grey10";};
182 solid "rainure11" { shape = "DECO"; top = 1; left = 160; color = "grey10";};
183 solid "rainure12" { shape = "DECO"; top = 1; left = 165; color = "grey10";};
184 solid "rainure13" { shape = "DECO"; top = 1; left = 170; color = "grey10";};
185 }; // geometry tm2020
188 xkb_geometry "tm2030_shape" {
189 // Keyboard total size
192 // background / foreground colours :
194 labelColor = "black";
196 // Key shapes : base key = 20 mm each side
197 shape "NORM" { cornerRadius=1, { [18, 18] }, { [1.5, 1.5], [16.5, 14] } };
198 shape "FUNC" { cornerRadius=1, { [18, 12] }, { [2.5, 0], [15.5, 10] } };
199 shape "LFSH" { cornerRadius=1, { [18, 36.5] }, { [2.5, 0], [15.5, 30] } };
200 shape "ALT1" { cornerRadius=1, { [27.5, 18] }, { [2.5, 0], [23.5, 14] } };
201 shape "BKSP" { cornerRadius=1, { [18, 30.5] }, { [1.5, 1.5], [16.5, 29] } };
202 shape "SPCE" { cornerRadius=1, { [92, 25] }, { [1.5, 1.5], [90.5, 22] } };
203 shape "LED" { cornerRadius=2, { [4, 4] } };
204 shape "PAN1" { cornerRadius=1, { [27, 126.5] } };
205 shape "PAN2" { cornerRadius=1, { [92, 13] } };
207 // other decorations : panels
221 // Diods (Indicators) : they have to be put after panels, either the panels
224 indicator.onColor = "green";
225 indicator.offColor = "grey10";
226 indicator.shape = "LED";
228 indicator "Num Lock" { top = 11 ; };
229 indicator "Caps Lock" { top = 27.5; };
230 indicator "Scroll Lock" { top = 44 ; };
233 text.color = "black";
234 text "NumLockLabel" { top = 11; text="num"; };
235 text "CapsLockLabel" { top = 27.5; text="caps"; };
236 text "SrollLockLabel" { top = 44; text="scroll"; };
237 }; // geometry tm2030_shape
239 xkb_geometry "tm2030_MiscDiod_dvk" {
240 text "ModeLabel" { left = 12; top = 58; color = "black"; text="Dvorak"; };
241 }; // geometry tm2030_MiscDiod_dvk
243 xkb_geometry "tm2030_MiscDiod_102" {
244 text "ModeLabel" { left = 12; top = 58; color = "black"; text="102"; };
245 }; // geometry tm2030_MiscDiod_102
247 xkb_geometry "tm2030_MiscDiod_106" {
248 text "ModeLabel" { left = 12; top = 58; color = "black"; text="106"; };
249 }; // geometry tm2030_MiscDiod_106
251 xkb_geometry "tm2030_MiscDiod_off" {
252 indicator "Misc" { left = 6; top = 60.5; shape = "LED";
253 offColor = "grey10"; onColor = "grey10"; };
254 }; // geometry tm2030_MiscDiod_off
256 xkb_geometry "tm2030_MiscDiod_on" {
257 indicator "Misc" { left = 6; top = 60.5; shape = "LED";
258 offColor = "green"; onColor = "green"; };
259 }; // geometry tm2030_MiscDiod_on
262 xkb_geometry "tm2030USB_func" {
263 // Function keys rows
268 key.color = "grey30";
271 keys { <ESC>, <FK01>, <FK02>, <FK03>, <FK04>, <FK05> };
275 keys { <FK06>, <FK07>, <FK08>, <FK09>, <FK10>, <FK11>,
279 }; // geometry tm2030USB_func
282 xkb_geometry "tm2030USB_alpha" {
283 // Alpha-numeric keys rows
288 key.color = "grey10";
292 keys { <TLDE>, <AE01>, <AE02>, <AE03>, <AE04>, <AE05> };
296 keys { <TAB>, <AD01>, <AD02>, <AD03>, <AD04>, <AD05> };
300 keys { { <LFSH>, "LFSH" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05> };
305 keys { <AB01>, <AB02>, <AB03>, <AB04>, <AB05> };
311 keys { <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, <AE11>, <AE12>, <I148> };
316 keys { <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, <AD11>, <AD12>, <I163> };
321 keys { <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, <AC11>, { <RTSH>, "LFSH" }, <CAPS> };
326 keys { <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, <BKSL> };
336 keys { { <SPCE>, "SPCE" } };
339 }; // geometry tm2030USB_alpha
342 xkb_geometry "tm2030USB_ctrl" {
348 key.color = "grey30";
352 keys { <LCTL>, <I172>, <MENU>, <I162> };
356 keys { <I120>, { <LWIN>, "ALT1" }, { <LALT>, "ALT1" } };
361 keys { <I243>, <HOME>, <UP>, <END>, { <RCTL>, "LFSH"}, <PGUP> };
366 keys { <RALT>, <LEFT>, <DOWN>, <RGHT> };
377 keys { <DELE>, { <BKSP>, "BKSP" }, { <RTRN>, "LFSH" } };
380 }; // geometry tm2030USB_ctrl
383 xkb_geometry "tm2030PS2" {
384 include "typematrix(tm2030_shape)"
385 include "typematrix(tm2030_MiscDiod_dvk)"
386 include "typematrix(tm2030_MiscDiod_off)"
388 description = "TypeMatrix EZ-Reach 2030 PS2";
395 key.color = "grey10";
398 key.color = "grey30";
403 keys { <FK01>, <FK02>, <FK03>, <FK04> };
407 key.color = "grey30";
412 key.color = "grey30";
413 keys { <FK06>, <FK07>, <FK08> };
417 keys { <FK09>, <FK10>, <FK11>, <FK12> };
421 key.color = "grey30";
426 // Alpha-numeric keys rows
431 key.color = "grey10";
435 keys { <TLDE>, <AE01>, <AE02>, <AE03>, <AE04>, <AE05> };
439 keys { <TAB>, <AD01>, <AD02>, <AD03>, <AD04>, <AD05> };
443 keys { { <LFSH>, "LFSH" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05> };
448 keys { <AB01>, <AB02>, <AB03>, <AB04>, <AB05> };
454 keys { <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, <AE11>, <AE12>, <I120> };
459 keys { <AD06>, <AD07>, <AD08> };
464 key.color = "grey30";
465 keys { <AD09>, <AD10>, <AD11>, <AD12>};
475 keys { <AC06>, <AC07>, <AC08> };
480 key.color = "grey30";
481 keys { <AC09>, <AC10>, <AC11>, { <RTSH>, "LFSH" },
482 {<DELE>, key.color="red"} };
487 keys { <AB06>, <AB07>, <AB08> };
492 key.color = "grey30";
493 keys { <AB09>, <AB10>, <BKSL> };
503 keys { { <SPCE>, "SPCE" } };
505 }; // end section "Alpha"
512 key.color = "grey10";
516 keys { <I120>, <LWIN>, <MENU>, <I162> };
520 keys { <LCTL>, { <LALT>, "ALT1" }, { <LTSH>, "ALT1" } };
530 key.color = "grey30";
531 keys { <HOME>, <UP>, <END>, { <KPEN>, "LFSH"} };
546 key.color = "grey30";
547 keys { <LEFT>, <DOWN>, <RGHT> };
557 key.color = "grey10";
559 keys { <CAPS>, { <BKSP>, "BKSP" }, { <RTRN>, "LFSH" } };
561 }; // end section "Control"
562 }; // geometry tm2030PS2
565 xkb_geometry "tm2030USB" {
566 include "typematrix(tm2030_shape)"
567 include "typematrix(tm2030_MiscDiod_102)"
568 include "typematrix(tm2030_MiscDiod_off)"
570 description = "TypeMatrix EZ-Reach 2030 USB";
572 include "typematrix(tm2030USB_func)"
573 include "typematrix(tm2030USB_alpha)"
574 include "typematrix(tm2030USB_ctrl)"
575 }; // geometry tm2030USB
578 // European 102/105 keys mode :
579 // Same as the standard keyboard, except for one key, Play becomes LSGT
580 xkb_geometry "tm2030USB-102" {
581 include "typematrix(tm2030_shape)"
582 include "typematrix(tm2030_MiscDiod_102)"
583 include "typematrix(tm2030_MiscDiod_on)"
585 description = "TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)";
587 include "typematrix(tm2030USB_func)"
588 include "typematrix(tm2030USB_alpha)"
595 key.color = "grey30";
599 keys { <LCTL>, <LSGT>, <MENU>, <I162> };
603 keys { <I120>, { <LWIN>, "ALT1" }, { <LALT>, "ALT1" } };
608 keys { <I243>, <HOME>, <UP>, <END>, { <RCTL>, "LFSH"}, <PGUP> };
613 keys { <RALT>, <LEFT>, <DOWN>, <RGHT> };
624 keys { <DELE>, { <BKSP>, "BKSP" }, { <RTRN>, "LFSH" } };
627 }; // geometry tm2030USB-102
630 // Japan / Korean 106 keys mode :
631 // Same as the standard keyboard, except for following keys :
632 // – <TLDE> is replaced by <HZTG>
633 // – WWW key becomes <HKTG>
634 // — Calc key becomes <AE13>
635 // — Mail key becomes <BKSL>, and <BKSL> key becomes <AB11>
638 // NFER/MEHU and XFER/KANJ : TMx keeps LWIN (and RWIN if it happend to exist)
639 // HKTG/HIRA : TMx keeps MENU/COMP, but locates this key in alpha section
642 xkb_geometry "tm2030USB-106" {
643 include "typematrix(tm2030_shape)"
644 include "typematrix(tm2030_MiscDiod_106)"
645 include "typematrix(tm2030_MiscDiod_on)"
647 description = "TypeMatrix EZ-Reach 2030 USB (106:JP mode)";
649 include "typematrix(tm2030USB_func)"
651 // Alpha-numeric keys rows
656 key.color = "grey10";
660 keys { <HZTG>, <AE01>, <AE02>, <AE03>, <AE04>, <AE05> };
664 keys { <TAB>, <AD01>, <AD02>, <AD03>, <AD04>, <AD05> };
668 keys { { <LFSH>, "LFSH" }, <AC01>, <AC02>, <AC03>, <AC04>, <AC05> };
673 keys { <AB01>, <AB02>, <AB03>, <AB04>, <AB05> };
679 keys { <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, <AE11>, <AE12>, <AE13> };
684 keys { <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, <AD11>, <AD12>, <BKSL> };
689 keys { <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, <AC11>, { <RTSH>, "LFSH" }, <CAPS> };
694 keys { <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, <AB11> };
704 keys { { <SPCE>, "SPCE" } };
713 key.color = "grey30";
717 keys { <LCTL>, <I172>, <MENU>, <I162> };
721 keys { <I120>, { <LWIN>, "ALT1" }, { <LALT>, "ALT1" } };
726 keys { <I243>, <HOME>, <UP>, <END>, { <RCTL>, "LFSH"}, <PGUP> };
731 keys { <RALT>, <LEFT>, <DOWN>, <RGHT> };
742 keys { <DELE>, { <BKSP>, "BKSP" }, { <RTRN>, "LFSH" } };
745 }; // geometry tm2030USB-106