#include QMK_KEYBOARD_H
enum layer_names {
BASE,
GREL,
GREU,
SYMB,
MATH,
QWER,
FNLR
};
enum unicode_names {
neq, intgrl, angl, imply, equiv, porp, exists, nexists, forall, and, or, xor, apeql, root, not, sum, plsminus, infin, emtyset, Mn, Mz, Mq, Mr, Mc, eleof, member, neleof, nmember, subsetof, suprsetof, intersection, Munion,
arwl,
arwu,
arwr,
arwd,
uxclm,
cent,
degree,
trade,
copy,
numero,
sect,
mdot,
rang,
lshade,
mshade,
dshade,
fire,
water,
cleft,
baster,
neteen,
floppy,
boxemp,
boxchk,
boxX,
bbstr,
bbstl,
bbml,
bbmr,
bbmb,
bbrtr,
bbrbr,
bbrtl,
bbrbl,
bbsbr,
bbsbl,
bbmbr,
bbmbl,
Agrave,
Aacute,
Acircm,
Atilde,
Abreve,
Adiaer,
Adacut,
OS,
Oa,
Ob,
Oc,
Od,
Oe,
Of,
Og,
Oh,
Oi,
OA,
OB,
OC,
OD,
OE,
OF,
Os,
OED,
Ox,
gnd,
sqr,
sine,
opt,
geq,
leq,
brkup,
brkdn,
perup,
perdn,
rone, rtwo,
rthree,
rfour, rfive, rsix, rseven, reight, rnine, rten, gq, gw, ge, gr, gt, gy, gu, gi, go, gp, ga, gs, gd, gf, gg, gh, gj, gk, gl, gz, gx, gc, gv, gb, gn, gm,
Rone, Rtwo, Rthree, Rfour, Rfive, Rsix, Rseven, Reight, Rnine, Rten,
Gq, Gw, Ge, Gr, Gt, Gy, Gu, Gi, Go, Gp, Ga, Gs, Gd, Gf, Gg, Gh, Gj, Gk, Gl, Gz, Gx, Gc, Gv, Gb, Gn, Gm, };
const uint32_t PROGMEM unicode_map[] = {
[neq] = 0x2260, [intgrl] = 0x222B, [angl] = 0x2220, [imply] = 0x21D2, [equiv] = 0x21D4, [porp] = 0x221D, [exists] = 0x2203, [nexists] = 0x2204, [forall] = 0x2200, [and] = 0x2227, [or] = 0x2228, [xor] = 0x2295, [apeql] = 0x2245, [root] = 0x221A, [not] = 0x00AC, [sum] = 0x2211, [plsminus] = 0x00B1, [infin] = 0x221E, [emtyset] = 0x2205, [Mn] = 0x2115, [Mz] = 0x2124, [Mq] = 0x211A, [Mr] = 0x211D, [Mc] = 0x2102, [eleof] = 0x2208, [member] = 0x220B, [neleof] = 0x2209, [nmember] = 0x220C, [subsetof] = 0x2282, [suprsetof] = 0x2283, [intersection] = 0x2229, [Munion] = 0x222A, [arwl] = 0x2190, [arwu] = 0x2191, [arwr] = 0x2192, [arwd] = 0x2193,
[uxclm] = 0x00A1, [cent] = 0x00A2, [degree] = 0x00B0, [trade] = 0x2122, [copy] = 0x00A9, [numero] = 0x2116, [sect] = 0x00A7, [mdot] = 0x00B7, [rang] = 0x299C,
[lshade] = 0x2591, [mshade] = 0x2592, [dshade] = 0x2593,
[fire] = 0x1F525, [water] = 0x1F322, [cleft] = 0x1F12F, [baster] = 0x1F7BC, [neteen] = 0x1F51E, [floppy] = 0x1F5AB,
[boxemp] = 0x2610, [boxchk] = 0x2611, [boxX] = 0x2612,
[bbstr] = 0x23A1, [bbstl] = 0x23A4, [bbml] = 0x23A8, [bbmr] = 0x23AC, [bbmb] = 0x23AA, [bbrtr] = 0x23A7, [bbrbr] = 0x23A9, [bbrtl] = 0x23AB, [bbrbl] = 0x23AD, [bbsbr] = 0x23A3, [bbsbl] = 0x23A6, [bbmbr] = 0x23A5, [bbmbl] = 0x23A2,
[Agrave] = 0x0300, [Aacute] = 0x0301, [Acircm] = 0x0302, [Atilde] = 0x0303, [Abreve] = 0x0306, [Adiaer] = 0x0308, [Adacut] = 0x030B,
[OS] = 0x1680, [Oa] = 0x1681, [Ob] = 0x1682, [Oc] = 0x1683, [Od] = 0x1684, [Oe] = 0x1685, [Of] = 0x1686, [Og] = 0x1687, [Oh] = 0x1688, [Oi] = 0x1689, [OA] = 0x168A, [OB] = 0x168B, [OC] = 0x168C, [OD] = 0x168D, [OE] = 0x168E, [OF] = 0x168F, [Os] = 0x169B, [OED] = 0x169C, [Ox] = 0x1695,
[gnd] = 0x23DA, [sqr] = 0x238D, [sine] = 0x223F, [opt] = 0x2325,
[geq] = 0x2264, [leq] = 0x2265, [brkup] = 0xFE38, [brkdn] = 0xFE37, [perup] = 0xFE35, [perdn] = 0xFE36, [rone] = 0x2170, [rtwo] = 0x2171, [rthree] = 0x2172, [rfour] = 0x2173, [rfive] = 0x2174, [rsix] = 0x2175, [rseven] = 0x2176, [reight] = 0x2177, [rnine] = 0x2178, [rten] = 0x2179, [gq] = 0x03B8, [gw] = 0x03C9, [ge] = 0x03B5, [gr] = 0x03C1, [gt] = 0x03C4, [gy] = 0x03C8, [gu] = 0x03C5, [gi] = 0x03B9, [go] = 0x03BF, [gp] = 0x03C0, [ga] = 0x03B1, [gs] = 0x03C3, [gd] = 0x03B4, [gf] = 0x03C6, [gg] = 0x03B3, [gh] = 0x03B7, [gj] = 0x03D1, [gk] = 0x03BA, [gl] = 0x03BB, [gz] = 0x03B6, [gx] = 0x03BE, [gc] = 0x03C7, [gv] = 0x03C2, [gb] = 0x03B2, [gn] = 0x03BD, [gm] = 0x03BC, [Rone] = 0x2160, [Rtwo] = 0x2161, [Rthree] = 0x2162, [Rfour] = 0x2163, [Rfive] = 0x2164, [Rsix] = 0x2165, [Rseven] = 0x2166, [Reight] = 0x2167, [Rnine] = 0x2168, [Rten] = 0x2169, [Gq] = 0x0398, [Gw] = 0x03A9, [Ge] = 0x0395, [Gr] = 0x03A1, [Gt] = 0x03A4, [Gy] = 0x03A8, [Gu] = 0x03A5, [Gi] = 0x0399, [Go] = 0x039F, [Gp] = 0x03A0, [Ga] = 0x0391, [Gs] = 0x03A3, [Gd] = 0x0394, [Gf] = 0x03A6, [Gg] = 0x0393, [Gh] = 0x0397, [Gj] = 0x004A, [Gk] = 0x039A, [Gl] = 0x039B, [Gz] = 0x0396, [Gx] = 0x039E, [Gc] = 0x03A7, [Gv] = 0x0056, [Gb] = 0x0392, [Gn] = 0x039D, [Gm] = 0x039C, };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_BSLS,
KC_EQL, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_AMPR,
OSL(FNLR), TT(GREL), TT(MATH), KC_UP, KC_DOWN,
KC_LBRC, KC_HOME, KC_INS, KC_SPC, KC_LGUI, KC_DEL,
OSL(FNLR), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_PGUP, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_PGDN, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC,
KC_LEFT, KC_RIGHT, KC_RALT, TT(SYMB), TT(QWER),
KC_END, KC_RBRC, KC_PSCR, KC_RALT, KC_RCTL, KC_ENT
),
[FNLR] = LAYOUT_ergodox(
UC_M_LN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,
UC_M_WC,KC_F11, KC_F12, KC_F13,KC_F14, KC_F15, KC_NO,
KC_NO,KC_F21, KC_F22, KC_F23,KC_F24, KC_NO,
KC_NO,KC_PAUSE,KC_PSCR,KC_SLCK,KC_NO,KC_NO,KC_NO,
EEP_RST,TO(BASE),TO(BASE),TO(BASE),TO(BASE),
KC_NO,KC_NO,
KC_NO,
KC_NO,KC_NO,KC_NO,
TO(BASE), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, UC_M_LN,
KC_NO, KC_F16, KC_F17,KC_F18, KC_F19, KC_F20, UC_M_WI,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO,KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO,
KC_NO,
KC_NO, KC_RCTL, KC_NO
),
[QWER] = LAYOUT_ergodox(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSLS,
KC_AMPR, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_QUOT,
KC_BSLS, KC_LCTL, KC_LGUI, KC_RALT, KC_APP,
KC_LBRC, KC_HOME, KC_PGUP, KC_SPC, KC_LSFT, KC_PGDN,
OSL(FNLR), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_MINS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SLSH,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_EQL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, TO(BASE),
KC_END, KC_INS, KC_DEL, KC_RGHT, KC_ENT, KC_SPC
),
[MATH] = LAYOUT_ergodox(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV,
KC_TAB, X(Mc), X(Munion), X(arwl), X(or), X(exists), KC_BSLASH,
X(arwr), X(root), X(and), X(imply), X(nexists), X(forall),
KC_LSPO, KC_SCLN, X(intgrl), X(Mn), X(Mz), X(member), X(arwl),
KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL,
KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN,
TT(FNLR), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_PGUP, X(plsminus), X(infin), X(neleof), X(equiv), X(Mq), KC_EQL,
X(sum), X(emtyset), X(porp), X(suprsetof), X(not), X(neq),
KC_PGDN, X(subsetof), X(intersection), X(angl), X(nmember), X(eleof), KC_RSPC,
KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE),
KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC
),
[SYMB] = LAYOUT_ergodox(
X(Os), X(Oa), X(Ob), X(Oc), X(Od), X(Oe), X(mdot),
X(boxemp), X(bbstr), X(bbrtr), X(bbrtl), X(bbstl), X(degree), X(brkdn),
X(boxchk), X(bbmbl), X(bbml), X(bbmr), X(bbmbr), X(neteen),
X(boxX), X(bbsbr), X(bbrbr), X(bbrbl), X(bbsbl), X(uxclm), X(brkup),
X(floppy), TO(BASE), TO(BASE), X(arwu), X(arwd),
X(fire), X(lshade), X(mshade), KC_SPC, X(OS), X(dshade),
X(Ox), X(Of), X(Og), X(Oh), X(Oi), X(OA), X(OB),
X(numero), X(trade), X(copy), X(cleft), X(cent), X(OED), X(OC),
X(Agrave), X(gnd), X(sqr), X(sine), X(opt), X(OD),
X(sect), X(Aacute), X(Acircm), X(Adiaer), X(Abreve), X(Atilde), X(OE),
X(arwl), X(arwr), X(geq), X(leq), X(OF),
X(rang), X(water), X(perup), X(perdn), X(baster), KC_ENT
),
[GREL] = LAYOUT_ergodox(
KC_ESC, X(Rone), X(Rtwo), X(Rthree), X(Rfour), X(Rfive), KC_GRV,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, X(gp), X(gy), KC_SLSH,
KC_SLSH, X(ga), X(go), X(ge), X(gu), X(gi),
MO(GREU), KC_SCLN, X(gq), X(gj), X(gk), X(gx), KC_AMPR,
KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL,
KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN,
TO(BASE), X(Rsix), X(Rseven), X(Reight), X(Rnine), X(Rten), KC_BSPC,
KC_PGUP, X(gf), X(gg), X(gc), X(gr), X(gl), KC_EQL,
X(gd), X(gh), X(gt), X(gn), X(gs), KC_MINS,
KC_PGDN, X(gb), X(gm), X(gw), X(gv), X(gz), MO(GREU),
KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE),
KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC
),
[GREU] = LAYOUT_ergodox(
KC_ESC, X(Rone), X(Rtwo), X(Rthree), X(Rfour), X(Rfive), KC_GRV,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, X(Gp), X(Gy), KC_SLSH,
KC_SLSH, X(Ga), X(Go), X(Ge), X(Gu), X(Gi),
KC_TRNS, KC_SCLN, X(Gq), X(Gj), X(Gk), X(Gx), KC_AMPR,
KC_MS_L, TO(BASE), TO(BASE), KC_INS, KC_DEL,
KC_LBRC, KC_HOME, KC_UP, KC_SPC, KC_LGUI, KC_DOWN,
TO(BASE), X(Rsix), X(Rseven), X(Reight), X(Rnine), X(Rten), KC_BSPC,
KC_PGUP, X(Gf), X(Gg), X(Gc), X(Gr), X(Gl), KC_EQL,
X(Gd), X(Gh), X(Gt), X(Gn), X(Gs), KC_MINS,
KC_PGDN, X(Gb), X(Gm), X(Gw), X(Gv), X(Gz), KC_TRNS,
KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE),
KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC
),
};
void matrix_init_user(void) {
};
void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
break;
}
};