// -*- indent-tabs-mode: nil -*- // Created by Frédéric Boiteux // and Gildas Cotomale // Note : the special/multimedia keys (Calc, WWW, Desktop…) have a keycode // , found in definition file /usr/share/X11/xkb/keycodes/evdev. // Fn = ; // Calc = ; // WWW = ; // CycleWindows = ; // Mail = ; // PlayPause = ; // Desktop = ; xkb_geometry "tm2020" { description = "TypeMatrix EZ-Reach 2020"; // Keyboard total size : width = 308; height = 152; // background / foreground colours : baseColor = "white"; labelColor = "black"; // Key shapes : base key = 16 mm each side shape "NORM" { cornerRadius=1, { [16, 16] }, { [1, 1], [15, 15] }}; shape "ALPL" { cornerRadius=1, { [24.25, 16] }, { [1, 1], [23, 15] }}; shape "DHAL" { cornerRadius=1, { [24.25, 32.5] }, { [1, 1], [23, 31.5] }}; shape "FUNC" { cornerRadius=1, { [16, 12] }, { [2.5, 0], [13.5, 10] }}; shape "FUNL" { cornerRadius=1, { [24.25, 12] }, { [2.5, 0], [21.5, 10] }}; shape "SPCE" { cornerRadius=1, { [57, 26] }, { [2.5, 1], [54.5, 24] }}; shape "DBLA" { cornerRadius=1, { [32.5, 16] }, { [1, 1], [31, 15] }}; shape "LED" { cornerRadius=2, { [4, 4] }}; shape "DECO" { cornerRadius=1, { [3, 18] }}; // Function keys row section "Function" { left = 4; top = 24; key.gap = 0.5; key.color = "grey10"; key.shape = "FUNC"; row { keys { { , "FUNL" }, , , , , }; key.color = "grey20"; keys { { , "FUNL" } }; }; row { left = 150; key.color = "red"; keys { { , "FUNL" } }; key.color = "grey10"; keys { , , , , , , { , "FUNL" } }; }; }; // Alpha-numeric keys rows section "Alpha" { left = 4; top = 36.5; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 0; keys { { , "ALPL" }, , , , , , { , "DHAL" } }; }; row { top = 16.5; keys { { , "ALPL" }, , , , , }; }; row { top = 33; keys { { , "DHAL" }, , , , , , { , "DHAL" } }; }; row { top = 49.5; left = 24.5; keys { , , , , }; }; row { top = 0; left = 150; keys { { , "DHAL" }, , , }; key.color = "grey20"; keys { , , , { , "ALPL" } }; }; row { top = 16.5; left = 174.5; keys { , , }; key.color = "grey20"; keys { , , , { , "ALPL" } }; }; row { top = 33; left = 150; keys { { , "DHAL" }, , , }; key.color = "grey20"; keys { , , , { , "DHAL" } }; }; row { top = 49.5; left = 174.5; keys { , , }; key.color = "grey20"; keys { , , }; }; }; // Control keys rows section "Control" { left = 4; top = 102.5; key.gap = 0.5; key.color = "grey10"; key.shape = "ALPL"; row { top = 0; keys { , , }; keys { { , "SPCE"} }; }; row { top = 16.5; keys { , , }; }; row { top = 0; left = 150; key.shape = "NORM"; keys { { , "SPCE"}, }; key.color = "grey20"; keys { , , , { , "DHAL" } }; }; row { top = 16.5; left = 207.5; key.shape = "NORM"; key.color = "grey20"; keys { { , "DBLA" }, , }; }; }; // Diods indicator.top = 12; indicator.onColor = "green"; indicator.offColor = "grey10"; indicator.shape = "LED"; indicator "Num Lock" { left = 252; }; indicator "Caps Lock" { left = 266; }; indicator "Misc" { left = 280; }; text.top= 5; text.color= "black"; text "NumLockLabel" { left= 252; text="1"; }; text "CapsLockLabel" { left= 266; text="A"; }; text "MiscLabel" { left= 280; text="D"; }; text "Logo" { left = 29; top = 10; text="TypeMatrix™"; }; // other decorations : drawings solid "rainure1" { shape = "DECO"; top = 1; left = 110; color = "grey10";}; solid "rainure2" { shape = "DECO"; top = 1; left = 115; color = "grey10";}; solid "rainure3" { shape = "DECO"; top = 1; left = 120; color = "grey10";}; solid "rainure4" { shape = "DECO"; top = 1; left = 125; color = "grey10";}; solid "rainure5" { shape = "DECO"; top = 1; left = 130; color = "grey10";}; solid "rainure6" { shape = "DECO"; top = 1; left = 135; color = "grey10";}; solid "rainure7" { shape = "DECO"; top = 1; left = 140; color = "grey10";}; solid "rainure8" { shape = "DECO"; top = 1; left = 145; color = "grey10";}; solid "rainure9" { shape = "DECO"; top = 1; left = 150; color = "grey10";}; solid "rainure10" { shape = "DECO"; top = 1; left = 155; color = "grey10";}; solid "rainure11" { shape = "DECO"; top = 1; left = 160; color = "grey10";}; solid "rainure12" { shape = "DECO"; top = 1; left = 165; color = "grey10";}; solid "rainure13" { shape = "DECO"; top = 1; left = 170; color = "grey10";}; }; // geometry tm2020 xkb_geometry "tm2030_shape" { // Keyboard total size width = 320; height = 130; // background / foreground colours : baseColor = "white"; labelColor = "black"; // Key shapes : base key = 20 mm each side shape "NORM" { cornerRadius=1, { [18, 18] }, { [1.5, 1.5], [16.5, 14] } }; shape "FUNC" { cornerRadius=1, { [18, 12] }, { [2.5, 0], [15.5, 10] } }; shape "LFSH" { cornerRadius=1, { [18, 36.5] }, { [2.5, 0], [15.5, 30] } }; shape "ALT1" { cornerRadius=1, { [27.5, 18] }, { [2.5, 0], [23.5, 14] } }; shape "BKSP" { cornerRadius=1, { [18, 30.5] }, { [1.5, 1.5], [16.5, 29] } }; shape "SPCE" { cornerRadius=1, { [92, 25] }, { [1.5, 1.5], [90.5, 22] } }; shape "LED" { cornerRadius=2, { [4, 4] } }; shape "PAN1" { cornerRadius=1, { [27, 126.5] } }; shape "PAN2" { cornerRadius=1, { [92, 13] } }; // other decorations : panels solid "panneau1" { shape = "PAN1"; left = 0; top = 0; color = "grey40"; }; solid "panneau2" { shape = "PAN2"; left = 101.5; top = 113.5; color = "grey40"; }; // Diods (Indicators) : they have to be put after panels, either the panels // overwrites them. indicator.left = 6; indicator.onColor = "green"; indicator.offColor = "grey10"; indicator.shape = "LED"; indicator "Num Lock" { top = 11 ; }; indicator "Caps Lock" { top = 27.5; }; indicator "Scroll Lock" { top = 44 ; }; text.left = 12; text.color = "black"; text "NumLockLabel" { top = 11; text="num"; }; text "CapsLockLabel" { top = 27.5; text="caps"; }; text "SrollLockLabel" { top = 44; text="scroll"; }; }; // geometry tm2030_shape xkb_geometry "tm2030_MiscDiod_dvk" { text "ModeLabel" { left = 12; top = 58; color = "black"; text="Dvorak"; }; }; // geometry tm2030_MiscDiod_dvk xkb_geometry "tm2030_MiscDiod_102" { text "ModeLabel" { left = 12; top = 58; color = "black"; text="102"; }; }; // geometry tm2030_MiscDiod_102 xkb_geometry "tm2030_MiscDiod_106" { text "ModeLabel" { left = 12; top = 58; color = "black"; text="106"; }; }; // geometry tm2030_MiscDiod_106 xkb_geometry "tm2030_MiscDiod_off" { indicator "Misc" { left = 6; top = 60.5; shape = "LED"; offColor = "grey10"; onColor = "grey10"; }; }; // geometry tm2030_MiscDiod_off xkb_geometry "tm2030_MiscDiod_on" { indicator "Misc" { left = 6; top = 60.5; shape = "LED"; offColor = "green"; onColor = "green"; }; }; // geometry tm2030_MiscDiod_on xkb_geometry "tm2030USB_func" { // Function keys rows section "Function" { left = 27; top = 1.5; key.gap = 0.5; key.color = "grey30"; key.shape = "FUNC"; row { keys { , , , , , }; }; row { left = 129.5; keys { , , , , , , , }; }; }; }; // geometry tm2030USB_func xkb_geometry "tm2030USB_alpha" { // Alpha-numeric keys rows section "Alpha" { left = 27; top = 14; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 0; keys { , , , , , }; }; row { top = 18.5; keys { , , , , , }; }; row { top = 37; keys { { , "LFSH" }, , , , , }; }; row { top = 55.5; left = 18.5; keys { , , , , }; }; row { top = 0; left = 129.5; keys { , , , , , , , }; }; row { top = 18.5; left = 129.5; keys { , , , , , , , }; }; row { top = 37; left = 129.5; keys { , , , , , , { , "LFSH" }, }; }; row { top = 55.5; left = 129.5; keys { , , , , , }; }; row { top = 55.5; left = 259; keys { }; }; row { top = 74; left = 74; keys { { , "SPCE" } }; }; }; }; // geometry tm2030USB_alpha xkb_geometry "tm2030USB_ctrl" { // Control keys rows section "Control" { left = 27; top = 0; key.gap = 0.5; key.color = "grey30"; key.shape = "NORM"; row { top = 88; keys { , , , }; }; row { top = 106.5; keys { , { , "ALT1" }, { , "ALT1" } }; }; row { top = 88; left = 166.5; keys { , , , , { , "LFSH"}, }; }; row { top = 106.5; left = 166.5; keys { , , , }; }; row { top = 106.5; left = 259; keys { }; }; row { top = 1; left = 111.5; vertical = true; keys { , { , "BKSP" }, { , "LFSH" } }; }; }; }; // geometry tm2030USB_ctrl xkb_geometry "tm2030PS2" { include "typematrix(tm2030_shape)" include "typematrix(tm2030_MiscDiod_dvk)" include "typematrix(tm2030_MiscDiod_off)" description = "TypeMatrix EZ-Reach 2030 PS2"; // Function keys row section "Function" { left = 27; top = 1.5; key.gap = 0.5; key.color = "grey10"; key.shape = "FUNC"; row { key.color = "grey30"; keys { }; }; row { left = 18.5; keys { , , , }; }; row { left = 92.5; key.color = "grey30"; keys { }; }; row { left = 129.5; key.color = "grey30"; keys { , , }; }; row { left = 185; keys { , , , }; }; row { left = 259; key.color = "grey30"; keys { }; }; }; // Alpha-numeric keys rows section "Alpha" { left = 27; top = 14; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 0; keys { , , , , , }; }; row { top = 18.5; keys { , , , , , }; }; row { top = 37; keys { { , "LFSH" }, , , , , }; }; row { top = 55.5; left = 18.5; keys { , , , , }; }; row { top = 0; left = 129.5; keys { , , , , , , , }; }; row { top = 18.5; left = 129.5; keys { , , }; }; row { top = 18.5; left = 185; key.color = "grey30"; keys { , , , }; }; row { top = 18.5; left = 259; keys { }; }; row { top = 37; left = 129.5; keys { , , }; }; row { top = 37; left = 185; key.color = "grey30"; keys { , , , { , "LFSH" }, {, key.color="red"} }; }; row { top = 55.5; left = 129.5; keys { , , }; }; row { top = 55.5; left = 185; key.color = "grey30"; keys { , , }; }; row { top = 55.5; left = 259; keys { }; }; row { top = 74; left = 74; keys { { , "SPCE" } }; }; }; // end section "Alpha" // Control keys rows section "Control" { left = 27; top = 0; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 88; keys { , , , }; }; row { top = 106.5; keys { , { , "ALT1" }, { , "ALT1" } }; }; row { top = 88; left = 166.5; keys { }; }; row { top = 88; left = 185; key.color = "grey30"; keys { , , , { , "LFSH"} }; }; row { top = 88; left = 259; keys { }; }; row { top = 106.5; left = 166.5; keys { }; }; row { top = 106.5; left = 185; key.color = "grey30"; keys { , , }; }; row { top = 106.5; left = 259; keys { }; }; row { top = 1; left = 111.5; key.color = "grey10"; vertical = true; keys { , { , "BKSP" }, { , "LFSH" } }; }; }; // end section "Control" }; // geometry tm2030PS2 xkb_geometry "tm2030USB" { include "typematrix(tm2030_shape)" include "typematrix(tm2030_MiscDiod_102)" include "typematrix(tm2030_MiscDiod_off)" description = "TypeMatrix EZ-Reach 2030 USB"; include "typematrix(tm2030USB_func)" include "typematrix(tm2030USB_alpha)" include "typematrix(tm2030USB_ctrl)" }; // geometry tm2030USB // European 102/105 keys mode : // Same as the standard keyboard, except for one key, Play becomes LSGT xkb_geometry "tm2030USB-102" { include "typematrix(tm2030_shape)" include "typematrix(tm2030_MiscDiod_102)" include "typematrix(tm2030_MiscDiod_on)" description = "TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)"; include "typematrix(tm2030USB_func)" include "typematrix(tm2030USB_alpha)" // Control keys rows section "Control" { left = 27; top = 0; key.gap = 0.5; key.color = "grey30"; key.shape = "NORM"; row { top = 88; keys { , , , }; }; row { top = 106.5; keys { , { , "ALT1" }, { , "ALT1" } }; }; row { top = 88; left = 166.5; keys { , , , , { , "LFSH"}, }; }; row { top = 106.5; left = 166.5; keys { , , , }; }; row { top = 106.5; left = 259; keys { }; }; row { top = 1; left = 111.5; vertical = true; keys { , { , "BKSP" }, { , "LFSH" } }; }; }; }; // geometry tm2030USB-102 // Japan / Korean 106 keys mode : // Same as the standard keyboard, except for following keys : // – is replaced by // – WWW key becomes // — Calc key becomes // — Mail key becomes , and key becomes // about Controls: // NFER/MEHU and XFER/KANJ : TMx keeps LWIN (and RWIN if it happend to exist) // HKTG/HIRA : TMx keeps MENU/COMP, but locates this key in alpha section // (see upper). xkb_geometry "tm2030USB-106" { include "typematrix(tm2030_shape)" include "typematrix(tm2030_MiscDiod_106)" include "typematrix(tm2030_MiscDiod_on)" description = "TypeMatrix EZ-Reach 2030 USB (106:JP mode)"; include "typematrix(tm2030USB_func)" // Alpha-numeric keys rows section "Alpha" { left = 27; top = 14; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 0; keys { , , , , , }; }; row { top = 18.5; keys { , , , , , }; }; row { top = 37; keys { { , "LFSH" }, , , , , }; }; row { top = 55.5; left = 18.5; keys { , , , , }; }; row { top = 0; left = 129.5; keys { , , , , , , , }; }; row { top = 18.5; left = 129.5; keys { , , , , , , , }; }; row { top = 37; left = 129.5; keys { , , , , , , { , "LFSH" }, }; }; row { top = 55.5; left = 129.5; keys { , , , , , }; }; row { top = 55.5; left = 259; keys { }; }; row { top = 74; left = 74; keys { { , "SPCE" } }; }; }; // Control keys rows section "Control" { left = 27; top = 0; key.gap = 0.5; key.color = "grey30"; key.shape = "NORM"; row { top = 88; keys { , , , }; }; row { top = 106.5; keys { , { , "ALT1" }, { , "ALT1" } }; }; row { top = 88; left = 166.5; keys { , , , , { , "LFSH"}, }; }; row { top = 106.5; left = 166.5; keys { , , , }; }; row { top = 106.5; left = 259; keys { }; }; row { top = 1; left = 111.5; vertical = true; keys { , { , "BKSP" }, { , "LFSH" } }; }; }; }; // geometry tm2030USB-106