Skip to content

Commit eae1126

Browse files
authored
Add gallium layout (#331)
1 parent 012baa7 commit eae1126

File tree

7 files changed

+142
-0
lines changed

7 files changed

+142
-0
lines changed
Binary file not shown.
Binary file not shown.

packages/keybr-generators/lib/generate-layouts.ts

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ for (const [id, layout] of [
3737
["en_dvorak_r", importCldr("cldr-keyboards-43.0/keyboards/windows/en-t-k0-windows-dvorakr.xml")],
3838
["en_engram", importKlc("layouts/engram.klc")],
3939
["en_engrammer", importKlc("layouts/engrammer.klc")],
40+
["en_gallium", importKlc("layouts/en_gallium.klc")],
41+
["en_gallium_matrix", importKlc("layouts/en_gallium_matrix.klc")],
4042
["en_graphite", importKeymap("layouts/en_graphite.json")],
4143
["en_halmak", importKeymap("layouts/en_halmak.json")],
4244
["en_hands_down_neu", importKeymap("layouts/en_hands_down_neu.json")],

packages/keybr-keyboard/lib/layout.ts

+26
Original file line numberDiff line numberDiff line change
@@ -1007,6 +1007,30 @@ export class Layout implements XEnumItem {
10071007
Geometry.MATRIX,
10081008
),
10091009
);
1010+
static readonly EN_GALLIUM = new Layout(
1011+
/* id= */ "en-gallium",
1012+
/* xid= */ 0xa1,
1013+
/* name= */ "Gallium",
1014+
/* family= */ "gallium",
1015+
/* language= */ Language.EN,
1016+
/* emulate= */ true,
1017+
/* geometries= */ new Enum(
1018+
Geometry.ANSI_101,
1019+
Geometry.ANSI_101_FULL,
1020+
Geometry.ISO_102,
1021+
Geometry.ISO_102_FULL,
1022+
Geometry.MATRIX,
1023+
),
1024+
);
1025+
static readonly EN_GALLIUM_MATRIX = new Layout(
1026+
/* id= */ "en-gallium-matrix",
1027+
/* xid= */ 0xa2,
1028+
/* name= */ "Gallium (matrix)",
1029+
/* family= */ "gallium-matrix",
1030+
/* language= */ Language.EN,
1031+
/* emulate= */ true,
1032+
/* geometries= */ new Enum(Geometry.MATRIX),
1033+
);
10101034

10111035
static readonly ALL = new XEnum<Layout>(
10121036
Layout.EN_US,
@@ -1028,6 +1052,8 @@ export class Layout implements XEnumItem {
10281052
Layout.EN_NORMAN,
10291053
Layout.EN_HALMAK,
10301054
Layout.EN_ENGRAM,
1055+
Layout.EN_GALLIUM,
1056+
Layout.EN_GALLIUM_MATRIX,
10311057
Layout.EN_GRAPHITE,
10321058
Layout.EN_UK,
10331059
Layout.EN_JP,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
// Generated file, do not edit.
2+
3+
import { type CharacterDict } from "../types.ts";
4+
5+
// prettier-ignore
6+
export const LAYOUT_EN_GALLIUM: CharacterDict = {
7+
Backquote: [/* GRAVE ACCENT */ 0x0060, /* TILDE */ 0x007e],
8+
Digit1: [/* DIGIT ONE */ 0x0031, /* EXCLAMATION MARK */ 0x0021],
9+
Digit2: [/* DIGIT TWO */ 0x0032, /* COMMERCIAL AT */ 0x0040],
10+
Digit3: [/* DIGIT THREE */ 0x0033, /* NUMBER SIGN */ 0x0023],
11+
Digit4: [/* DIGIT FOUR */ 0x0034, /* DOLLAR SIGN */ 0x0024],
12+
Digit5: [/* DIGIT FIVE */ 0x0035, /* PERCENT SIGN */ 0x0025],
13+
Digit6: [/* DIGIT SIX */ 0x0036, /* CIRCUMFLEX ACCENT */ 0x005e],
14+
Digit7: [/* DIGIT SEVEN */ 0x0037, /* AMPERSAND */ 0x0026],
15+
Digit8: [/* DIGIT EIGHT */ 0x0038, /* ASTERISK */ 0x002a],
16+
Digit9: [/* DIGIT NINE */ 0x0039, /* LEFT PARENTHESIS */ 0x0028],
17+
Digit0: [/* DIGIT ZERO */ 0x0030, /* RIGHT PARENTHESIS */ 0x0029],
18+
Minus: [/* HYPHEN-MINUS */ 0x002d, /* LOW LINE */ 0x005f],
19+
Equal: [/* EQUALS SIGN */ 0x003d, /* PLUS SIGN */ 0x002b],
20+
KeyQ: [/* LATIN SMALL LETTER B */ 0x0062, /* LATIN CAPITAL LETTER B */ 0x0042],
21+
KeyW: [/* LATIN SMALL LETTER L */ 0x006c, /* LATIN CAPITAL LETTER L */ 0x004c],
22+
KeyE: [/* LATIN SMALL LETTER D */ 0x0064, /* LATIN CAPITAL LETTER D */ 0x0044],
23+
KeyR: [/* LATIN SMALL LETTER C */ 0x0063, /* LATIN CAPITAL LETTER C */ 0x0043],
24+
KeyT: [/* LATIN SMALL LETTER V */ 0x0076, /* LATIN CAPITAL LETTER V */ 0x0056],
25+
KeyY: [/* LATIN SMALL LETTER J */ 0x006a, /* LATIN CAPITAL LETTER J */ 0x004a],
26+
KeyU: [/* LATIN SMALL LETTER F */ 0x0066, /* LATIN CAPITAL LETTER F */ 0x0046],
27+
KeyI: [/* LATIN SMALL LETTER O */ 0x006f, /* LATIN CAPITAL LETTER O */ 0x004f],
28+
KeyO: [/* LATIN SMALL LETTER U */ 0x0075, /* LATIN CAPITAL LETTER U */ 0x0055],
29+
KeyP: [/* COMMA */ 0x002c, /* LESS-THAN SIGN */ 0x003c],
30+
BracketLeft: [/* LEFT SQUARE BRACKET */ 0x005b, /* LEFT CURLY BRACKET */ 0x007b],
31+
BracketRight: [/* RIGHT SQUARE BRACKET */ 0x005d, /* RIGHT CURLY BRACKET */ 0x007d],
32+
Backslash: [/* REVERSE SOLIDUS */ 0x005c, /* VERTICAL LINE */ 0x007c],
33+
KeyA: [/* LATIN SMALL LETTER N */ 0x006e, /* LATIN CAPITAL LETTER N */ 0x004e],
34+
KeyS: [/* LATIN SMALL LETTER R */ 0x0072, /* LATIN CAPITAL LETTER R */ 0x0052],
35+
KeyD: [/* LATIN SMALL LETTER T */ 0x0074, /* LATIN CAPITAL LETTER T */ 0x0054],
36+
KeyF: [/* LATIN SMALL LETTER S */ 0x0073, /* LATIN CAPITAL LETTER S */ 0x0053],
37+
KeyG: [/* LATIN SMALL LETTER G */ 0x0067, /* LATIN CAPITAL LETTER G */ 0x0047],
38+
KeyH: [/* LATIN SMALL LETTER Y */ 0x0079, /* LATIN CAPITAL LETTER Y */ 0x0059],
39+
KeyJ: [/* LATIN SMALL LETTER H */ 0x0068, /* LATIN CAPITAL LETTER H */ 0x0048],
40+
KeyK: [/* LATIN SMALL LETTER A */ 0x0061, /* LATIN CAPITAL LETTER A */ 0x0041],
41+
KeyL: [/* LATIN SMALL LETTER E */ 0x0065, /* LATIN CAPITAL LETTER E */ 0x0045],
42+
Semicolon: [/* LATIN SMALL LETTER I */ 0x0069, /* LATIN CAPITAL LETTER I */ 0x0049],
43+
Quote: [/* SOLIDUS */ 0x002f, /* QUESTION MARK */ 0x003f],
44+
KeyZ: [/* LATIN SMALL LETTER X */ 0x0078, /* LATIN CAPITAL LETTER X */ 0x0058],
45+
KeyX: [/* LATIN SMALL LETTER Q */ 0x0071, /* LATIN CAPITAL LETTER Q */ 0x0051],
46+
KeyC: [/* LATIN SMALL LETTER M */ 0x006d, /* LATIN CAPITAL LETTER M */ 0x004d],
47+
KeyV: [/* LATIN SMALL LETTER W */ 0x0077, /* LATIN CAPITAL LETTER W */ 0x0057],
48+
KeyB: [/* LATIN SMALL LETTER Z */ 0x007a, /* LATIN CAPITAL LETTER Z */ 0x005a],
49+
KeyN: [/* LATIN SMALL LETTER K */ 0x006b, /* LATIN CAPITAL LETTER K */ 0x004b],
50+
KeyM: [/* LATIN SMALL LETTER P */ 0x0070, /* LATIN CAPITAL LETTER P */ 0x0050],
51+
Comma: [/* APOSTROPHE */ 0x0027, /* QUOTATION MARK */ 0x0022],
52+
Period: [/* SEMICOLON */ 0x003b, /* COLON */ 0x003a],
53+
Slash: [/* FULL STOP */ 0x002e, /* GREATER-THAN SIGN */ 0x003e],
54+
Space: [/* SPACE */ 0x0020],
55+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
// Generated file, do not edit.
2+
3+
import { type CharacterDict } from "../types.ts";
4+
5+
// prettier-ignore
6+
export const LAYOUT_EN_GALLIUM_MATRIX: CharacterDict = {
7+
Backquote: [/* GRAVE ACCENT */ 0x0060, /* TILDE */ 0x007e],
8+
Digit1: [/* DIGIT ONE */ 0x0031, /* EXCLAMATION MARK */ 0x0021],
9+
Digit2: [/* DIGIT TWO */ 0x0032, /* COMMERCIAL AT */ 0x0040],
10+
Digit3: [/* DIGIT THREE */ 0x0033, /* NUMBER SIGN */ 0x0023],
11+
Digit4: [/* DIGIT FOUR */ 0x0034, /* DOLLAR SIGN */ 0x0024],
12+
Digit5: [/* DIGIT FIVE */ 0x0035, /* PERCENT SIGN */ 0x0025],
13+
Digit6: [/* DIGIT SIX */ 0x0036, /* CIRCUMFLEX ACCENT */ 0x005e],
14+
Digit7: [/* DIGIT SEVEN */ 0x0037, /* AMPERSAND */ 0x0026],
15+
Digit8: [/* DIGIT EIGHT */ 0x0038, /* ASTERISK */ 0x002a],
16+
Digit9: [/* DIGIT NINE */ 0x0039, /* LEFT PARENTHESIS */ 0x0028],
17+
Digit0: [/* DIGIT ZERO */ 0x0030, /* RIGHT PARENTHESIS */ 0x0029],
18+
Minus: [/* HYPHEN-MINUS */ 0x002d, /* LOW LINE */ 0x005f],
19+
Equal: [/* EQUALS SIGN */ 0x003d, /* PLUS SIGN */ 0x002b],
20+
KeyQ: [/* LATIN SMALL LETTER B */ 0x0062, /* LATIN CAPITAL LETTER B */ 0x0042],
21+
KeyW: [/* LATIN SMALL LETTER L */ 0x006c, /* LATIN CAPITAL LETTER L */ 0x004c],
22+
KeyE: [/* LATIN SMALL LETTER D */ 0x0064, /* LATIN CAPITAL LETTER D */ 0x0044],
23+
KeyR: [/* LATIN SMALL LETTER C */ 0x0063, /* LATIN CAPITAL LETTER C */ 0x0043],
24+
KeyT: [/* LATIN SMALL LETTER V */ 0x0076, /* LATIN CAPITAL LETTER V */ 0x0056],
25+
KeyY: [/* LATIN SMALL LETTER J */ 0x006a, /* LATIN CAPITAL LETTER J */ 0x004a],
26+
KeyU: [/* LATIN SMALL LETTER Y */ 0x0079, /* LATIN CAPITAL LETTER Y */ 0x0059],
27+
KeyI: [/* LATIN SMALL LETTER O */ 0x006f, /* LATIN CAPITAL LETTER O */ 0x004f],
28+
KeyO: [/* LATIN SMALL LETTER U */ 0x0075, /* LATIN CAPITAL LETTER U */ 0x0055],
29+
KeyP: [/* COMMA */ 0x002c, /* LESS-THAN SIGN */ 0x003c],
30+
BracketLeft: [/* LEFT SQUARE BRACKET */ 0x005b, /* LEFT CURLY BRACKET */ 0x007b],
31+
BracketRight: [/* RIGHT SQUARE BRACKET */ 0x005d, /* RIGHT CURLY BRACKET */ 0x007d],
32+
Backslash: [/* REVERSE SOLIDUS */ 0x005c, /* VERTICAL LINE */ 0x007c],
33+
KeyA: [/* LATIN SMALL LETTER N */ 0x006e, /* LATIN CAPITAL LETTER N */ 0x004e],
34+
KeyS: [/* LATIN SMALL LETTER R */ 0x0072, /* LATIN CAPITAL LETTER R */ 0x0052],
35+
KeyD: [/* LATIN SMALL LETTER T */ 0x0074, /* LATIN CAPITAL LETTER T */ 0x0054],
36+
KeyF: [/* LATIN SMALL LETTER S */ 0x0073, /* LATIN CAPITAL LETTER S */ 0x0053],
37+
KeyG: [/* LATIN SMALL LETTER G */ 0x0067, /* LATIN CAPITAL LETTER G */ 0x0047],
38+
KeyH: [/* LATIN SMALL LETTER P */ 0x0070, /* LATIN CAPITAL LETTER P */ 0x0050],
39+
KeyJ: [/* LATIN SMALL LETTER H */ 0x0068, /* LATIN CAPITAL LETTER H */ 0x0048],
40+
KeyK: [/* LATIN SMALL LETTER A */ 0x0061, /* LATIN CAPITAL LETTER A */ 0x0041],
41+
KeyL: [/* LATIN SMALL LETTER E */ 0x0065, /* LATIN CAPITAL LETTER E */ 0x0045],
42+
Semicolon: [/* LATIN SMALL LETTER I */ 0x0069, /* LATIN CAPITAL LETTER I */ 0x0049],
43+
Quote: [/* SOLIDUS */ 0x002f, /* QUESTION MARK */ 0x003f],
44+
KeyZ: [/* LATIN SMALL LETTER X */ 0x0078, /* LATIN CAPITAL LETTER X */ 0x0058],
45+
KeyX: [/* LATIN SMALL LETTER Q */ 0x0071, /* LATIN CAPITAL LETTER Q */ 0x0051],
46+
KeyC: [/* LATIN SMALL LETTER M */ 0x006d, /* LATIN CAPITAL LETTER M */ 0x004d],
47+
KeyV: [/* LATIN SMALL LETTER W */ 0x0077, /* LATIN CAPITAL LETTER W */ 0x0057],
48+
KeyB: [/* LATIN SMALL LETTER Z */ 0x007a, /* LATIN CAPITAL LETTER Z */ 0x005a],
49+
KeyN: [/* LATIN SMALL LETTER K */ 0x006b, /* LATIN CAPITAL LETTER K */ 0x004b],
50+
KeyM: [/* LATIN SMALL LETTER F */ 0x0066, /* LATIN CAPITAL LETTER F */ 0x0046],
51+
Comma: [/* APOSTROPHE */ 0x0027, /* QUOTATION MARK */ 0x0022],
52+
Period: [/* SEMICOLON */ 0x003b, /* COLON */ 0x003a],
53+
Slash: [/* FULL STOP */ 0x002e, /* GREATER-THAN SIGN */ 0x003e],
54+
Space: [/* SPACE */ 0x0020],
55+
};

packages/keybr-keyboard/lib/load.ts

+4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ import { LAYOUT_EN_COLEMAK_DH_MATRIX } from "./layout/en_colemak_dh_matrix.ts";
3535
import { LAYOUT_EN_DVORAK } from "./layout/en_dvorak.ts";
3636
import { LAYOUT_EN_DVORAK_PROG } from "./layout/en_dvorak_prog.ts";
3737
import { LAYOUT_EN_ENGRAM } from "./layout/en_engram.ts";
38+
import { LAYOUT_EN_GALLIUM } from "./layout/en_gallium.ts";
39+
import { LAYOUT_EN_GALLIUM_MATRIX } from "./layout/en_gallium_matrix.ts";
3840
import { LAYOUT_EN_GRAPHITE } from "./layout/en_graphite.ts";
3941
import { LAYOUT_EN_HALMAK } from "./layout/en_halmak.ts";
4042
import { LAYOUT_EN_HANDS_DOWN_NEU } from "./layout/en_hands_down_neu.ts";
@@ -108,6 +110,8 @@ const layouts = new Map<Layout, CharacterDict>([
108110
[Layout.EN_DVORAK, LAYOUT_EN_DVORAK],
109111
[Layout.EN_DVORAK_PROG, LAYOUT_EN_DVORAK_PROG],
110112
[Layout.EN_ENGRAM, LAYOUT_EN_ENGRAM],
113+
[Layout.EN_GALLIUM, LAYOUT_EN_GALLIUM],
114+
[Layout.EN_GALLIUM_MATRIX, LAYOUT_EN_GALLIUM_MATRIX],
111115
[Layout.EN_GRAPHITE, LAYOUT_EN_GRAPHITE],
112116
[Layout.EN_HALMAK, LAYOUT_EN_HALMAK],
113117
[Layout.EN_HANDS_DOWN_NEU, LAYOUT_EN_HANDS_DOWN_NEU],

0 commit comments

Comments
 (0)