keychron_qmk_firmware/users/ridingqwerty/unicode.h
2023-06-01 17:25:08 +01:00

296 lines
8.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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,
#define UCM_KEYCODE(name, code) name = UM(UCM_ ## name), // LALP = UM(UCM_LALP)
#if defined(UNICODE_ENABLE)
enum unicode_keycodes {
FOREACH_UNICODE(UC_KEYCODE)
};
#elif defined(UNICODEMAP_ENABLE)
enum unicode_names {
FOREACH_UNICODE(UCM_NAME)
};
extern const uint32_t unicode_map[] PROGMEM;
enum unicode_keycodes {
FOREACH_UNICODE(UCM_KEYCODE)
};
#endif
#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)
#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)