2020-02-04 19:17:10 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
#include "quantum.h"
|
|
|
|
|
|
|
|
|
|
// clang-format off
|
|
|
|
|
#define FOREACH_UNICODE(M) \
|
|
|
|
|
M(UALP, 0x0391) /* Α */ \
|
|
|
|
|
M(UBET, 0x0392) /* Β */ \
|
|
|
|
|
M(UGAM, 0x0393) /* Γ */ \
|
|
|
|
|
M(UDEL, 0x0394) /* Δ */ \
|
|
|
|
|
M(UEPS, 0x0395) /* Ε */ \
|
|
|
|
|
M(UZET, 0x0396) /* Ζ */ \
|
|
|
|
|
M(UETA, 0x0397) /* Η */ \
|
|
|
|
|
M(UTHE, 0x0398) /* Θ */ \
|
|
|
|
|
M(UIOT, 0x0399) /* Ι */ \
|
|
|
|
|
M(UKAP, 0x039A) /* Κ */ \
|
|
|
|
|
M(ULAM, 0x039B) /* Λ */ \
|
|
|
|
|
M(UMU, 0x039C) /* M */ \
|
|
|
|
|
M(UNU, 0x039D) /* Ν */ \
|
|
|
|
|
M(UXI, 0x039E) /* Ξ */ \
|
|
|
|
|
M(UOMI, 0x039F) /* Ο */ \
|
|
|
|
|
M(UPI, 0x03A0) /* Π */ \
|
|
|
|
|
M(URHO, 0x03A1) /* Ρ */ \
|
|
|
|
|
M(USIG, 0x03A3) /* Σ */ \
|
|
|
|
|
M(UTAU, 0x03A4) /* Τ */ \
|
|
|
|
|
M(UUPS, 0x03A5) /* Υ */ \
|
|
|
|
|
M(UPHI, 0x03A6) /* Φ */ \
|
|
|
|
|
M(UCHI, 0x03A7) /* Χ */ \
|
|
|
|
|
M(UPSI, 0x03A8) /* Ψ */ \
|
|
|
|
|
M(UOME, 0x03A9) /* Ω */ \
|
|
|
|
|
M(LALP, 0x03B1) /* α */ \
|
|
|
|
|
M(LBET, 0x03B2) /* β */ \
|
|
|
|
|
M(LGAM, 0x03B3) /* γ */ \
|
|
|
|
|
M(LDEL, 0x03B4) /* δ */ \
|
|
|
|
|
M(LEPS, 0x03B5) /* ε */ \
|
|
|
|
|
M(LZET, 0x03B6) /* ζ */ \
|
|
|
|
|
M(LETA, 0x03B7) /* η */ \
|
|
|
|
|
M(LTHE, 0x03B8) /* θ */ \
|
|
|
|
|
M(LIOT, 0x03B9) /* ι */ \
|
|
|
|
|
M(LKAP, 0x03BA) /* κ */ \
|
|
|
|
|
M(LLAM, 0x03BB) /* λ */ \
|
|
|
|
|
M(LMU, 0x03BC) /* μ */ \
|
|
|
|
|
M(LNU, 0x03BD) /* ν */ \
|
|
|
|
|
M(LXI, 0x03BE) /* ξ */ \
|
|
|
|
|
M(LOMI, 0x03BF) /* ο */ \
|
|
|
|
|
M(LPI, 0x03C0) /* π */ \
|
|
|
|
|
M(LRHO, 0x03C1) /* ρ */ \
|
|
|
|
|
M(LSIG, 0x03C3) /* σ */ \
|
|
|
|
|
M(LTAU, 0x03C4) /* τ */ \
|
|
|
|
|
M(LUPS, 0x03C5) /* υ */ \
|
|
|
|
|
M(LPHI, 0x03C6) /* φ */ \
|
|
|
|
|
M(LCHI, 0x03C7) /* χ */ \
|
|
|
|
|
M(LPSI, 0x03C8) /* ψ */ \
|
|
|
|
|
M(LOME, 0x03C9) /* ω */ \
|
|
|
|
|
M(UAH, 0x0410) /* А */ \
|
|
|
|
|
M(UBE, 0x0411) /* Б */ \
|
|
|
|
|
M(UVE, 0x0412) /* В */ \
|
|
|
|
|
M(UGHE, 0x0413) /* Г */ \
|
|
|
|
|
M(UDE, 0x0414) /* Д */ \
|
|
|
|
|
M(UIE, 0x0415) /* Е */ \
|
|
|
|
|
M(UIO, 0x0401) /* Ё */ \
|
|
|
|
|
M(UZHE, 0x0416) /* Ж */ \
|
|
|
|
|
M(UZE, 0x0417) /* З */ \
|
|
|
|
|
M(UIH, 0x0418) /* И */ \
|
|
|
|
|
M(USIH, 0x0419) /* Й */ \
|
|
|
|
|
M(UKA, 0x041A) /* К */ \
|
|
|
|
|
M(UEL, 0x041B) /* Л */ \
|
|
|
|
|
M(UEM, 0x041C) /* М */ \
|
|
|
|
|
M(UEN, 0x041D) /* Н */ \
|
|
|
|
|
M(UOH, 0x041E) /* О */ \
|
|
|
|
|
M(UPE, 0x041F) /* П */ \
|
|
|
|
|
M(UER, 0x0420) /* Р */ \
|
|
|
|
|
M(UES, 0x0421) /* С */ \
|
|
|
|
|
M(UTE, 0x0422) /* Т */ \
|
|
|
|
|
M(UUU, 0x0423) /* У */ \
|
|
|
|
|
M(UEF, 0x0424) /* Ф */ \
|
|
|
|
|
M(UHA, 0x0425) /* Х */ \
|
|
|
|
|
M(UTSE, 0x0426) /* Ц */ \
|
|
|
|
|
M(UCHE, 0x0427) /* Ч */ \
|
|
|
|
|
M(USHA, 0x0428) /* Ш */ \
|
|
|
|
|
M(USCHA, 0x0429) /* Щ */ \
|
|
|
|
|
M(UHARD, 0x042A) /* Ъ */ \
|
|
|
|
|
M(UYERU, 0x042B) /* Ы */ \
|
|
|
|
|
M(USOFT, 0x042C) /* Ь */ \
|
|
|
|
|
M(UEH, 0x042D) /* Э */ \
|
|
|
|
|
M(UYU, 0x042E) /* Ю */ \
|
|
|
|
|
M(UYA, 0x042F) /* Я */ \
|
|
|
|
|
M(LAH, 0x0430) /* а */ \
|
|
|
|
|
M(LBE, 0x0431) /* б */ \
|
|
|
|
|
M(LVE, 0x0432) /* в */ \
|
|
|
|
|
M(LGHE, 0x0433) /* г */ \
|
|
|
|
|
M(LDE, 0x0434) /* д */ \
|
|
|
|
|
M(LIE, 0x0435) /* е */ \
|
|
|
|
|
M(LIO, 0x0451) /* ё */ \
|
|
|
|
|
M(LZHE, 0x0436) /* ж */ \
|
|
|
|
|
M(LZE, 0x0437) /* з */ \
|
|
|
|
|
M(LIH, 0x0438) /* и */ \
|
|
|
|
|
M(LSIH, 0x0439) /* й */ \
|
|
|
|
|
M(LKA, 0x043A) /* к */ \
|
|
|
|
|
M(LEL, 0x043B) /* л */ \
|
|
|
|
|
M(LEM, 0x043C) /* м */ \
|
|
|
|
|
M(LEN, 0x043D) /* н */ \
|
|
|
|
|
M(LOH, 0x043E) /* о */ \
|
|
|
|
|
M(LPE, 0x043F) /* п */ \
|
|
|
|
|
M(LER, 0x0440) /* р */ \
|
|
|
|
|
M(LES, 0x0441) /* с */ \
|
|
|
|
|
M(LTE, 0x0442) /* т */ \
|
|
|
|
|
M(LUU, 0x0443) /* у */ \
|
|
|
|
|
M(LEF, 0x0444) /* ф */ \
|
|
|
|
|
M(LHA, 0x0445) /* х */ \
|
|
|
|
|
M(LTSE, 0x0446) /* ц */ \
|
|
|
|
|
M(LCHE, 0x0447) /* ч */ \
|
|
|
|
|
M(LSHA, 0x0448) /* ш */ \
|
|
|
|
|
M(LSCHA, 0x0449) /* щ */ \
|
|
|
|
|
M(LHARD, 0x044A) /* ъ */ \
|
|
|
|
|
M(LYERU, 0x044B) /* ы */ \
|
|
|
|
|
M(LSOFT, 0x044C) /* ь */ \
|
|
|
|
|
M(LEH, 0x044D) /* э */ \
|
|
|
|
|
M(LYU, 0x044E) /* ю */ \
|
|
|
|
|
M(LYA, 0x044F) /* я */ \
|
|
|
|
|
M(FE, 0x16A0) /* ᚠ */ \
|
|
|
|
|
M(UR, 0x16A2) /* ᚢ */ \
|
|
|
|
|
M(THURS, 0x16A6) /* ᚦ */ \
|
|
|
|
|
M(ANSUZ, 0x16A8) /* ᚨ */ \
|
|
|
|
|
M(RAIDO, 0x16B1) /* ᚱ */ \
|
|
|
|
|
M(KAUNA, 0x16B2) /* ᚲ */ \
|
|
|
|
|
M(GEBO, 0x16B7) /* ᚷ */ \
|
|
|
|
|
M(WUNJO, 0x16B9) /* ᚹ */ \
|
|
|
|
|
M(HAGLZ, 0x16BA) /* ᚺ */ \
|
|
|
|
|
M(NAUDZ, 0x16BE) /* ᚾ */ \
|
|
|
|
|
M(ISAZ, 0x16C1) /* ᛁ */ \
|
|
|
|
|
M(JERAN, 0x16C3) /* ᛃ */ \
|
|
|
|
|
M(IWAZ, 0x16C7) /* ᛇ */ \
|
|
|
|
|
M(PERTH, 0x16C8) /* ᛈ */ \
|
|
|
|
|
M(ALGIZ, 0x16C9) /* ᛉ */ \
|
|
|
|
|
M(SOWIL, 0x16CA) /* ᛊ */ \
|
|
|
|
|
M(TIWAZ, 0x16CF) /* ᛏ */ \
|
|
|
|
|
M(BEORC, 0x16D2) /* ᛒ */ \
|
|
|
|
|
M(EHWAZ, 0x16D6) /* ᛖ */ \
|
|
|
|
|
M(MANNZ, 0x16D7) /* ᛗ */ \
|
|
|
|
|
M(LAUKZ, 0x16DA) /* ᛚ */ \
|
|
|
|
|
M(INGWZ, 0x16DC) /* ᛜ */ \
|
|
|
|
|
M(DAGAZ, 0x16DE) /* ᛞ */ \
|
|
|
|
|
M(ETHEL, 0x16DF) /* ᛟ */ \
|
|
|
|
|
M(JRO, 0x308D) /* ろ */ \
|
|
|
|
|
M(JWA, 0x308F) /* わ */ \
|
|
|
|
|
M(JNU, 0x306C) /* ぬ */ \
|
|
|
|
|
M(JHU, 0x3075) /* ふ */ \
|
|
|
|
|
M(JA, 0x3042) /* あ */ \
|
|
|
|
|
M(JU, 0x3046) /* う */ \
|
|
|
|
|
M(JE, 0x3048) /* え */ \
|
|
|
|
|
M(JO, 0x304A) /* お */ \
|
|
|
|
|
M(JYA, 0x3084) /* や */ \
|
|
|
|
|
M(JYU, 0x3086) /* ゆ */ \
|
|
|
|
|
M(JYO, 0x3088) /* よ */ \
|
|
|
|
|
M(JHO, 0x307B) /* ほ */ \
|
|
|
|
|
M(JHE, 0x3078) /* へ */ \
|
|
|
|
|
M(JMU, 0x3080) /* む */ \
|
|
|
|
|
M(JTA, 0x305F) /* た */ \
|
|
|
|
|
M(JTE, 0x3066) /* て */ \
|
|
|
|
|
M(JI, 0x3044) /* い */ \
|
|
|
|
|
M(JSU, 0x3059) /* す */ \
|
|
|
|
|
M(JKA, 0x3095) /* ゕ */ \
|
|
|
|
|
M(JN, 0x3093) /* ん */ \
|
|
|
|
|
M(JNA, 0x306A) /* な */ \
|
|
|
|
|
M(JNI, 0x306B) /* に */ \
|
|
|
|
|
M(JRA, 0x3089) /* ら */ \
|
|
|
|
|
M(JSE, 0x305B) /* せ */ \
|
|
|
|
|
M(JVV, 0x309B) /* ゛*/ \
|
|
|
|
|
M(JSV, 0x309C) /* ゜*/ \
|
|
|
|
|
M(JTI, 0x3061) /* ち */ \
|
|
|
|
|
M(JTO, 0x3068) /* と */ \
|
|
|
|
|
M(JSI, 0x3057) /* し */ \
|
|
|
|
|
M(JHA, 0x306F) /* は */ \
|
|
|
|
|
M(JKI, 0x304D) /* き */ \
|
|
|
|
|
M(JKU, 0x304F) /* く */ \
|
|
|
|
|
M(JMA, 0x307E) /* ま */ \
|
|
|
|
|
M(JNO, 0x306E) /* の */ \
|
|
|
|
|
M(JRI, 0x308A) /* り */ \
|
|
|
|
|
M(JRE, 0x308C) /* れ */ \
|
|
|
|
|
M(JKE, 0x3051) /* け */ \
|
|
|
|
|
M(JTU, 0x3064) /* つ */ \
|
|
|
|
|
M(JSA, 0x3055) /* さ */ \
|
|
|
|
|
M(JSO, 0x305D) /* そ */ \
|
|
|
|
|
M(JHI, 0x3072) /* ひ */ \
|
|
|
|
|
M(JKO, 0x3053) /* こ */ \
|
|
|
|
|
M(JMI, 0x307F) /* み */ \
|
|
|
|
|
M(JMO, 0x3082) /* も */ \
|
|
|
|
|
M(JNE, 0x306D) /* ね */ \
|
|
|
|
|
M(JRU, 0x308B) /* る */ \
|
|
|
|
|
M(JME, 0x3081) /* め */ \
|
|
|
|
|
M(ALEF, 0x05D0) /* א */ \
|
|
|
|
|
M(BET, 0x05D1) /* ב */ \
|
|
|
|
|
M(GIMEL, 0x05D2) /* ג */ \
|
|
|
|
|
M(DALET, 0x05D3) /* ד */ \
|
|
|
|
|
M(HE, 0x05D4) /* ה */ \
|
|
|
|
|
M(VAV, 0x05D5) /* ו */ \
|
|
|
|
|
M(ZAYIN, 0x05D6) /* ז */ \
|
|
|
|
|
M(CHET, 0x05D7) /* ח */ \
|
|
|
|
|
M(TET, 0x05D8) /* ט */ \
|
|
|
|
|
M(YOD, 0x05D9) /* י */ \
|
|
|
|
|
M(KAF, 0x05DB) /* כ */ \
|
|
|
|
|
M(LAMED, 0x05DC) /* ל */ \
|
|
|
|
|
M(MEM, 0x05DE) /* מ */ \
|
|
|
|
|
M(NUN, 0x05E0) /* נ */ \
|
|
|
|
|
M(SAMCH, 0x05E1) /* ס */ \
|
|
|
|
|
M(AYIN, 0x05E2) /* ע */ \
|
|
|
|
|
M(PE, 0x05E4) /* פ */ \
|
|
|
|
|
M(TZADI, 0x05E6) /* צ */ \
|
|
|
|
|
M(KOF, 0x05E7) /* ק */ \
|
|
|
|
|
M(RESH, 0x05E8) /* ר */ \
|
|
|
|
|
M(SHIN, 0x05E9) /* ש */ \
|
|
|
|
|
M(TAV, 0x05EA) /* ת */
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
#define UC_KEYCODE(name, code) name = UC(code), // LALP = UC(0x03B1),
|
|
|
|
|
|
|
|
|
|
#define UCM_NAME(name, code) UCM_ ## name, // UCM_LALP,
|
|
|
|
|
#define UCM_ENTRY(name, code) [UCM_ ## name] = code, // [UCM_LALP] = 0x03B1,
|
2023-06-01 16:25:08 +00:00
|
|
|
|
#define UCM_KEYCODE(name, code) name = UM(UCM_ ## name), // LALP = UM(UCM_LALP)
|
2020-02-04 19:17:10 +00:00
|
|
|
|
|
|
|
|
|
#if defined(UNICODE_ENABLE)
|
|
|
|
|
enum unicode_keycodes {
|
|
|
|
|
FOREACH_UNICODE(UC_KEYCODE)
|
|
|
|
|
};
|
|
|
|
|
#elif defined(UNICODEMAP_ENABLE)
|
|
|
|
|
enum unicode_names {
|
|
|
|
|
FOREACH_UNICODE(UCM_NAME)
|
|
|
|
|
};
|
|
|
|
|
|
2023-01-01 00:54:12 +00:00
|
|
|
|
extern const uint32_t unicode_map[] PROGMEM;
|
2020-02-04 19:17:10 +00:00
|
|
|
|
|
|
|
|
|
enum unicode_keycodes {
|
|
|
|
|
FOREACH_UNICODE(UCM_KEYCODE)
|
|
|
|
|
};
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
2023-06-01 16:25:08 +00:00
|
|
|
|
#define ALPHA UP(LALP, UALP)
|
|
|
|
|
#define BETA UP(LBET, UBET)
|
|
|
|
|
#define GAMMA UP(LGAM, UGAM)
|
|
|
|
|
#define DELTA UP(LDEL, UDEL)
|
|
|
|
|
#define EPSLN UP(LEPS, UEPS)
|
|
|
|
|
#define ZETA UP(LZET, UZET)
|
|
|
|
|
#define ETA UP(LETA, UETA)
|
|
|
|
|
#define THETA UP(LTHE, UTHE)
|
|
|
|
|
#define IOTA UP(LIOT, UIOT)
|
|
|
|
|
#define KAPPA UP(LKAP, UKAP)
|
|
|
|
|
#define LAMBD UP(LLAM, ULAM)
|
|
|
|
|
#define GMU UP(LMU, UMU)
|
|
|
|
|
#define NU UP(LNU, UNU)
|
|
|
|
|
#define XI UP(LXI, UXI)
|
|
|
|
|
#define OMCRN UP(LOMI, UOMI)
|
|
|
|
|
#define PI UP(LPI, UPI)
|
|
|
|
|
#define RHO UP(LRHO, URHO)
|
|
|
|
|
#define SIGMA UP(LSIG, USIG)
|
|
|
|
|
#define TAU UP(LTAU, UTAU)
|
|
|
|
|
#define UPSLN UP(LUPS, UUPS)
|
|
|
|
|
#define PHI UP(LPHI, UPHI)
|
|
|
|
|
#define CHI UP(LCHI, UCHI)
|
|
|
|
|
#define PSI UP(LPSI, UPSI)
|
|
|
|
|
#define OMEGA UP(LOME, UOME)
|
2020-02-04 19:17:10 +00:00
|
|
|
|
|
2023-06-01 16:25:08 +00:00
|
|
|
|
#define AH UP(LAH, UAH)
|
|
|
|
|
#define BE UP(LBE, UBE)
|
|
|
|
|
#define VE UP(LVE, UVE)
|
|
|
|
|
#define GHE UP(LGHE, UGHE)
|
|
|
|
|
#define DE UP(LDE, UDE)
|
|
|
|
|
#define IE UP(LIE, UIE)
|
|
|
|
|
#define IO UP(LIO, UIO)
|
|
|
|
|
#define ZHE UP(LZHE, UZHE)
|
|
|
|
|
#define ZE UP(LZE, UZE)
|
|
|
|
|
#define IH UP(LIH, UIH)
|
|
|
|
|
#define SIH UP(LSIH, USIH)
|
|
|
|
|
#define KA UP(LKA, UKA)
|
|
|
|
|
#define EL UP(LEL, UEL)
|
|
|
|
|
#define EM UP(LEM, UEM)
|
|
|
|
|
#define EN UP(LEN, UEN)
|
|
|
|
|
#define OH UP(LOH, UOH)
|
|
|
|
|
#define PE UP(LPE, UPE)
|
|
|
|
|
#define ER UP(LER, UER)
|
|
|
|
|
#define ES UP(LES, UES)
|
|
|
|
|
#define TE UP(LTE, UTE)
|
|
|
|
|
#define UU UP(LUU, UUU)
|
|
|
|
|
#define EF UP(LEF, UEF)
|
|
|
|
|
#define HA UP(LHA, UHA)
|
|
|
|
|
#define TSE UP(LTSE, UTSE)
|
|
|
|
|
#define CHE UP(LCHE, UCHE)
|
|
|
|
|
#define SHA UP(LSHA, USHA)
|
|
|
|
|
#define SCHA UP(LSCHA, USCHA)
|
|
|
|
|
#define HARD UP(LHARD, UHARD)
|
|
|
|
|
#define YERU UP(LYERU, UYERU)
|
|
|
|
|
#define SOFT UP(LSOFT, USOFT)
|
|
|
|
|
#define EH UP(LEH, UEH)
|
|
|
|
|
#define YU UP(LYU, UYU)
|
|
|
|
|
#define YA UP(LYA, UYA)
|