diff --git a/packages/keybr-generators/layouts/ru_statica_3x5.json b/packages/keybr-generators/layouts/ru_statica_3x5.json new file mode 100644 index 00000000..60472d94 --- /dev/null +++ b/packages/keybr-generators/layouts/ru_statica_3x5.json @@ -0,0 +1,50 @@ +{ + "Backquote": "\"'", + "Digit1": "1!", + "Digit2": "2@", + "Digit3": "3#", + "Digit4": "4$", + "Digit5": "5%", + "Digit6": "6^", + "Digit7": "7?", + "Digit8": "8*", + "Digit9": "9(", + "Digit0": "0)", + "Minus": "-_", + "Equal": "=+", + "KeyQ": "ьЬъЪ", + "KeyW": "уУ", + "KeyE": "аА", + "KeyR": "жЖ", + "KeyT": "юЮ", + "KeyY": "гГ", + "KeyU": "бБ", + "KeyI": "рР", + "KeyO": "лЛ", + "KeyP": "хХ", + "BracketLeft": ",;", + "BracketRight": ".:", + "Backslash": "\\|", + "KeyA": "иИ", + "KeyS": "еЕёЁ", + "KeyD": "оО", + "KeyF": "кК", + "KeyG": "яЯ", + "KeyH": "мМ", + "KeyJ": "тТ", + "KeyK": "сС", + "KeyL": "нН", + "Semicolon": "зЗ", + "Quote": ".:", + "KeyZ": "фФ", + "KeyX": "эЭ", + "KeyC": "ыЫ", + "KeyV": "пП", + "KeyB": "йЙ", + "KeyN": "дД", + "KeyM": "вВ", + "Comma": "чЧ", + "Period": "шШщЩ", + "Slash": "цЦ", + "Space": " " +} diff --git a/packages/keybr-generators/lib/generate-layouts.ts b/packages/keybr-generators/lib/generate-layouts.ts index 9b788ab9..91cd3f90 100755 --- a/packages/keybr-generators/lib/generate-layouts.ts +++ b/packages/keybr-generators/lib/generate-layouts.ts @@ -100,6 +100,7 @@ for (const [id, layout] of [ ["pt_pt", importCldr("cldr-keyboards-43.0/keyboards/windows/pt-PT-t-k0-windows.xml")], ["ro_ro", importCldr("cldr-keyboards-43.0/keyboards/windows/ro-t-k0-windows.xml")], ["ru_ru", importCldr("cldr-keyboards-43.0/keyboards/windows/ru-t-k0-windows.xml")], + ["ru_statica_3x5", importKeymap("layouts/ru_statica_3x5.json")], ["sl_si", importCldr("cldr-keyboards-43.0/keyboards/windows/sl-t-k0-windows.xml")], ["sv_se", importCldr("cldr-keyboards-43.0/keyboards/windows/sv-t-k0-windows.xml")], ["th_th", importCldr("cldr-keyboards-43.0/keyboards/windows/th-t-k0-windows.xml")], diff --git a/packages/keybr-keyboard/lib/layout-id.md b/packages/keybr-keyboard/lib/layout-id.md index 8c34ed55..ef5d75f5 100644 --- a/packages/keybr-keyboard/lib/layout-id.md +++ b/packages/keybr-keyboard/lib/layout-id.md @@ -99,7 +99,7 @@ - `0x6e`: - `0x6f`: - `0x70`: Russian/Russia -- `0x71`: +- `0x71`: Russian/Statica 3x5 (Matrix) - `0x72`: - `0x73`: - `0x74`: Belarusian/Belarus diff --git a/packages/keybr-keyboard/lib/layout.ts b/packages/keybr-keyboard/lib/layout.ts index 7a18d79d..f8a05017 100755 --- a/packages/keybr-keyboard/lib/layout.ts +++ b/packages/keybr-keyboard/lib/layout.ts @@ -545,6 +545,15 @@ export class Layout implements XEnumItem { Geometry.MATRIX, ), ); + static readonly RU_STATICA_3X5 = new Layout( + /* id= */ "ru-statica-3x5", + /* xid= */ 0x71, + /* name= */ "Statica 3x5 (Matrix)", + /* family= */ "statica", + /* language= */ Language.RU, + /* emulate= */ true, + /* geometries= */ new Enum(Geometry.MATRIX), + ); static readonly BE_BY = new Layout( /* id= */ "be-by", /* xid= */ 0x74, @@ -1416,6 +1425,7 @@ export class Layout implements XEnumItem { Layout.SV_SE, Layout.UK_UA, Layout.RU_RU, + Layout.RU_STATICA_3X5, Layout.TR_TR_Q, Layout.TR_TR_F, Layout.AR_SA, diff --git a/packages/keybr-keyboard/lib/layout/ru_statica_3x5.ts b/packages/keybr-keyboard/lib/layout/ru_statica_3x5.ts new file mode 100644 index 00000000..53f169bb --- /dev/null +++ b/packages/keybr-keyboard/lib/layout/ru_statica_3x5.ts @@ -0,0 +1,55 @@ +// Generated file, do not edit. + +import { type CharacterDict } from "../types.ts"; + +// prettier-ignore +export const LAYOUT_RU_STATICA_MATRIX: CharacterDict = { + Backquote: [/* QUOTATION MARK */ 0x0022, /* APOSTROPHE */ 0x0027], + Digit1: [/* DIGIT ONE */ 0x0031, /* EXCLAMATION MARK */ 0x0021], + Digit2: [/* DIGIT TWO */ 0x0032, /* COMMERCIAL AT */ 0x0040], + Digit3: [/* DIGIT THREE */ 0x0033, /* NUMBER SIGN */ 0x0023], + Digit4: [/* DIGIT FOUR */ 0x0034, /* DOLLAR SIGN */ 0x0024], + Digit5: [/* DIGIT FIVE */ 0x0035, /* PERCENT SIGN */ 0x0025], + Digit6: [/* DIGIT SIX */ 0x0036, /* CIRCUMFLEX ACCENT */ 0x005e], + Digit7: [/* DIGIT SEVEN */ 0x0037, /* QUESTION MARK */ 0x003f], + Digit8: [/* DIGIT EIGHT */ 0x0038, /* ASTERISK */ 0x002a], + Digit9: [/* DIGIT NINE */ 0x0039, /* LEFT PARENTHESIS */ 0x0028], + Digit0: [/* DIGIT ZERO */ 0x0030, /* RIGHT PARENTHESIS */ 0x0029], + Minus: [/* HYPHEN-MINUS */ 0x002d, /* LOW LINE */ 0x005f], + Equal: [/* EQUALS SIGN */ 0x003d, /* PLUS SIGN */ 0x002b], + KeyQ: [/* CYRILLIC SMALL LETTER SOFT SIGN */ 0x044c, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ 0x042c, /* CYRILLIC SMALL LETTER HARD SIGN */ 0x044a, /* CYRILLIC CAPITAL LETTER HARD SIGN */ 0x042a], + KeyW: [/* CYRILLIC SMALL LETTER U */ 0x0443, /* CYRILLIC CAPITAL LETTER U */ 0x0423], + KeyE: [/* CYRILLIC SMALL LETTER A */ 0x0430, /* CYRILLIC CAPITAL LETTER A */ 0x0410], + KeyR: [/* CYRILLIC SMALL LETTER ZHE */ 0x0436, /* CYRILLIC CAPITAL LETTER ZHE */ 0x0416], + KeyT: [/* CYRILLIC SMALL LETTER YU */ 0x044e, /* CYRILLIC CAPITAL LETTER YU */ 0x042e], + KeyY: [/* CYRILLIC SMALL LETTER GHE */ 0x0433, /* CYRILLIC CAPITAL LETTER GHE */ 0x0413], + KeyU: [/* CYRILLIC SMALL LETTER BE */ 0x0431, /* CYRILLIC CAPITAL LETTER BE */ 0x0411], + KeyI: [/* CYRILLIC SMALL LETTER ER */ 0x0440, /* CYRILLIC CAPITAL LETTER ER */ 0x0420], + KeyO: [/* CYRILLIC SMALL LETTER EL */ 0x043b, /* CYRILLIC CAPITAL LETTER EL */ 0x041b], + KeyP: [/* CYRILLIC SMALL LETTER HA */ 0x0445, /* CYRILLIC CAPITAL LETTER HA */ 0x0425], + BracketLeft: [/* COMMA */ 0x002c, /* SEMICOLON */ 0x003b], + BracketRight: [/* FULL STOP */ 0x002e, /* COLON */ 0x003a], + Backslash: [/* SOLIDUS */ 0x002f, /* VERTICAL LINE */ 0x007c], + KeyA: [/* CYRILLIC SMALL LETTER I */ 0x0438, /* CYRILLIC CAPITAL LETTER I */ 0x0418], + KeyS: [/* CYRILLIC SMALL LETTER IE */ 0x0435, /* CYRILLIC CAPITAL LETTER IE */ 0x0415, /* CYRILLIC SMALL LETTER IO */ 0x0451, /* CYRILLIC CAPITAL LETTER IO */ 0x0401], + KeyD: [/* CYRILLIC SMALL LETTER O */ 0x043e, /* CYRILLIC CAPITAL LETTER O */ 0x041e], + KeyF: [/* CYRILLIC SMALL LETTER KA */ 0x043a, /* CYRILLIC CAPITAL LETTER KA */ 0x041a], + KeyG: [/* CYRILLIC SMALL LETTER YA */ 0x044f, /* CYRILLIC CAPITAL LETTER YA */ 0x042f], + KeyH: [/* CYRILLIC SMALL LETTER EM */ 0x043c, /* CYRILLIC CAPITAL LETTER EM */ 0x041c], + KeyJ: [/* CYRILLIC SMALL LETTER TE */ 0x0442, /* CYRILLIC CAPITAL LETTER TE */ 0x0422], + KeyK: [/* CYRILLIC SMALL LETTER ES */ 0x0441, /* CYRILLIC CAPITAL LETTER ES */ 0x0421], + KeyL: [/* CYRILLIC SMALL LETTER EN */ 0x043d, /* CYRILLIC CAPITAL LETTER EN */ 0x041d], + Semicolon: [/* CYRILLIC SMALL LETTER ZE */ 0x0437, /* CYRILLIC CAPITAL LETTER ZE */ 0x0417], + Quote: [/* FULL STOP */ 0x002e, /* COLON */ 0x003a], + KeyZ: [/* CYRILLIC SMALL LETTER EF */ 0x0444, /* CYRILLIC CAPITAL LETTER EF */ 0x0424], + KeyX: [/* CYRILLIC SMALL LETTER E */ 0x044d, /* CYRILLIC CAPITAL LETTER E */ 0x042d], + KeyC: [/* CYRILLIC SMALL LETTER YERU */ 0x044b, /* CYRILLIC CAPITAL LETTER YERU */ 0x042b], + KeyV: [/* CYRILLIC SMALL LETTER PE */ 0x043f, /* CYRILLIC CAPITAL LETTER PE */ 0x041f], + KeyB: [/* CYRILLIC SMALL LETTER SHORT I */ 0x0439, /* CYRILLIC CAPITAL LETTER SHORT I */ 0x0419], + KeyN: [/* CYRILLIC SMALL LETTER DE */ 0x0434, /* CYRILLIC CAPITAL LETTER DE */ 0x0414], + KeyM: [/* CYRILLIC SMALL LETTER VE */ 0x0432, /* CYRILLIC CAPITAL LETTER VE */ 0x0412], + Comma: [/* CYRILLIC SMALL LETTER CHE */ 0x0447, /* CYRILLIC CAPITAL LETTER CHE */ 0x0427], + Period: [/* CYRILLIC SMALL LETTER SHA */ 0x0448, /* CYRILLIC CAPITAL LETTER SHA */ 0x0428, /* CYRILLIC SMALL LETTER SHCHA */ 0x0449, /* CYRILLIC CAPITAL LETTER SHCHA */ 0x0429], + Slash: [/* CYRILLIC SMALL LETTER TSE */ 0x0446, /* CYRILLIC CAPITAL LETTER TSE */ 0x0426], + Space: [/* SPACE */ 0x0020], +}; diff --git a/packages/keybr-keyboard/lib/load.ts b/packages/keybr-keyboard/lib/load.ts index ee89f165..7df6546d 100755 --- a/packages/keybr-keyboard/lib/load.ts +++ b/packages/keybr-keyboard/lib/load.ts @@ -98,6 +98,7 @@ import { LAYOUT_PT_BR } from "./layout/pt_br.ts"; import { LAYOUT_PT_PT } from "./layout/pt_pt.ts"; import { LAYOUT_RO_RO } from "./layout/ro_ro.ts"; import { LAYOUT_RU_RU } from "./layout/ru_ru.ts"; +import { LAYOUT_RU_STATICA_3X5 } from "./layout/ru_statica_3x5.ts"; import { LAYOUT_SL_SI } from "./layout/sl_si.ts"; import { LAYOUT_SV_SE } from "./layout/sv_se.ts"; import { LAYOUT_TH_TH } from "./layout/th_th.ts"; @@ -200,6 +201,7 @@ const layouts = new Map([ [Layout.PT_PT, LAYOUT_PT_PT], [Layout.RO_RO, LAYOUT_RO_RO], [Layout.RU_RU, LAYOUT_RU_RU], + [Layout.RU_STATICA_3X5, LAYOUT_RU_STATICA_3X5], [Layout.SL_SI, LAYOUT_SL_SI], [Layout.SV_SE, LAYOUT_SV_SE], [Layout.TH_MAN, LAYOUT_TH_TH_MAN],