From 8f4da8610fa55c914af4a8e7a1ceaf0167ae4633 Mon Sep 17 00:00:00 2001 From: "Sergey V. Udaltsov" Date: Tue, 4 Aug 2009 21:12:49 +0100 Subject: [PATCH] Added TypeMatrix geometries http://bugs.freedesktop.org/show_bug.cgi?id=23136 --- ChangeLog | 6 + geometry/Makefile.am | 2 +- geometry/typematrix | 745 ++++++++++++++++++++++++++++++++++++++++++ rules/base.lists.part | 3 + rules/base.m_g.part | 1 + rules/base.xml.in | 35 ++ 6 files changed, 791 insertions(+), 1 deletion(-) create mode 100644 geometry/typematrix diff --git a/ChangeLog b/ChangeLog index 935e0ce..a9d020f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-08-04 Sergey Udaltsov + + * geometry/Makefile.am, rules/base.lists.part, rules/base.m_g.part, + rules/base.xml.in: added TypeMatrix geometries, + http://bugs.freedesktop.org/show_bug.cgi?id=23136 + 2009-07-19 Sergey Udaltsov * symbols/vn: fixed accent typing, diff --git a/geometry/Makefile.am b/geometry/Makefile.am index 8dccdc2..ff1f8c7 100644 --- a/geometry/Makefile.am +++ b/geometry/Makefile.am @@ -8,7 +8,7 @@ dell everex fujitsu \ hhk hp keytronic kinesis \ macintosh microsoft nec \ northgate pc sony thinkpad \ -sun winbook README +sun typematrix winbook README dir_data = $(dist_geom_DATA) diff --git a/geometry/typematrix b/geometry/typematrix new file mode 100644 index 0000000..d86976f --- /dev/null +++ b/geometry/typematrix @@ -0,0 +1,745 @@ +// -*- 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 diff --git a/rules/base.lists.part b/rules/base.lists.part index 95fddb9..d1927c5 100644 --- a/rules/base.lists.part +++ b/rules/base.lists.part @@ -14,6 +14,9 @@ // PC geometries - they have special geometry but symbols are mostly pc105 ! $pcgeometries = latitude +// TypeMatrix geometries +! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 + // Layouts that provide further specializations for the OLPC ! $olpclayouts = af am ara br ca es et it kh kz in mn np ru th tr us diff --git a/rules/base.m_g.part b/rules/base.m_g.part index 3652575..a925bfa 100644 --- a/rules/base.m_g.part +++ b/rules/base.m_g.part @@ -12,6 +12,7 @@ thinkpad = thinkpad(intl) thinkpad60 = thinkpad(60) thinkpadz60 = thinkpad(60) + $tmgeometries = typematrix(%m) winbook = winbook(XP5) pc98 = nec(pc98) $macbooks = macintosh(%m) diff --git a/rules/base.xml.in b/rules/base.xml.in index 80ec3a3..f0c9d50 100644 --- a/rules/base.xml.in +++ b/rules/base.xml.in @@ -979,6 +979,41 @@ Trust + + + tm2020 + TypeMatrix EZ-Reach 2020 + TypeMatrix + + + + + tm2030PS2 + TypeMatrix EZ-Reach 2030 PS2 + TypeMatrix + + + + + tm2030USB + TypeMatrix EZ-Reach 2030 USB + TypeMatrix + + + + + tm2030USB-102 + TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + TypeMatrix + + + + + tm2030USB-106 + TypeMatrix EZ-Reach 2030 USB (106:JP mode) + TypeMatrix + + yahoo -- 2.32.0.93.g670b81a890