Files
qmk-keymap-generator/index.ts

48 lines
2.4 KiB
TypeScript

/* eslint max-len: ["warn", 1000] */
/* eslint no-multi-spaces: 0 */
import { K, LT, MO, DF, RC, LS, RALT, LGUI } from './lib/keys';
import row from './lib/Row';
import layer, { ILayer } from './lib/Layer';
import keymap from './lib/keymap';
import { fKeys, numbers, letterRow1, letterRow2, letterRow3, KC_3, KC_4 } from './lib/groups';
const layer0: ILayer = layer(
row(K.ESC, ...fKeys, K.PSCR, K.SLCK, K.PAUS),
row(K.GRV, ...numbers, K.MINS, K.EQL, K.BSPC, K.INS, K.HOME, K.PGUP),
row(K.TAB, ...letterRow1, K.LBRC, K.RBRC, K.BSLS, K.DEL, K.END, K.PGDN),
row(LT(2, K.ESC), ...letterRow2, K.SCLN, K.QUOT, K.ENT),
row(K.LSFT, ...letterRow3, K.COMM, K.DOT, K.SLSH, K.RSFT, K.UP),
row(K.LCTL, K.LALT, K.LGUI, K.SPC, K.RGUI, MO(1), K.APP, K.RC, K.LEFT, K.DOWN, K.RGHT),
);
const layer1: ILayer = layer(
row(K.ESC, ...fKeys, K.PSCR, K.SLCK, K.PAUS),
row(K.GRV, ...fKeys, K.BSPC, K.INS, K.HOME, K.PGUP),
row(K.TAB, ...letterRow1, K.LBRC, K.RBRC, K.BSLS, K.DEL, K.END, K.PGDN).replace({ [K.W]: K.UP }),
row(LT(2, K.ESC), ...letterRow2, K.SCLN, K.QUOT, K.ENT).replace({ [K.A]: K.LEFT, [K.S]: K.DOWN, [K.D]: K.RGHT }),
row(K.LSFT, ...letterRow3, K.COMM, K.DOT, K.SLSH, K.RSFT, K.UP).replace({ [K.LSFT]: [K.LSFT, K.LSFT] }),
row(K.LCTL, K.LALT, K.LGUI, K.SPC, K.RGUI, MO(1), K.APP, K.RC, K.LEFT, K.DOWN, K.RGHT),
);
/* eslint-disable-line no-multi-spaces */
// prettier-ignore
const layer2: ILayer = layer(
row(K._, K._, K._, K._, K._, K._, K._, K._, K._, K._, K._, K._, K._, K.MUTE, K._, K._),
row(K._, K.BDWN, K.BUP, DF(0), DF(1), ...KC_3, K.MPT, K.MNT, K.MPP, K.VOLD, K.VOLU, K.BSLS, ...KC_3),
row(K._, RC(K.Q), RC(K.W), RC(K.E), RC(K.R), RC(K.T), RC(K.Y), K.PGUP, K.HOME, K.END, K.PGDN, LS(RC(K.TAB)), RC(K.TAB), ...KC_4),
row(K._, RC(K.A), RC(K.S), RC(K.D), RC(K.F), RC(K.G), K.LEFT, K.DOWN, K.UP, K.RGHT, RC(RALT(K.SCOLON)), RC(RALT(K.QUOTE)), LGUI(K.TAB)),
row(K.LSFT, RC(K.Z), RC(K.X), RC(K.C), RC(K.V), RC(K.B), RALT(K.BSPACE), K.BSPACE, K.DEL, RALT(K.DELETE), LGUI(K.F), K.RSFT, K.UP),
row(K.LCTL, K.LALT, K.LGUI, RC(RALT(K.ENT)), K.RGUI, MO(1), K.APP, K.RC, K.LEFT, K.DOWN, K.RGHT),
);
const tkl = keymap(layer0, layer1, layer2);
console.log(tkl[1]);
/*
console.log(!!layer0, layer1, !!layer2);
layer0.forEach((r, index) => console.log('L1: Row', index, r.length));
console.log();
layer1.forEach((r, index) => console.log('L2: Row', index, r.length));
console.log();
layer2.forEach((r, index) => console.log('L3: Row', index, r.length));
*/