diff --git a/input/Manoonchai.json b/input/Manoonchai.json index 584be25..32efee6 100644 --- a/input/Manoonchai.json +++ b/input/Manoonchai.json @@ -2,7 +2,7 @@ "name": "Manoonchai", "version": "1.0", "language": "Thai", - "layers": ["Base", "Shift", "AltGr", "ShiftAltGr"], + "layers": ["Base", "Shift", "Command", "AltGr", "Control", "ShiftAltGr"], "license": "MIT", "os": { "windows": { @@ -12,52 +12,52 @@ } }, "keys": { - "`": ["`", "~", "`", ""], - "1": ["1", "!", "๑", ""], - "2": ["2", "@", "๒", ""], - "3": ["3", "#", "๓", ""], - "4": ["4", "$", "๔", ""], - "5": ["5", "%", "๕", ""], - "6": ["6", "^", "๖", ""], - "7": ["7", "&", "๗", ""], - "8": ["8", "*", "๘", ""], - "9": ["9", "(", "๙", ""], - "0": ["0", ")", "๐", ""], - "-": ["-", "_", "÷", ""], - "=": ["=", "+", "×", ""], - "q": ["ใ", "ฒ", "", ""], - "w": ["ต", "ฏ", "", ""], - "e": ["ห", "ซ", "", ""], - "r": ["ล", "ญ", "", ""], - "t": ["ส", "ฟ", "", ""], - "y": ["ป", "ฉ", "", ""], - "u": ["ั", "ึ", "ฺ", ""], - "i": ["ก", "ธ", "", ""], - "o": ["ิ", "ฐ", "", ""], - "p": ["บ", "ฎ", "", ""], - "[": ["็", "ฆ", "[", "{"], - "]": ["ฬ", "ฑ", "]", "}"], - "\\": ["ฯ", "ฌ", "\\", "|"], - "a": ["ง", "ษ", "◌", ""], - "s": ["เ", "ถ", "๏", ""], - "d": ["ร", "แ", "๛", ""], - "f": ["น", "ช", "฿", ""], - "g": ["ม", "พ", "", ""], - "h": ["อ", "ผ", "ํ", ""], - "j": ["า", "ำ", "ๅ", ""], - "k": ["่", "ข", "ฃ", ""], - "l": ["้", "โ", "", ""], - ";": ["ว", "ภ", ";", ":"], - "'": ["ื", "\"", "'", "\""], - "z": ["ุ", "ฤ", "ฦ", ""], - "x": ["ไ", "ฝ", "", ""], - "c": ["ท", "ๆ", "๚", ""], - "v": ["ย", "ณ", "", ""], - "b": ["จ", "๊", "", ""], - "n": ["ค", "๋", "ฅ", ""], - "m": ["ี", "์", "๎", ""], - ",": ["ด", "ศ", ",", "<"], - ".": ["ะ", "ฮ", ".", ">"], - "/": ["ู", "?", "/", "?"] + "`": ["`", "~", "`", "`", "`", ""], + "1": ["1", "!", "1", "๑", "1", ""], + "2": ["2", "@", "2", "๒", "2", ""], + "3": ["3", "#", "3", "๓", "3", ""], + "4": ["4", "$", "4", "๔", "4", ""], + "5": ["5", "%", "5", "๕", "5", ""], + "6": ["6", "^", "6", "๖", "6", ""], + "7": ["7", "&", "7", "๗", "7", ""], + "8": ["8", "*", "8", "๘", "8", ""], + "9": ["9", "(", "9", "๙", "9", ""], + "0": ["0", ")", "0", "๐", "0", ""], + "-": ["-", "_", "-", "÷", "-", ""], + "=": ["=", "+", "=", "×", "=", ""], + "q": ["ใ", "ฒ", "q", "", "q", ""], + "w": ["ต", "ฏ", "w", "", "w", ""], + "e": ["ห", "ซ", "e", "", "e", ""], + "r": ["ล", "ญ", "r", "", "r", ""], + "t": ["ส", "ฟ", "t", "", "t", ""], + "y": ["ป", "ฉ", "y", "", "y", ""], + "u": ["ั", "ึ", "u", "ฺ", "u", ""], + "i": ["ก", "ธ", "i", "", "i", ""], + "o": ["ิ", "ฐ", "o", "", "o", ""], + "p": ["บ", "ฎ", "p", "", "p", ""], + "[": ["็", "ฆ", "[", "[", "[", "{"], + "]": ["ฬ", "ฑ", "]", "]", "]", "}"], + "\\": ["ฯ", "ฌ", "\\", "\\", "\\", "|"], + "a": ["ง", "ษ", "a", "◌", "a", ""], + "s": ["เ", "ถ", "s", "๏", "s", ""], + "d": ["ร", "แ", "d", "๛", "d", ""], + "f": ["น", "ช", "f", "฿", "f", ""], + "g": ["ม", "พ", "g", "", "g", ""], + "h": ["อ", "ผ", "h", "ํ", "h", ""], + "j": ["า", "ำ", "j", "ๅ", "j", ""], + "k": ["่", "ข", "k", "ฃ", "k", ""], + "l": ["้", "โ", "l", "", "l", ""], + ";": ["ว", "ภ", ";", ";", ";", ":"], + "'": ["ื", "\"", "'", "'", "'", "\""], + "z": ["ุ", "ฤ", "z", "ฦ", "z", ""], + "x": ["ไ", "ฝ", "x", "", "x", ""], + "c": ["ท", "ๆ", "c", "๚", "c", ""], + "v": ["ย", "ณ", "v", "", "v", ""], + "b": ["จ", "๊", "b", "", "b", ""], + "n": ["ค", "๋", "n", "ฅ", "n", ""], + "m": ["ี", "์", "m", "๎", "m", ""], + ",": ["ด", "ศ", ",", ",", ",", "<"], + ".": ["ะ", "ฮ", ".", ".", ".", ">"], + "/": ["ู", "?", "/", "/", "/", "?"] } } diff --git a/output/Manoonchai.keylayout b/output/Manoonchai.keylayout index 38b685b..cf32647 100644 --- a/output/Manoonchai.keylayout +++ b/output/Manoonchai.keylayout @@ -12,9 +12,15 @@ - + + + + + + + @@ -238,6 +244,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -346,7 +461,116 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/output/Manoonchai.klc b/output/Manoonchai.klc index 95e43bc..51166bf 100644 Binary files a/output/Manoonchai.klc and b/output/Manoonchai.klc differ diff --git a/output/Manoonchai_xkb b/output/Manoonchai_xkb index c73deee..4d795f8 100644 --- a/output/Manoonchai_xkb +++ b/output/Manoonchai_xkb @@ -6,53 +6,53 @@ xkb_symbols "ThaiMnc" { name[Group1]= "Manoonchai v1.0"; - key { [ 0x1000030, 0x1000029, 0x1000e50, voidsymbol ] }; - key { [ 0x1000031, 0x1000021, 0x1000e51, voidsymbol ] }; - key { [ 0x1000032, 0x1000040, 0x1000e52, voidsymbol ] }; - key { [ 0x1000033, 0x1000023, 0x1000e53, voidsymbol ] }; - key { [ 0x1000034, 0x1000024, 0x1000e54, voidsymbol ] }; - key { [ 0x1000035, 0x1000025, 0x1000e55, voidsymbol ] }; - key { [ 0x1000036, 0x100005e, 0x1000e56, voidsymbol ] }; - key { [ 0x1000037, 0x1000026, 0x1000e57, voidsymbol ] }; - key { [ 0x1000038, 0x100002a, 0x1000e58, voidsymbol ] }; - key { [ 0x1000039, 0x1000028, 0x1000e59, voidsymbol ] }; - key { [ 0x100002d, 0x100005f, 0x10000f7, voidsymbol ] }; - key { [ 0x100003d, 0x100002b, 0x10000d7, voidsymbol ] }; - key { [ 0x1000060, 0x100007e, 0x1000060, voidsymbol ] }; - key { [ 0x1000e43, 0x1000e12, voidsymbol, voidsymbol ] }; - key { [ 0x1000e15, 0x1000e0f, voidsymbol, voidsymbol ] }; - key { [ 0x1000e2b, 0x1000e0b, voidsymbol, voidsymbol ] }; - key { [ 0x1000e25, 0x1000e0d, voidsymbol, voidsymbol ] }; - key { [ 0x1000e2a, 0x1000e1f, voidsymbol, voidsymbol ] }; - key { [ 0x1000e1b, 0x1000e09, voidsymbol, voidsymbol ] }; - key { [ 0x1000e31, 0x1000e36, 0x1000e3a, voidsymbol ] }; - key { [ 0x1000e01, 0x1000e18, voidsymbol, voidsymbol ] }; - key { [ 0x1000e34, 0x1000e10, voidsymbol, voidsymbol ] }; - key { [ 0x1000e1a, 0x1000e0e, voidsymbol, voidsymbol ] }; - key { [ 0x1000e47, 0x1000e06, 0x100005b, 0x100007b ] }; - key { [ 0x1000e2c, 0x1000e11, 0x100005d, 0x100007d ] }; - key { [ 0x1000e07, 0x1000e29, 0x10025cc, voidsymbol ] }; - key { [ 0x1000e40, 0x1000e16, 0x1000e4f, voidsymbol ] }; - key { [ 0x1000e23, 0x1000e41, 0x1000e5b, voidsymbol ] }; - key { [ 0x1000e19, 0x1000e0a, 0x1000e3f, voidsymbol ] }; - key { [ 0x1000e21, 0x1000e1e, voidsymbol, voidsymbol ] }; - key { [ 0x1000e2d, 0x1000e1c, 0x1000e4d, voidsymbol ] }; - key { [ 0x1000e32, 0x1000e33, 0x1000e45, voidsymbol ] }; - key { [ 0x1000e48, 0x1000e02, 0x1000e03, voidsymbol ] }; - key { [ 0x1000e49, 0x1000e42, voidsymbol, voidsymbol ] }; - key { [ 0x1000e27, 0x1000e20, 0x100003b, 0x100003a ] }; - key { [ 0x1000e37, 0x1000022, 0x1000027, 0x1000022 ] }; - key { [ 0x1000e2f, 0x1000e0c, 0x100005c, 0x100007c ] }; - key { [ 0x1000e38, 0x1000e24, 0x1000e26, voidsymbol ] }; - key { [ 0x1000e44, 0x1000e1d, voidsymbol, voidsymbol ] }; - key { [ 0x1000e17, 0x1000e46, 0x1000e5a, voidsymbol ] }; - key { [ 0x1000e22, 0x1000e13, voidsymbol, voidsymbol ] }; - key { [ 0x1000e08, 0x1000e4a, voidsymbol, voidsymbol ] }; - key { [ 0x1000e04, 0x1000e4b, 0x1000e05, voidsymbol ] }; - key { [ 0x1000e35, 0x1000e4c, 0x1000e4e, voidsymbol ] }; - key { [ 0x1000e14, 0x1000e28, 0x100002c, 0x100003c ] }; - key { [ 0x1000e30, 0x1000e2e, 0x100002e, 0x100003e ] }; - key { [ 0x1000e39, 0x100003f, 0x100002f, 0x100003f ] }; + key { [ 0x1000030, 0x1000029, 0x1000030, 0x1000e50 0x1000030 voidsymbol ] }; + key { [ 0x1000031, 0x1000021, 0x1000031, 0x1000e51 0x1000031 voidsymbol ] }; + key { [ 0x1000032, 0x1000040, 0x1000032, 0x1000e52 0x1000032 voidsymbol ] }; + key { [ 0x1000033, 0x1000023, 0x1000033, 0x1000e53 0x1000033 voidsymbol ] }; + key { [ 0x1000034, 0x1000024, 0x1000034, 0x1000e54 0x1000034 voidsymbol ] }; + key { [ 0x1000035, 0x1000025, 0x1000035, 0x1000e55 0x1000035 voidsymbol ] }; + key { [ 0x1000036, 0x100005e, 0x1000036, 0x1000e56 0x1000036 voidsymbol ] }; + key { [ 0x1000037, 0x1000026, 0x1000037, 0x1000e57 0x1000037 voidsymbol ] }; + key { [ 0x1000038, 0x100002a, 0x1000038, 0x1000e58 0x1000038 voidsymbol ] }; + key { [ 0x1000039, 0x1000028, 0x1000039, 0x1000e59 0x1000039 voidsymbol ] }; + key { [ 0x100002d, 0x100005f, 0x100002d, 0x10000f7 0x100002d voidsymbol ] }; + key { [ 0x100003d, 0x100002b, 0x100003d, 0x10000d7 0x100003d voidsymbol ] }; + key { [ 0x1000060, 0x100007e, 0x1000060, 0x1000060 0x1000060 voidsymbol ] }; + key { [ 0x1000e43, 0x1000e12, 0x1000071, voidsymbol 0x1000071 voidsymbol ] }; + key { [ 0x1000e15, 0x1000e0f, 0x1000077, voidsymbol 0x1000077 voidsymbol ] }; + key { [ 0x1000e2b, 0x1000e0b, 0x1000065, voidsymbol 0x1000065 voidsymbol ] }; + key { [ 0x1000e25, 0x1000e0d, 0x1000072, voidsymbol 0x1000072 voidsymbol ] }; + key { [ 0x1000e2a, 0x1000e1f, 0x1000074, voidsymbol 0x1000074 voidsymbol ] }; + key { [ 0x1000e1b, 0x1000e09, 0x1000079, voidsymbol 0x1000079 voidsymbol ] }; + key { [ 0x1000e31, 0x1000e36, 0x1000075, 0x1000e3a 0x1000075 voidsymbol ] }; + key { [ 0x1000e01, 0x1000e18, 0x1000069, voidsymbol 0x1000069 voidsymbol ] }; + key { [ 0x1000e34, 0x1000e10, 0x100006f, voidsymbol 0x100006f voidsymbol ] }; + key { [ 0x1000e1a, 0x1000e0e, 0x1000070, voidsymbol 0x1000070 voidsymbol ] }; + key { [ 0x1000e47, 0x1000e06, 0x100005b, 0x100005b 0x100005b 0x100007b ] }; + key { [ 0x1000e2c, 0x1000e11, 0x100005d, 0x100005d 0x100005d 0x100007d ] }; + key { [ 0x1000e07, 0x1000e29, 0x1000061, 0x10025cc 0x1000061 voidsymbol ] }; + key { [ 0x1000e40, 0x1000e16, 0x1000073, 0x1000e4f 0x1000073 voidsymbol ] }; + key { [ 0x1000e23, 0x1000e41, 0x1000064, 0x1000e5b 0x1000064 voidsymbol ] }; + key { [ 0x1000e19, 0x1000e0a, 0x1000066, 0x1000e3f 0x1000066 voidsymbol ] }; + key { [ 0x1000e21, 0x1000e1e, 0x1000067, voidsymbol 0x1000067 voidsymbol ] }; + key { [ 0x1000e2d, 0x1000e1c, 0x1000068, 0x1000e4d 0x1000068 voidsymbol ] }; + key { [ 0x1000e32, 0x1000e33, 0x100006a, 0x1000e45 0x100006a voidsymbol ] }; + key { [ 0x1000e48, 0x1000e02, 0x100006b, 0x1000e03 0x100006b voidsymbol ] }; + key { [ 0x1000e49, 0x1000e42, 0x100006c, voidsymbol 0x100006c voidsymbol ] }; + key { [ 0x1000e27, 0x1000e20, 0x100003b, 0x100003b 0x100003b 0x100003a ] }; + key { [ 0x1000e37, 0x1000022, 0x1000027, 0x1000027 0x1000027 0x1000022 ] }; + key { [ 0x1000e2f, 0x1000e0c, 0x100005c, 0x100005c 0x100005c 0x100007c ] }; + key { [ 0x1000e38, 0x1000e24, 0x100007a, 0x1000e26 0x100007a voidsymbol ] }; + key { [ 0x1000e44, 0x1000e1d, 0x1000078, voidsymbol 0x1000078 voidsymbol ] }; + key { [ 0x1000e17, 0x1000e46, 0x1000063, 0x1000e5a 0x1000063 voidsymbol ] }; + key { [ 0x1000e22, 0x1000e13, 0x1000076, voidsymbol 0x1000076 voidsymbol ] }; + key { [ 0x1000e08, 0x1000e4a, 0x1000062, voidsymbol 0x1000062 voidsymbol ] }; + key { [ 0x1000e04, 0x1000e4b, 0x100006e, 0x1000e05 0x100006e voidsymbol ] }; + key { [ 0x1000e35, 0x1000e4c, 0x100006d, 0x1000e4e 0x100006d voidsymbol ] }; + key { [ 0x1000e14, 0x1000e28, 0x100002c, 0x100002c 0x100002c 0x100003c ] }; + key { [ 0x1000e30, 0x1000e2e, 0x100002e, 0x100002e 0x100002e 0x100003e ] }; + key { [ 0x1000e39, 0x100003f, 0x100002f, 0x100002f 0x100002f 0x100003f ] }; include "level3(ralt_switch)" }; \ No newline at end of file diff --git a/output/test.klc b/output/test.klc index 95e43bc..51166bf 100644 Binary files a/output/test.klc and b/output/test.klc differ diff --git a/test/main.test.ts b/test/main.test.ts index eda6ae7..8ca198c 100644 --- a/test/main.test.ts +++ b/test/main.test.ts @@ -466,14 +466,14 @@ describe("generateKlc", () => { expect(lines[6]).toEqual(`SHIFTSTATE`) expect(lines[7]).toEqual(`0\t// Column 4 : Base`) expect(lines[8]).toEqual(`1\t// Column 5 : Shift`) - expect(lines[9]).toEqual(`6\t// Column 6 : AltGr`) + expect(lines[9]).toEqual(`6\t// Column 7 : AltGr`) // Assert Layout const layoutLineIdx = lines.indexOf(`LAYOUT`) expect(lines[layoutLineIdx]).toEqual(`LAYOUT`) - expect(lines[layoutLineIdx + 1]).toEqual(`0b\t0\t0\t0\t)\t๐\t-1`) - expect(lines[layoutLineIdx + 2]).toEqual(`02\t1\t0\t1\t!\t๑\t-1`) + expect(lines[layoutLineIdx + 1]).toEqual(`0b\t0\t0\t0\t)\t๐\t0\t-1\t-1`) + expect(lines[layoutLineIdx + 2]).toEqual(`02\t1\t0\t1\t!\t๑\t1\t-1\t-1`) // Assert ENDKBD expect(lines.slice(-1)).toEqual(["ENDKBD"])