@ -1,17 +1,12 @@
// 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
} ;
enum layer_names { BASE , GREL , GREU , SYMB , MATH , QWER , FNLR , TINY , FULL , FULU } ;
enum unicode_names {
//MATH
// MATH
neq , //≠
intgrl , //∫
angl , //∠
@ -22,7 +17,8 @@ enum unicode_names {
nexists , //∄
forall , //∀
and , //∧
or , //∨
or
, //∨
xor , //⊕
apeql , //≅
root , //√
@ -45,7 +41,7 @@ enum unicode_names {
intersection , //∩
Munion , //∪
//SYMB
// SYMB
arwl ,
arwu ,
arwr ,
@ -61,7 +57,6 @@ enum unicode_names {
mdot ,
rang ,
lshade ,
mshade ,
dshade ,
@ -132,7 +127,7 @@ enum unicode_names {
perup ,
perdn ,
//GREEL
// GREEL
rone , // 1:: ⅰ
rtwo ,
rthree ,
@ -170,7 +165,7 @@ enum unicode_names {
gn , // n:: ν
gm , // m:: μ
//GREEU
// GREEU
Rone , // 1:: Ⅰ
Rtwo , // 2:: Ⅱ
Rthree , // 3:: Ⅲ
@ -207,10 +202,126 @@ enum unicode_names {
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 PROGMEM unicode_map [ ] = {
//MATH
// MATH
[ neq ] = 0x2260 , //≠
[ intgrl ] = 0x222B , //∫
[ angl ] = 0x2220 , //∠
@ -225,7 +336,7 @@ const uint32_t PROGMEM unicode_map[] = {
[ xor ] = 0x2295 , //⊕
[ apeql ] = 0x2245 , //≅
[ root ] = 0x221A , //√
[ not ] = 0x00AC , //¬
[ not ] = 0x00AC , //¬
[ sum ] = 0x2211 , //∑
[ plsminus ] = 0x00B1 , //±
[ infin ] = 0x221E , //∞
@ -243,7 +354,7 @@ const uint32_t PROGMEM unicode_map[] = {
[ suprsetof ] = 0x2283 , //
[ intersection ] = 0x2229 , //∩
[ Munion ] = 0x222A , //∪
//Symbol
// Symbol
[ arwl ] = 0x2190 , //←
[ arwu ] = 0x2191 , //↑
[ arwr ] = 0x2192 , //→
@ -259,10 +370,9 @@ const uint32_t PROGMEM unicode_map[] = {
[ mdot ] = 0x00B7 , //·
[ rang ] = 0x299C , //⦜
[ l shade] = 0x2591 , //░
[ m shade] = 0x2592 , //▒
[ dshade ] = 0x2593 , //▓
[ lshade ] = 0x2591 , //░
[ m shade] = 0x2592 , //▒
[ d shade] = 0x2593 , //▓
[ fire ] = 0x1F525 , //🔥
[ water ] = 0x1F322 , //🌢
@ -289,40 +399,40 @@ const uint32_t PROGMEM unicode_map[] = {
[ 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̋
[ 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
[ 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
[ gnd ] = 0x23DA , //⏚
[ sqr ] = 0x238D , //⎍, actually monostable
[ sine ] = 0x223F , //∿
[ opt ] = 0x2325 , //⌥, actually option used for switch
[ geq ] = 0x2264 , //≤
[ leq ] = 0x2265 , //≥
@ -330,7 +440,7 @@ const uint32_t PROGMEM unicode_map[] = {
[ brkdn ] = 0xFE37 , //︷
[ perup ] = 0xFE35 , //︵
[ perdn ] = 0xFE36 , //︶
//GREEKL
// GREEKL
[ rone ] = 0x2170 , // 1:: ⅰ
[ rtwo ] = 0x2171 , // 2:: ⅱ
[ rthree ] = 0x2172 , // 3:: ⅲ
@ -367,7 +477,7 @@ const uint32_t PROGMEM unicode_map[] = {
[ gb ] = 0x03B2 , // b:: β
[ gn ] = 0x03BD , // n:: ν
[ gm ] = 0x03BC , // m:: μ
//GREEKU
// GREEKU
[ Rone ] = 0x2160 , // 1:: Ⅰ
[ Rtwo ] = 0x2161 , // 2:: Ⅱ
[ Rthree ] = 0x2162 , // 3:: Ⅲ
@ -404,10 +514,123 @@ const uint32_t PROGMEM unicode_map[] = {
[ 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 ,
@ -428,8 +651,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// left hand
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_N O,
KC_NO , KC_PAUSE , KC_PSCR , KC_SLCK , KC_NO , KC_NO , KC_NO ,
TO ( TINY ) , KC_F21 , KC_F22 , KC_F23 , KC_F24 , MAGIC_TOGGLE_NKR O,
TO ( FULL ) , 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 ,
@ -525,10 +748,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_END , KC_RBRC , KC_LEFT , KC_RGHT , KC_ENT , KC_SPC
) ,
[ TINY ] = LAYOUT_ergodox (
KC_ESC , X ( tone ) , X ( ttwo ) , X ( tthree ) , X ( tfour ) , X ( tfive ) , KC_GRV ,
KC_TAB , KC_QUOT , KC_COMM , KC_DOT , X ( tp ) , X ( ty ) , KC_SLSH ,
KC_SLSH , X ( ta ) , X ( to ) , X ( te ) , X ( tu ) , X ( ti ) ,
KC_TRNS , KC_SCLN , X ( tq ) , X ( tj ) , X ( tk ) , X ( 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 ) , X ( tsix ) , X ( tseven ) , X ( teight ) , X ( tnine ) , X ( tzero ) , KC_BSPC ,
KC_PGUP , X ( tf ) , X ( tg ) , X ( tc ) , X ( tr ) , X ( tl ) , KC_EQL ,
X ( td ) , X ( th ) , X ( tt ) , X ( tn ) , X ( ts ) , KC_MINS ,
KC_PGDN , X ( tb ) , X ( tm ) , X ( tw ) , X ( tv ) , X ( 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 , X ( fwone ) , X ( fwtwo ) , X ( fwthree ) , X ( fwfour ) , X ( fwfive ) , KC_GRV ,
KC_TAB , KC_QUOT , KC_COMM , KC_DOT , X ( fwp ) , X ( fwy ) , KC_SLSH ,
KC_SLSH , X ( fwa ) , X ( fwo ) , X ( fwe ) , X ( fwu ) , X ( fwi ) ,
MO ( FULU ) , KC_SCLN , X ( fwq ) , X ( fwj ) , X ( fwk ) , X ( 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 ) , X ( fwsix ) , X ( fwseven ) , X ( fweight ) , X ( fwnine ) , X ( fwzero ) , KC_BSPC ,
KC_PGUP , X ( fwf ) , X ( fwg ) , X ( fwc ) , X ( fwr ) , X ( fwl ) , KC_EQL ,
X ( fwd ) , X ( fwh ) , X ( fwt ) , X ( fwn ) , X ( fws ) , KC_MINS ,
KC_PGDN , X ( fwb ) , X ( fwm ) , X ( fww ) , X ( fwv ) , X ( 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 , X ( Fwone ) , X ( Fwtwo ) , X ( Fwthree ) , X ( Fwfour ) , X ( Fwfive ) , KC_GRV ,
KC_TAB , KC_QUOT , KC_COMM , KC_DOT , X ( Fwp ) , X ( Fwy ) , KC_SLSH ,
KC_SLSH , X ( Fwa ) , X ( Fwo ) , X ( Fwe ) , X ( Fwu ) , X ( Fwi ) ,
KC_TRNS , KC_SCLN , X ( Fwq ) , X ( Fwj ) , X ( Fwk ) , X ( 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 ) , X ( Fwsix ) , X ( Fwseven ) , X ( Fweight ) , X ( Fwnine ) , X ( Fwzero ) , KC_BSPC ,
KC_PGUP , X ( Fwf ) , X ( Fwg ) , X ( Fwc ) , X ( Fwr ) , X ( Fwl ) , KC_EQL ,
X ( Fwd ) , X ( Fwh ) , X ( Fwt ) , X ( Fwn ) , X ( Fws ) , KC_MINS ,
KC_PGDN , X ( Fwb ) , X ( Fwm ) , X ( Fww ) , X ( Fwv ) , X ( 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 ) {
void matrix_init_user ( void ) {
} ;