From 908acf7306e13c6750de275c7e03a2e62082c77f Mon Sep 17 00:00:00 2001 From: Manassarn Manoonchai Date: Thu, 8 Jul 2021 01:03:34 +0700 Subject: [PATCH] fix: Exclude layer 4 since KLC does not support it --- generateKlc.ts | 24 +++++++++++++++++++----- output/Manoonchai-ColemakDH-Mod.klc | Bin 2396 -> 2256 bytes output/Manoonchai.klc | Bin 1686 -> 1690 bytes 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/generateKlc.ts b/generateKlc.ts index 66ca2f0..4826291 100644 --- a/generateKlc.ts +++ b/generateKlc.ts @@ -31,12 +31,12 @@ export async function generateKlc( Shift: 1, Ctrl: 2, "Shift+Ctrl": 3, - Alt: 4, + Alt: 4, // Layer number 4 is not supported in KLC "Shift+Alt": 5, "Alt+Ctrl": 6, "Shift+Alt+Ctrl": 7, // From macOS config - Command: 4, + Command: 4, // Layer number 4 is not supported in KLC AltGr: 7, Option: 7, Control: 2, @@ -101,9 +101,23 @@ export async function generateKlc( `VERSION\t${layout.version}`, ] - const shiftStateLines: Array = layout.layers.map((layer, idx) => { + const shiftStateLines: Array = [] + + layout.layers.forEach((layer, idx) => { if (layer in klcShiftStates) { - return `${klcShiftStates[layer]}\t// Column ${idx + 4} : ${layer}` + // Filter out layer 4 (Command) + if (klcShiftStates[layer] === 4) { + layout.keys = Object.fromEntries( + Object.entries(layout.keys).map(([key, keys]) => { + keys.splice(idx, 1) + return [key, keys] + }) + ) + } else { + shiftStateLines.push( + `${klcShiftStates[layer]}\t// Column ${idx + 4} : ${layer}` + ) + } } else { throw new Error("Layer not valid") } @@ -125,7 +139,7 @@ export async function generateKlc( lines.join("\r\n\r\n"), shiftStateLines.join("\r\n"), layoutLines.join("\r\n"), - "ENDKBD", + "ENDKBD\r\n", ].join("\r\n\r\n"), { encoding: "utf16le", diff --git a/output/Manoonchai-ColemakDH-Mod.klc b/output/Manoonchai-ColemakDH-Mod.klc index 4a93fcb1bdd923cea83bc4d84472bb34431cb76f..4718474fc7614c6421adcf0ad1fc074766f365ab 100644 GIT binary patch delta 220 zcmWm6uL{Co9EIU;oBQL?pvhqRf?+|%@Crl?3I;KlynqFx7`y_5h(9ri!AlUsqG5Oe z%VIJNuVVNvJco12`82b}{a{FHoMd5Y+2V#5eyCYmLd>zj)rusuLNO~^Iv8VxBNDt( zK-*eIi0wemNa;CzM@ttotZ~5;UpQ_c5ti5?arr|5?eT{gdpx{Ia<3=tYS5}HUzLVx Lss?JJ`eeEP9t%H= delta 338 zcmW;Ay)Q#?7{&4DaozSJB9)X$BKZv+uD80qr9>p?By0vL;Zo|Yz4iW*7{nkV63v-R z1~FM|29rTd605`}A|`);#fhAJKf`&Ay*J)nsHRZS=6G6KrH>6uC`B%ilH_rwm)ZqW zWi*K_?M8umIHf7vQXelgjUU>Bm}RsV9?f9F^0XZ%R#FFW&u1NPbQiyL5iQk5%NV3{ z2Bm~?#Yz`5f#bxOU| N{+E?;8Ie&LqJIZrQ`!Ik diff --git a/output/Manoonchai.klc b/output/Manoonchai.klc index 7a0a642f8d5cde1eb5a354730d0035df3726fc71..311bb49db70d811bf4eb8a51c4a1cff0d9fac1c8 100644 GIT binary patch delta 12 TcmbQnJBxS2G&UAq1}+8w7&Zd3 delta 7 OcmbQmJB@e4G&TSV?*f+q