diff --git a/packages/keybr-generators/layouts/uk_facet_ua.json b/packages/keybr-generators/layouts/uk_facet_ua.json new file mode 100644 index 00000000..194658dc --- /dev/null +++ b/packages/keybr-generators/layouts/uk_facet_ua.json @@ -0,0 +1,55 @@ +{ + "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": "хХ", + "IntlBackslash": "", + "KeyZ": "зЗ", + "KeyX": "гГ", + "KeyC": "лЛ", + "KeyV": "мМ", + "KeyB": "бБ", + "KeyN": ",\"", + "KeyM": ".'", + "Comma": "йЙ", + "Period": "ьЬ", + "Slash": "їЇ", + "Space": " ", + "ThumbClusterRight1": "рР", + "ThumbClusterRight2": " ", + "ThumbClusterLeft1": "ґҐ", + "ThumbClusterLeft2": "щЩ" +} diff --git a/packages/keybr-generators/lib/generate-layouts.ts b/packages/keybr-generators/lib/generate-layouts.ts index 2c9936a5..8f068b57 100755 --- a/packages/keybr-generators/lib/generate-layouts.ts +++ b/packages/keybr-generators/lib/generate-layouts.ts @@ -92,6 +92,7 @@ for (const [id, layout] of [ ["tr_tr_f", importCldr("cldr-keyboards-43.0/keyboards/windows/tr-t-k0-windows-legacy.xml")], ["tr_tr_q", importCldr("cldr-keyboards-43.0/keyboards/windows/tr-t-k0-windows.xml")], ["uk_ua", importCldr("cldr-keyboards-43.0/keyboards/windows/uk-t-k0-windows.xml")], + ["uk_facet_ua", importKeymap("layouts/uk_facet_ua.json")], ] as [string, CharacterDict][]) { writeGeneratedFile(layout, pathTo(`../keybr-keyboard/lib/layout/${id}.ts`)); } diff --git a/packages/keybr-keyboard/lib/layout.ts b/packages/keybr-keyboard/lib/layout.ts index 6a368382..e26da329 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 UK_FACET_UA = new Layout( + /* id= */ "uk-facet-ua", + /* xid= */ 0x79, + /* name= */ "Facet UA (Matrix)", + /* family= */ "uk-facet-ua", + /* language= */ Language.UK, + /* emulate= */ true, + /* geometries= */ new Enum(Geometry.MATRIX), + ); static readonly SV_SE = new Layout( /* id= */ "sv-se", /* xid= */ 0x80, @@ -1191,6 +1200,7 @@ export class Layout implements XEnumItem { Layout.SL_SI, Layout.SV_SE, Layout.UK_UA, + Layout.UK_FACET_UA, Layout.RU_RU, Layout.TR_TR_Q, Layout.TR_TR_F, diff --git a/packages/keybr-keyboard/lib/layout/uk_facet_ua.ts b/packages/keybr-keyboard/lib/layout/uk_facet_ua.ts new file mode 100644 index 00000000..57712de3 --- /dev/null +++ b/packages/keybr-keyboard/lib/layout/uk_facet_ua.ts @@ -0,0 +1,59 @@ +// Generated file, do not edit. + +import { type CharacterDict } from "../types.ts"; + +// prettier-ignore +export const LAYOUT_UK_FACET_UA: CharacterDict = { + Backquote: [/* GRAVE ACCENT */ 0x0060, /* TILDE */ 0x007e], + 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, /* AMPERSAND */ 0x0026], + 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 ZHE */ 0x0436, /* CYRILLIC CAPITAL LETTER ZHE */ 0x0416], + KeyW: [/* CYRILLIC SMALL LETTER PE */ 0x043f, /* CYRILLIC CAPITAL LETTER PE */ 0x041f], + KeyE: [/* CYRILLIC SMALL LETTER DE */ 0x0434, /* CYRILLIC CAPITAL LETTER DE */ 0x0414], + KeyR: [/* CYRILLIC SMALL LETTER CHE */ 0x0447, /* CYRILLIC CAPITAL LETTER CHE */ 0x0427], + KeyT: [/* CYRILLIC SMALL LETTER TSE */ 0x0446, /* CYRILLIC CAPITAL LETTER TSE */ 0x0426], + KeyY: [/* CYRILLIC SMALL LETTER YU */ 0x044e, /* CYRILLIC CAPITAL LETTER YU */ 0x042e], + KeyU: [/* CYRILLIC SMALL LETTER YA */ 0x044f, /* CYRILLIC CAPITAL LETTER YA */ 0x042f], + KeyI: [/* CYRILLIC SMALL LETTER O */ 0x043e, /* CYRILLIC CAPITAL LETTER O */ 0x041e], + KeyO: [/* CYRILLIC SMALL LETTER U */ 0x0443, /* CYRILLIC CAPITAL LETTER U */ 0x0423], + KeyP: [/* CYRILLIC SMALL LETTER EF */ 0x0444, /* CYRILLIC CAPITAL LETTER EF */ 0x0424], + BracketLeft: [/* CYRILLIC SMALL LETTER GHE WITH UPTURN */ 0x0491, /* CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ 0x0490], + BracketRight: [/* CYRILLIC SMALL LETTER SHCHA */ 0x0449, /* CYRILLIC CAPITAL LETTER SHCHA */ 0x0429], + Backslash: [/* CYRILLIC SMALL LETTER SHA */ 0x0448, /* CYRILLIC CAPITAL LETTER SHA */ 0x0428], + KeyA: [/* CYRILLIC SMALL LETTER ES */ 0x0441, /* CYRILLIC CAPITAL LETTER ES */ 0x0421], + KeyS: [/* CYRILLIC SMALL LETTER EN */ 0x043d, /* CYRILLIC CAPITAL LETTER EN */ 0x041d], + KeyD: [/* CYRILLIC SMALL LETTER TE */ 0x0442, /* CYRILLIC CAPITAL LETTER TE */ 0x0422], + KeyF: [/* CYRILLIC SMALL LETTER KA */ 0x043a, /* CYRILLIC CAPITAL LETTER KA */ 0x041a], + KeyG: [/* CYRILLIC SMALL LETTER VE */ 0x0432, /* CYRILLIC CAPITAL LETTER VE */ 0x0412], + KeyH: [/* CYRILLIC SMALL LETTER UKRAINIAN IE */ 0x0454, /* CYRILLIC CAPITAL LETTER UKRAINIAN IE */ 0x0404], + KeyJ: [/* CYRILLIC SMALL LETTER A */ 0x0430, /* CYRILLIC CAPITAL LETTER A */ 0x0410], + KeyK: [/* CYRILLIC SMALL LETTER IE */ 0x0435, /* CYRILLIC CAPITAL LETTER IE */ 0x0415], + KeyL: [/* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ 0x0456, /* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ 0x0406], + Semicolon: [/* CYRILLIC SMALL LETTER I */ 0x0438, /* CYRILLIC CAPITAL LETTER I */ 0x0418], + Quote: [/* CYRILLIC SMALL LETTER HA */ 0x0445, /* CYRILLIC CAPITAL LETTER HA */ 0x0425], + KeyZ: [/* CYRILLIC SMALL LETTER ZE */ 0x0437, /* CYRILLIC CAPITAL LETTER ZE */ 0x0417], + KeyX: [/* CYRILLIC SMALL LETTER GHE */ 0x0433, /* CYRILLIC CAPITAL LETTER GHE */ 0x0413], + KeyC: [/* CYRILLIC SMALL LETTER EL */ 0x043b, /* CYRILLIC CAPITAL LETTER EL */ 0x041b], + KeyV: [/* CYRILLIC SMALL LETTER EM */ 0x043c, /* CYRILLIC CAPITAL LETTER EM */ 0x041c], + KeyB: [/* CYRILLIC SMALL LETTER BE */ 0x0431, /* CYRILLIC CAPITAL LETTER BE */ 0x0411], + KeyN: [/* COMMA */ 0x002c, /* QUOTATION MARK */ 0x0022], + KeyM: [/* FULL STOP */ 0x002e, /* APOSTROPHE */ 0x0027], + Comma: [/* CYRILLIC SMALL LETTER SHORT I */ 0x0439, /* CYRILLIC CAPITAL LETTER SHORT I */ 0x0419], + Period: [/* CYRILLIC SMALL LETTER SOFT SIGN */ 0x044c, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ 0x042c], + Slash: [/* CYRILLIC SMALL LETTER YI */ 0x0457, /* CYRILLIC CAPITAL LETTER YI */ 0x0407], + Space: [/* SPACE */ 0x0020], + ThumbClusterLeft1: [/* CYRILLIC SMALL LETTER GHE WITH UPTURN */ 0x0491, /* CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ 0x0490], + ThumbClusterLeft2: [/* CYRILLIC SMALL LETTER SHCHA */ 0x0449, /* CYRILLIC CAPITAL LETTER SHCHA */ 0x0429], + ThumbClusterRight1: [/* CYRILLIC SMALL LETTER ER */ 0x0440, /* CYRILLIC CAPITAL LETTER ER */ 0x0420], + ThumbClusterRight2: [/* SPACE */ 0x0020], +}; diff --git a/packages/keybr-keyboard/lib/load.ts b/packages/keybr-keyboard/lib/load.ts index 2b04200e..e740a26f 100755 --- a/packages/keybr-keyboard/lib/load.ts +++ b/packages/keybr-keyboard/lib/load.ts @@ -89,6 +89,7 @@ import { LAYOUT_TH_TH_PAT } from "./layout/th_th_pat.ts"; import { LAYOUT_TR_TR_F } from "./layout/tr_tr_f.ts"; import { LAYOUT_TR_TR_Q } from "./layout/tr_tr_q.ts"; import { LAYOUT_UK_UA } from "./layout/uk_ua.ts"; +import { LAYOUT_UK_FACET_UA } from "./layout/uk_facet_ua.ts"; import { nullMod, remapZones } from "./mod.ts"; import { KeyboardOptions } from "./settings.ts"; import { type CharacterDict, type GeometryDict } from "./types.ts"; @@ -170,6 +171,7 @@ const layouts = new Map([ [Layout.TR_TR_F, LAYOUT_TR_TR_F], [Layout.TR_TR_Q, LAYOUT_TR_TR_Q], [Layout.UK_UA, LAYOUT_UK_UA], + [Layout.UK_FACET_UA, LAYOUT_UK_FACET_UA], [Layout.DE_ADNW_BUT_XCV, LAYOUT_DE_ADNW_BUT_XCV], ]);