forked from forks/qmk_firmware
829 lines
24 KiB
C
829 lines
24 KiB
C
// Copyright 2021 Vega Carlson (@VegaDeftwing)
|
||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||
|
||
#include QMK_KEYBOARD_H
|
||
|
||
enum layer_names { BASE, GREL, GREU, SYMB, MATH, QWER, FNLR, TINY, FULL, FULU };
|
||
|
||
enum unicode_names {
|
||
// MATH
|
||
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, //∪
|
||
|
||
// SYMB
|
||
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,
|
||
|
||
// not all ogham letters, as I
|
||
// actually intend to use them for hex
|
||
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,
|
||
|
||
// GREEL
|
||
rone, // 1:: ⅰ
|
||
rtwo,
|
||
rthree,
|
||
rfour, // 4:: ⅳ
|
||
rfive, // 5:: ⅴ
|
||
rsix, // 6:: ⅵ
|
||
rseven, // 7:: ⅶ
|
||
reight, // 8:: ⅷ
|
||
rnine, // 9:: ⅸ
|
||
rten, // 0:: ⅹ
|
||
gq, // q:: θ
|
||
gw, // w:: ω
|
||
ge, // e:: ε
|
||
gr, // r:: ρ
|
||
gt, // t:: τ
|
||
gy, // y:: ψ
|
||
gu, // u:: υ
|
||
gi, // i:: ι
|
||
go, // o:: ο
|
||
gp, // p:: π
|
||
ga, // a:: α
|
||
gs, // s:: σ
|
||
gd, // d:: δ
|
||
gf, // f:: φ
|
||
gg, // g:: γ
|
||
gh, // h:: η
|
||
gj, // j:: ϑ
|
||
gk, // k:: κ
|
||
gl, // l:: λ
|
||
gz, // z:: ζ
|
||
gx, // x:: ξ
|
||
gc, // c:: χ
|
||
gv, // v:: ς
|
||
gb, // b:: β
|
||
gn, // n:: ν
|
||
gm, // m:: μ
|
||
|
||
// GREEU
|
||
Rone, // 1:: Ⅰ
|
||
Rtwo, // 2:: Ⅱ
|
||
Rthree, // 3:: Ⅲ
|
||
Rfour, // 4:: Ⅳ
|
||
Rfive, // 5:: Ⅴ
|
||
Rsix, // 6:: Ⅵ
|
||
Rseven, // 7:: Ⅶ
|
||
Reight, // 8:: Ⅷ
|
||
Rnine, // 9:: Ⅸ
|
||
Rten,
|
||
Gq, // Q:: Θ
|
||
Gw, // W:: Ω
|
||
Ge, // E:: Ε
|
||
Gr, // R:: Ρ
|
||
Gt, // T:: Τ
|
||
Gy, // Y:: Ψ
|
||
Gu, // U:: Υ
|
||
Gi, // I:: Ι
|
||
Go, // O:: Ο
|
||
Gp, // P:: Π
|
||
Ga, // A:: Α
|
||
Gs, // S:: Σ
|
||
Gd, // D:: Δ
|
||
Gf, // F:: Φ
|
||
Gg, // G:: Γ
|
||
Gh, // H:: Η
|
||
Gj, // J:: J
|
||
Gk, // K:: Κ
|
||
Gl, // L:: Λ
|
||
Gz, // Z:: Ζ
|
||
Gx, // X:: Ξ
|
||
Gc, // C:: Χ
|
||
Gv, // V:: V
|
||
Gb, // B:: Β
|
||
Gn, // N:: Ν
|
||
Gm, // M:: Μ
|
||
// ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹
|
||
tone, // 1:: ¹
|
||
ttwo, // 2:: ²
|
||
tthree, // 3:: ³
|
||
tfour, // 4:: ⁴
|
||
tfive, // 5:: ⁵
|
||
tsix, // 6:: ⁶
|
||
tseven, // 7:: ⁷
|
||
teight, // 8:: ⁸
|
||
tnine, // 9:: ⁹
|
||
tzero, // 0 :: ⁰
|
||
tq, // Q:: ۹
|
||
tw, // W:: ʷ
|
||
te, // E:: ᵉ
|
||
tr, // R:: ʳ
|
||
tt, // T:: ᵗ
|
||
ty, // Y:: ʸ
|
||
tu, // U:: ᵘ
|
||
ti, // I:: ⁱ
|
||
to, // O:: ᵒ
|
||
tp, // P:: ᵖ
|
||
ta, // A:: ᵃ
|
||
ts, // S:: ˢ
|
||
td, // D:: ᵈ
|
||
tf, // F:: ᶠ
|
||
tg, // G:: ᵍ
|
||
th, // H:: ʰ
|
||
tj, // J:: ʲ
|
||
tk, // K:: ᵏ
|
||
tl, // L:: ˡ
|
||
tz, // Z:: ᶻ
|
||
tx, // X:: ˣ
|
||
tc, // C:: ᶜ
|
||
tv, // V:: ᵛ
|
||
tb, // B:: ᵇ
|
||
tn, // N:: ⁿ
|
||
tm, // M:: ᵐ
|
||
// Fullwitdth - note, these are *not* the monospace unicode code points.
|
||
// This is done to prevent something eating it and using a weird font, which,
|
||
// presumably, isn't desired if doing this.
|
||
fwone, // 1:: 1
|
||
fwtwo, // 2:: 2
|
||
fwthree, // 3:: 3
|
||
fwfour, // 4:: 4
|
||
fwfive, // 5:: 5
|
||
fwsix, // 6:: 6
|
||
fwseven, // 7:: 7
|
||
fweight, // 8:: 8
|
||
fwnine, // 9:: 9
|
||
fwzero, // 0 :: 0
|
||
fwq, // Q:: q
|
||
fww, // W:: w
|
||
fwe, // E:: e
|
||
fwr, // R:: r
|
||
fwt, // T:: t
|
||
fwy, // Y:: y
|
||
fwu, // U:: u
|
||
fwi, // I:: i
|
||
fwo, // O:: o
|
||
fwp, // P:: p
|
||
fwa, // A:: a
|
||
fws, // S:: s
|
||
fwd, // D:: d
|
||
fwf, // F:: f
|
||
fwg, // G:: g
|
||
fwh, // H:: h
|
||
fwj, // J:: j
|
||
fwk, // K:: k
|
||
fwl, // L:: l
|
||
fwz, // Z:: z
|
||
fwx, // X:: x
|
||
fwc, // C:: c
|
||
fwv, // V:: v
|
||
fwb, // B:: b
|
||
fwn, // N:: n
|
||
fwm, // M:: m
|
||
// Full width caps + fractions, and a few extra symbols that lack a better place
|
||
Fwone, // 1:: ¼
|
||
Fwtwo, // 2:: ½
|
||
Fwthree, // 3:: ¾
|
||
Fwfour, // 4:: ⅓
|
||
Fwfive, // 5:: ⅔
|
||
Fwsix, // 6:: ⅕
|
||
Fwseven, // 7:: ⅛
|
||
Fweight, // 8:: 𝒳
|
||
Fwnine, // 9:: 𝒴
|
||
Fwzero, // 0 :: 𝒵
|
||
Fwq, // Q:: Q
|
||
Fww, // W:: W
|
||
Fwe, // E:: E
|
||
Fwr, // R:: R
|
||
Fwt, // T:: T
|
||
Fwy, // Y:: Y
|
||
Fwu, // U:: U
|
||
Fwi, // I:: I
|
||
Fwo, // O:: O
|
||
Fwp, // P:: P
|
||
Fwa, // A:: A
|
||
Fws, // S:: S
|
||
Fwd, // D:: D
|
||
Fwf, // F:: F
|
||
Fwg, // G:: G
|
||
Fwh, // H:: H
|
||
Fwj, // J:: J
|
||
Fwk, // K:: K
|
||
Fwl, // L:: L
|
||
Fwz, // Z:: Z
|
||
Fwx, // X:: X
|
||
Fwc, // C:: C
|
||
Fwv, // V:: V
|
||
Fwb, // B:: B
|
||
Fwn, // N:: N
|
||
Fwm, // M:: M
|
||
nbsp, // You know what this is
|
||
ibang, //‽
|
||
nullpic, // Null picture - ␀
|
||
};
|
||
|
||
const uint32_t unicode_map[] PROGMEM = {
|
||
// MATH
|
||
[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, //∪
|
||
// Symbol
|
||
[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, // è //above [wtf] = 0x1242A, //𒐪
|
||
[Aacute] = 0x0301, // é //1st
|
||
[Acircm] = 0x0302, // ê //2nd
|
||
[Atilde] = 0x0303, // ẽ //5th
|
||
[Abreve] = 0x0306, // ĕ //4th
|
||
[Adiaer] = 0x0308, // ë //3rd
|
||
[Adacut] = 0x030B, // e̋
|
||
|
||
// not all ogham letters, as I
|
||
// actually intend to use them for hex
|
||
[OS] = 0x1680, // space
|
||
[Oa] = 0x1681, // 1
|
||
[Ob] = 0x1682, // 2
|
||
[Oc] = 0x1683, // 3
|
||
[Od] = 0x1684, // 4
|
||
[Oe] = 0x1685, // 5
|
||
[Of] = 0x1686, // 6
|
||
[Og] = 0x1687, // 7
|
||
[Oh] = 0x1688, // 8
|
||
[Oi] = 0x1689, // 9
|
||
[OA] = 0x168A, // A
|
||
[OB] = 0x168B, // B
|
||
[OC] = 0x168C, // C
|
||
[OD] = 0x168D, // D
|
||
[OE] = 0x168E, // E
|
||
[OF] = 0x168F, // F
|
||
[Os] = 0x169B, // Start
|
||
[OED] = 0x169C, // End
|
||
[Ox] = 0x1695, // X
|
||
|
||
[gnd] = 0x23DA, //⏚
|
||
[sqr] = 0x238D, //⎍, actually monostable
|
||
[sine] = 0x223F, //∿
|
||
[opt] = 0x2325, //⌥, actually option used for switch
|
||
|
||
[geq] = 0x2264, //≤
|
||
[leq] = 0x2265, //≥
|
||
[brkup] = 0xFE38, //︸
|
||
[brkdn] = 0xFE37, //︷
|
||
[perup] = 0xFE35, //︵
|
||
[perdn] = 0xFE36, //︶
|
||
// GREEKL
|
||
[rone] = 0x2170, // 1:: ⅰ
|
||
[rtwo] = 0x2171, // 2:: ⅱ
|
||
[rthree] = 0x2172, // 3:: ⅲ
|
||
[rfour] = 0x2173, // 4:: ⅳ
|
||
[rfive] = 0x2174, // 5:: ⅴ
|
||
[rsix] = 0x2175, // 6:: ⅵ
|
||
[rseven] = 0x2176, // 7:: ⅶ
|
||
[reight] = 0x2177, // 8:: ⅷ
|
||
[rnine] = 0x2178, // 9:: ⅸ
|
||
[rten] = 0x2179, // 0:: ⅹ
|
||
[gq] = 0x03B8, // q:: θ
|
||
[gw] = 0x03C9, // w:: ω
|
||
[ge] = 0x03B5, // e:: ε
|
||
[gr] = 0x03C1, // r:: ρ
|
||
[gt] = 0x03C4, // t:: τ
|
||
[gy] = 0x03C8, // y:: ψ
|
||
[gu] = 0x03C5, // u:: υ
|
||
[gi] = 0x03B9, // i:: ι
|
||
[go] = 0x03BF, // o:: ο
|
||
[gp] = 0x03C0, // p:: π
|
||
[ga] = 0x03B1, // a:: α
|
||
[gs] = 0x03C3, // s:: σ
|
||
[gd] = 0x03B4, // d:: δ
|
||
[gf] = 0x03C6, // f:: φ
|
||
[gg] = 0x03B3, // g:: γ
|
||
[gh] = 0x03B7, // h:: η
|
||
[gj] = 0x03D1, // j:: ϑ
|
||
[gk] = 0x03BA, // k:: κ
|
||
[gl] = 0x03BB, // l:: λ
|
||
[gz] = 0x03B6, // z:: ζ
|
||
[gx] = 0x03BE, // x:: ξ
|
||
[gc] = 0x03C7, // c:: χ
|
||
[gv] = 0x03C2, // v:: ς
|
||
[gb] = 0x03B2, // b:: β
|
||
[gn] = 0x03BD, // n:: ν
|
||
[gm] = 0x03BC, // m:: μ
|
||
// GREEKU
|
||
[Rone] = 0x2160, // 1:: Ⅰ
|
||
[Rtwo] = 0x2161, // 2:: Ⅱ
|
||
[Rthree] = 0x2162, // 3:: Ⅲ
|
||
[Rfour] = 0x2163, // 4:: Ⅳ
|
||
[Rfive] = 0x2164, // 5:: Ⅴ
|
||
[Rsix] = 0x2165, // 6:: Ⅵ
|
||
[Rseven] = 0x2166, // 7:: Ⅶ
|
||
[Reight] = 0x2167, // 8:: Ⅷ
|
||
[Rnine] = 0x2168, // 9:: Ⅸ
|
||
[Rten] = 0x2169, // 0:: Ⅹ
|
||
[Gq] = 0x0398, // Q:: Θ
|
||
[Gw] = 0x03A9, // W:: Ω
|
||
[Ge] = 0x0395, // E:: Ε
|
||
[Gr] = 0x03A1, // R:: Ρ
|
||
[Gt] = 0x03A4, // T:: Τ
|
||
[Gy] = 0x03A8, // Y:: Ψ
|
||
[Gu] = 0x03A5, // U:: Υ
|
||
[Gi] = 0x0399, // I:: Ι
|
||
[Go] = 0x039F, // O:: Ο
|
||
[Gp] = 0x03A0, // P:: Π
|
||
[Ga] = 0x0391, // A:: Α
|
||
[Gs] = 0x03A3, // S:: Σ
|
||
[Gd] = 0x0394, // D:: Δ
|
||
[Gf] = 0x03A6, // F:: Φ
|
||
[Gg] = 0x0393, // G:: Γ
|
||
[Gh] = 0x0397, // H:: Η
|
||
[Gj] = 0x004A, // J:: J
|
||
[Gk] = 0x039A, // K:: Κ
|
||
[Gl] = 0x039B, // L:: Λ
|
||
[Gz] = 0x0396, // Z:: Ζ
|
||
[Gx] = 0x039E, // X:: Ξ
|
||
[Gc] = 0x03A7, // C:: Χ
|
||
[Gv] = 0x0056, // V:: V
|
||
[Gb] = 0x0392, // B:: Β
|
||
[Gn] = 0x039D, // N:: Ν
|
||
[Gm] = 0x039C, // M:: Μ
|
||
|
||
[tone] = 0x00B9, // 1:: ¹
|
||
[ttwo] = 0x00B2, // 2:: ²
|
||
[tthree] = 0x00B3, // 3:: ³
|
||
[tfour] = 0x2074, // 4:: ⁴
|
||
[tfive] = 0x2075, // 5:: ⁵
|
||
[tsix] = 0x2076, // 6:: ⁶
|
||
[tseven] = 0x2077, // 7:: ⁷
|
||
[teight] = 0x2078, // 8:: ⁸
|
||
[tnine] = 0x2079, // 9:: ⁹
|
||
[tzero] = 0x2070, // 0 :: ⁰
|
||
[tq] = 0x06F9, // Q:: ۹ - superscript q doesn't exist.
|
||
[tw] = 0x02B7, // W:: ʷ
|
||
[te] = 0x1D49, // E:: ᵉ
|
||
[tr] = 0x02B3, // R:: ʳ
|
||
[tt] = 0x1D57, // T:: ᵗ
|
||
[ty] = 0x02B8, // Y:: ʸ
|
||
[tu] = 0x1D58, // U:: ᵘ
|
||
[ti] = 0x2071, // I:: ⁱ
|
||
[to] = 0x1D52, // O:: ᵒ
|
||
[tp] = 0x1D56, // P:: ᵖ
|
||
[ta] = 0x1D43, // A:: ᵃ
|
||
[ts] = 0x02E2, // S:: ˢ
|
||
[td] = 0x1D48, // D:: ᵈ
|
||
[tf] = 0x1DA0, // F:: ᶠ
|
||
[tg] = 0x1D4D, // G:: ᵍ
|
||
[th] = 0x02B0, // H:: ʰ
|
||
[tj] = 0x02B2, // J:: ʲ
|
||
[tk] = 0x1D4F, // K:: ᵏ
|
||
[tl] = 0x02E1, // L:: ˡ
|
||
[tz] = 0x1DBB, // Z:: ᶻ
|
||
[tx] = 0x02E3, // X:: ˣ
|
||
[tc] = 0x1D9C, // C:: ᶜ
|
||
[tv] = 0x1D5B, // V:: ᵛ
|
||
[tb] = 0x1D47, // B:: ᵇ
|
||
[tn] = 0x207F, // N:: ⁿ
|
||
[tm] = 0x1D50, // M:: ᵐ
|
||
|
||
[fwone] = 0xFF11, // 1:: 1
|
||
[fwtwo] = 0xFF12, // 2:: 2
|
||
[fwthree] = 0xFF13, // 3:: 3
|
||
[fwfour] = 0xFF14, // 4:: 4
|
||
[fwfive] = 0xFF15, // 5:: 5
|
||
[fwsix] = 0xFF16, // 6:: 6
|
||
[fwseven] = 0xFF17, // 7:: 7
|
||
[fweight] = 0xFF18, // 8:: 8
|
||
[fwnine] = 0xFF19, // 9:: 9
|
||
[fwzero] = 0xFF10, // 0 :: 0
|
||
[fwq] = 0xFF51, // Q:: q
|
||
[fww] = 0xFF57, // W:: w
|
||
[fwe] = 0xFF45, // E:: e
|
||
[fwr] = 0xFF52, // R:: r
|
||
[fwt] = 0xFF54, // T:: t
|
||
[fwy] = 0xFF59, // Y:: y
|
||
[fwu] = 0xFF55, // U:: u
|
||
[fwi] = 0xFF49, // I:: i
|
||
[fwo] = 0xFF4F, // O:: o
|
||
[fwp] = 0xFF50, // P:: p
|
||
[fwa] = 0xFF41, // A:: a
|
||
[fws] = 0xFF53, // S:: s
|
||
[fwd] = 0xFF44, // D:: d
|
||
[fwf] = 0xFF46, // F:: f
|
||
[fwg] = 0xFF47, // G:: g
|
||
[fwh] = 0xFF48, // H:: h
|
||
[fwj] = 0xFF4A, // J:: j
|
||
[fwk] = 0xFF4B, // K:: k
|
||
[fwl] = 0xFF4C, // L:: l
|
||
[fwz] = 0xFF5A, // Z:: z
|
||
[fwx] = 0xFF58, // X:: x
|
||
[fwc] = 0xFF43, // C:: c
|
||
[fwv] = 0xFF56, // V:: v
|
||
[fwb] = 0xFF42, // B:: b
|
||
[fwn] = 0xFF4E, // N:: n
|
||
[fwm] = 0xFF4D, // M:: m
|
||
// Full width caps + fractions, and a few extra symbols that lack a better place
|
||
[Fwone] = 0x00BC, // 1:: ¼
|
||
[Fwtwo] = 0x00BD, // 2:: ½
|
||
[Fwthree] = 0x00BE, // 3:: ¾
|
||
[Fwfour] = 0x2153, // 4:: ⅓
|
||
[Fwfive] = 0x2154, // 5:: ⅔
|
||
[Fwsix] = 0x2155, // 6:: ⅕
|
||
[Fwseven] = 0x215B, // 7:: ⅛
|
||
[Fweight] = 0x00A0, // 8::  
|
||
[Fwnine] = 0x203D, // 9:: ibang ‽
|
||
[Fwzero] = 0x2400, // 0 :: nullpic ␀
|
||
[Fwq] = 0xFF31, // Q:: Q
|
||
[Fww] = 0xFF37, // W:: W
|
||
[Fwe] = 0xFF25, // E:: E
|
||
[Fwr] = 0xFF32, // R:: R
|
||
[Fwt] = 0xFF34, // T:: T
|
||
[Fwy] = 0xFF39, // Y:: Y
|
||
[Fwu] = 0xFF35, // U:: U
|
||
[Fwi] = 0xFF29, // I:: I
|
||
[Fwo] = 0xFF2F, // O:: O
|
||
[Fwp] = 0xFF30, // P:: P
|
||
[Fwa] = 0xFF21, // A:: A
|
||
[Fws] = 0xFF33, // S:: S
|
||
[Fwd] = 0xFF24, // D:: D
|
||
[Fwf] = 0xFF26, // F:: F
|
||
[Fwg] = 0xFF27, // G:: G
|
||
[Fwh] = 0xFF28, // H:: H
|
||
[Fwj] = 0xFF2A, // J:: J
|
||
[Fwk] = 0xFF2B, // K:: K
|
||
[Fwl] = 0xFF2C, // L:: L
|
||
[Fwz] = 0xFF3A, // Z:: Z
|
||
[Fwx] = 0xFF38, // X:: X
|
||
[Fwc] = 0xFF23, // C:: C
|
||
[Fwv] = 0xFF36, // V:: V
|
||
[Fwb] = 0xFF22, // B:: B
|
||
[Fwn] = 0xFF2E, // N:: N
|
||
[Fwm] = 0xFF2D, // M:: M
|
||
};
|
||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||
|
||
// clang-format off
|
||
|
||
[BASE] = LAYOUT_ergodox( // layer 0 : default
|
||
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,
|
||
SC_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, SC_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(
|
||
// left hand
|
||
UC_LINX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,
|
||
UC_WINC,KC_F11, KC_F12, KC_F13,KC_F14, KC_F15, KC_NO,
|
||
TO(TINY),KC_F21, KC_F22, KC_F23,KC_F24, MAGIC_TOGGLE_NKRO,
|
||
TO(FULL),KC_PAUSE,KC_PSCR,KC_SCRL,KC_NO,KC_NO,KC_NO,
|
||
EE_CLR,TO(BASE),TO(BASE),TO(BASE),TO(BASE),
|
||
KC_NO,KC_NO,
|
||
KC_NO,
|
||
KC_NO,KC_NO,KC_NO,
|
||
// right hand
|
||
TO(BASE), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, UC_LINX,
|
||
KC_NO, KC_F16, KC_F17,KC_F18, KC_F19, KC_F20, UC_WIN,
|
||
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,
|
||
SC_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, SC_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, UM(Mc), UM(Munion), UM(arwl), UM(or), UM(exists), KC_BSLS,
|
||
UM(arwr), UM(root), UM(and), UM(imply), UM(nexists), UM(forall),
|
||
SC_LSPO, KC_SCLN, UM(intgrl), UM(Mn), UM(Mz), UM(member), UM(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, UM(plsminus), UM(infin), UM(neleof), UM(equiv), UM(Mq), KC_EQL,
|
||
UM(sum), UM(emtyset), UM(porp), UM(suprsetof), UM(not), UM(neq),
|
||
KC_PGDN, UM(subsetof), UM(intersection), UM(angl), UM(nmember), UM(eleof), SC_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(
|
||
UM(Os), UM(Oa), UM(Ob), UM(Oc), UM(Od), UM(Oe), UM(mdot),
|
||
UM(boxemp), UM(bbstr), UM(bbrtr), UM(bbrtl), UM(bbstl), UM(degree), UM(brkdn),
|
||
UM(boxchk), UM(bbmbl), UM(bbml), UM(bbmr), UM(bbmbr), UM(neteen),
|
||
UM(boxX), UM(bbsbr), UM(bbrbr), UM(bbrbl), UM(bbsbl), UM(uxclm), UM(brkup),
|
||
UM(floppy), TO(BASE), TO(BASE), UM(arwu), UM(arwd),
|
||
UM(fire), UM(lshade), UM(mshade), KC_SPC, UM(OS), UM(dshade),
|
||
|
||
UM(Ox), UM(Of), UM(Og), UM(Oh), UM(Oi), UM(OA), UM(OB),
|
||
UM(numero), UM(trade), UM(copy), UM(cleft), UM(cent), UM(OED), UM(OC),
|
||
UM(Agrave), UM(gnd), UM(sqr), UM(sine), UM(opt), UM(OD),
|
||
UM(sect), UM(Aacute), UM(Acircm), UM(Adiaer), UM(Abreve), UM(Atilde), UM(OE),
|
||
UM(arwl), UM(arwr), UM(geq), UM(leq), UM(OF),
|
||
UM(rang), UM(water), UM(perup), UM(perdn), UM(baster), KC_ENT
|
||
),
|
||
|
||
[GREL] = LAYOUT_ergodox(
|
||
KC_ESC, UM(Rone), UM(Rtwo), UM(Rthree), UM(Rfour), UM(Rfive), KC_GRV,
|
||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(gp), UM(gy), KC_SLSH,
|
||
KC_SLSH, UM(ga), UM(go), UM(ge), UM(gu), UM(gi),
|
||
MO(GREU), KC_SCLN, UM(gq), UM(gj), UM(gk), UM(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), UM(Rsix), UM(Rseven), UM(Reight), UM(Rnine), UM(Rten), KC_BSPC,
|
||
KC_PGUP, UM(gf), UM(gg), UM(gc), UM(gr), UM(gl), KC_EQL,
|
||
UM(gd), UM(gh), UM(gt), UM(gn), UM(gs), KC_MINS,
|
||
KC_PGDN, UM(gb), UM(gm), UM(gw), UM(gv), UM(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, UM(Rone), UM(Rtwo), UM(Rthree), UM(Rfour), UM(Rfive), KC_GRV,
|
||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(Gp), UM(Gy), KC_SLSH,
|
||
KC_SLSH, UM(Ga), UM(Go), UM(Ge), UM(Gu), UM(Gi),
|
||
KC_TRNS, KC_SCLN, UM(Gq), UM(Gj), UM(Gk), UM(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), UM(Rsix), UM(Rseven), UM(Reight), UM(Rnine), UM(Rten), KC_BSPC,
|
||
KC_PGUP, UM(Gf), UM(Gg), UM(Gc), UM(Gr), UM(Gl), KC_EQL,
|
||
UM(Gd), UM(Gh), UM(Gt), UM(Gn), UM(Gs), KC_MINS,
|
||
KC_PGDN, UM(Gb), UM(Gm), UM(Gw), UM(Gv), UM(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
|
||
),
|
||
|
||
[TINY] = LAYOUT_ergodox(
|
||
KC_ESC, UM(tone), UM(ttwo), UM(tthree), UM(tfour), UM(tfive), KC_GRV,
|
||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(tp), UM(ty), KC_SLSH,
|
||
KC_SLSH, UM(ta), UM(to), UM(te), UM(tu), UM(ti),
|
||
KC_TRNS, KC_SCLN, UM(tq), UM(tj), UM(tk), UM(tx), 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), UM(tsix), UM(tseven), UM(teight), UM(tnine), UM(tzero), KC_BSPC,
|
||
KC_PGUP, UM(tf), UM(tg), UM(tc), UM(tr), UM(tl), KC_EQL,
|
||
UM(td), UM(th), UM(tt), UM(tn), UM(ts), KC_MINS,
|
||
KC_PGDN, UM(tb), UM(tm), UM(tw), UM(tv), UM(tz), KC_TRNS,
|
||
KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE),
|
||
KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC
|
||
),
|
||
|
||
[FULL] = LAYOUT_ergodox(
|
||
KC_ESC, UM(fwone), UM(fwtwo), UM(fwthree), UM(fwfour), UM(fwfive), KC_GRV,
|
||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(fwp), UM(fwy), KC_SLSH,
|
||
KC_SLSH, UM(fwa), UM(fwo), UM(fwe), UM(fwu), UM(fwi),
|
||
MO(FULU), KC_SCLN, UM(fwq), UM(fwj), UM(fwk), UM(fwx), 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), UM(fwsix), UM(fwseven), UM(fweight), UM(fwnine), UM(fwzero), KC_BSPC,
|
||
KC_PGUP, UM(fwf), UM(fwg), UM(fwc), UM(fwr), UM(fwl), KC_EQL,
|
||
UM(fwd), UM(fwh), UM(fwt), UM(fwn), UM(fws), KC_MINS,
|
||
KC_PGDN, UM(fwb), UM(fwm), UM(fww), UM(fwv), UM(fwz), MO(FULU),
|
||
KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE),
|
||
KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC
|
||
),
|
||
|
||
[FULU] = LAYOUT_ergodox(
|
||
KC_ESC, UM(Fwone), UM(Fwtwo), UM(Fwthree), UM(Fwfour), UM(Fwfive), KC_GRV,
|
||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, UM(Fwp), UM(Fwy), KC_SLSH,
|
||
KC_SLSH, UM(Fwa), UM(Fwo), UM(Fwe), UM(Fwu), UM(Fwi),
|
||
KC_TRNS, KC_SCLN, UM(Fwq), UM(Fwj), UM(Fwk), UM(Fwx), 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), UM(Fwsix), UM(Fwseven), UM(Fweight), UM(Fwnine), UM(Fwzero), KC_BSPC,
|
||
KC_PGUP, UM(Fwf), UM(Fwg), UM(Fwc), UM(Fwr), UM(Fwl), KC_EQL,
|
||
UM(Fwd), UM(Fwh), UM(Fwt), UM(Fwn), UM(Fws), KC_MINS,
|
||
KC_PGDN, UM(Fwb), UM(Fwm), UM(Fww), UM(Fwv), UM(Fwz), KC_TRNS,
|
||
KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE),
|
||
KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC
|
||
),
|
||
|
||
// clang-format on
|
||
|
||
};
|
||
|
||
// Runs just one time when the keyboard initializes.
|
||
void matrix_init_user(void){
|
||
|
||
};
|
||
|
||
// Runs constantly in the background, in a loop.
|
||
void matrix_scan_user(void) {
|
||
uint8_t layer = get_highest_layer(layer_state);
|
||
|
||
ergodox_board_led_off();
|
||
ergodox_right_led_1_off();
|
||
ergodox_right_led_2_off();
|
||
ergodox_right_led_3_off();
|
||
switch (layer) {
|
||
// TODO: Make this relevant to the ErgoDox EZ.
|
||
case 1:
|
||
ergodox_right_led_1_on();
|
||
break;
|
||
case 2:
|
||
ergodox_right_led_2_on();
|
||
break;
|
||
default:
|
||
// none
|
||
break;
|
||
}
|
||
};
|