@ -1,14 +1,9 @@
// 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
@ -22,7 +17,8 @@ enum unicode_names {
nexists , //∄
forall , //∀
and , //∧
or , //∨
or
, //∨
xor , //⊕
apeql , //≅
root , //√
@ -61,7 +57,6 @@ enum unicode_names {
mdot ,
rang ,
lshade ,
mshade ,
dshade ,
@ -207,6 +202,122 @@ 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 [ ] = {
@ -259,7 +370,6 @@ const uint32_t PROGMEM unicode_map[] = {
[ mdot ] = 0x00B7 , //·
[ rang ] = 0x299C , //⦜
[ lshade ] = 0x2591 , //░
[ mshade ] = 0x2592 , //▒
[ dshade ] = 0x2593 , //▓
@ -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,6 +748,56 @@ 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.