mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-27 11:38:58 +06:00
241 lines
12 KiB
C
241 lines
12 KiB
C
/* Copyright 2020
|
||
*
|
||
* This program is free software: you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation, either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* This program is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU General Public License
|
||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
*/
|
||
|
||
#pragma once
|
||
|
||
#include "keymap.h"
|
||
|
||
// clang-format off
|
||
|
||
/*
|
||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||
* │ $ │ " │ « │ » │ ( │ ) │ @ │ + │ - │ / │ * │ = │ % │ │
|
||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||
* │ │ B │ É │ P │ O │ È │ ^ │ V │ D │ L │ J │ Z │ W │ │
|
||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||
* │ │ A │ U │ I │ E │ , │ C │ T │ S │ R │ N │ M │ Ç │ │
|
||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||
* │ │ Ê │ À │ Y │ X │ . │ K │ ' │ Q │ G │ H │ F │ │
|
||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||
* │ │ │ │ │ │ │ │ │
|
||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||
*/
|
||
// Row 1
|
||
#define BP_DLR KC_GRV // $
|
||
#define BP_DQUO KC_1 // "
|
||
#define BP_LDAQ KC_2 // «
|
||
#define BP_RDAQ KC_3 // »
|
||
#define BP_LPRN KC_4 // (
|
||
#define BP_RPRN KC_5 // )
|
||
#define BP_AT KC_6 // @
|
||
#define BP_PLUS KC_7 // +
|
||
#define BP_MINS KC_8 // -
|
||
#define BP_SLSH KC_9 // /
|
||
#define BP_ASTR KC_0 // *
|
||
#define BP_EQL KC_MINS // =
|
||
#define BP_PERC KC_EQL // %
|
||
// Row 2
|
||
#define BP_B KC_Q // B
|
||
#define BP_EACU KC_W // É
|
||
#define BP_P KC_E // P
|
||
#define BP_O KC_R // O
|
||
#define BP_EGRV KC_T // È
|
||
#define BP_DCIR KC_Y // ^ (dead)
|
||
#define BP_V KC_U // V
|
||
#define BP_D KC_I // D
|
||
#define BP_L KC_O // L
|
||
#define BP_J KC_P // J
|
||
#define BP_Z KC_LBRC // Z
|
||
#define BP_W KC_RBRC // W
|
||
// Row 3
|
||
#define BP_A KC_A // A
|
||
#define BP_U KC_S // U
|
||
#define BP_I KC_D // I
|
||
#define BP_E KC_F // E
|
||
#define BP_COMM KC_G // ,
|
||
#define BP_C KC_H // C
|
||
#define BP_T KC_J // T
|
||
#define BP_S KC_K // S
|
||
#define BP_R KC_L // R
|
||
#define BP_N KC_SCLN // N
|
||
#define BP_M KC_QUOT // M
|
||
#define BP_CCED KC_BSLS // Ç
|
||
// Row 4
|
||
#define BP_ECIR KC_NUBS // Ê
|
||
#define BP_AGRV KC_Z // À
|
||
#define BP_Y KC_X // Y
|
||
#define BP_X KC_C // X
|
||
#define BP_DOT KC_V // .
|
||
#define BP_K KC_B // K
|
||
#define BP_QUOT KC_N // '
|
||
#define BP_Q KC_M // Q
|
||
#define BP_G KC_COMM // G
|
||
#define BP_H KC_DOT // H
|
||
#define BP_F KC_SLSH // F
|
||
|
||
/* Shifted symbols
|
||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ ` │ │
|
||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||
* │ │ │ │ │ │ │ ! │ │ │ │ │ │ │ │
|
||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||
* │ │ │ │ │ │ ; │ │ │ │ │ │ │ │ │
|
||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||
* │ │ │ │ │ │ : │ │ ? │ │ │ │ │ │
|
||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||
* │ │ │ │ │ │ │ │ │
|
||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||
*/
|
||
// Row 1
|
||
#define BP_HASH S(BP_DLR) // #
|
||
#define BP_1 S(BP_DQUO) // 1
|
||
#define BP_2 S(BP_LDAQ) // 2
|
||
#define BP_3 S(BP_RDAQ) // 3
|
||
#define BP_4 S(BP_LPRN) // 4
|
||
#define BP_5 S(BP_RPRN) // 5
|
||
#define BP_6 S(BP_AT) // 6
|
||
#define BP_7 S(BP_PLUS) // 7
|
||
#define BP_8 S(BP_MINS) // 8
|
||
#define BP_9 S(BP_SLSH) // 9
|
||
#define BP_0 S(BP_ASTR) // 0
|
||
#define BP_DEG S(BP_EQL) // °
|
||
#define BP_GRV S(BP_PERC) // `
|
||
// Row 2
|
||
#define BP_EXLM S(BP_DCIR) // !
|
||
// Row 3
|
||
#define BP_SCLN S(BP_COMM) // ;
|
||
// Row 4
|
||
#define BP_COLN S(BP_DOT) // :
|
||
#define BP_QUES S(BP_QUOT) // ?
|
||
// Row 5
|
||
#define BP_NBSP S(KC_SPC) // (non-breaking space)
|
||
|
||
/* AltGr symbols
|
||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||
* │ – │ — │ < │ > │ [ │ ] │ ^ │ ± │ − │ ÷ │ × │ ≠ │ ‰ │ │
|
||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||
* │ │ | │ ´ │ & │ Œ │ ` │ ¡ │ ˇ │ Ð │ / │ IJ │ Ə │ ˘ │ │
|
||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||
* │ │ Æ │ Ù │ ¨ │ € │ │ © │ Þ │ ẞ │ ® │ ~ │ ¯ │ ¸ │ │
|
||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||
* │ │ │ \ │ { │ } │ … │ ~ │ ¿ │ ° │ │ † │ ˛ │ │
|
||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||
* │ │ │ │ _ │ │ │ │ │
|
||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||
*/
|
||
// Row 1
|
||
#define BP_NDSH ALGR(BP_DLR) // –
|
||
#define BP_MDSH ALGR(BP_DQUO) // —
|
||
#define BP_LABK ALGR(BP_LDAQ) // <
|
||
#define BP_RABK ALGR(BP_RDAQ) // >
|
||
#define BP_LBRC ALGR(BP_LPRN) // [
|
||
#define BP_RBRC ALGR(BP_RPRN) // ]
|
||
#define BP_CIRC ALGR(BP_AT) // ^
|
||
#define BP_PLMN ALGR(BP_PLUS) // ±
|
||
#define BP_MMNS ALGR(BP_MINS) // −
|
||
#define BP_DIV ALGR(BP_SLSH) // ÷
|
||
#define BP_MUL ALGR(BP_ASTR) // ×
|
||
#define BP_NEQL ALGR(BP_EQL) // ≠
|
||
#define BP_PERM ALGR(BP_PERC) // ‰
|
||
// Row 2
|
||
#define BP_PIPE ALGR(BP_B) // |
|
||
#define BP_ACUT ALGR(BP_EACU) // ´ (dead)
|
||
#define BP_AMPR ALGR(BP_P) // &
|
||
#define BP_OE ALGR(BP_O) // Œ
|
||
#define BP_DGRV ALGR(BP_EGRV) // ` (dead)
|
||
#define BP_IEXL ALGR(BP_DCIR) // ¡
|
||
#define BP_CARN ALGR(BP_V) // ˇ (dead)
|
||
#define BP_ETH ALGR(BP_D) // Ð
|
||
#define BP_DSLS ALGR(BP_L) // / (dead)
|
||
#define BP_IJ ALGR(BP_J) // IJ
|
||
#define BP_SCHW ALGR(BP_Z) // Ə
|
||
#define BP_BREV ALGR(BP_W) // ˘ (dead)
|
||
// Row 3
|
||
#define BP_AE ALGR(BP_A) // Æ
|
||
#define BP_UGRV ALGR(BP_U) // Ù
|
||
#define BP_DIAE ALGR(BP_I) // ¨ (dead)
|
||
#define BP_EURO ALGR(BP_E) // €
|
||
#define BP_COPY ALGR(BP_C) // ©
|
||
#define BP_THRN ALGR(BP_T) // Þ
|
||
#define BP_SS ALGR(BP_S) // ẞ
|
||
#define BP_REGD ALGR(BP_R) // ®
|
||
#define BP_DTIL ALGR(BP_N) // ~ (dead)
|
||
#define BP_MACR ALGR(BP_M) // ¯ (dead)
|
||
#define BP_CEDL ALGR(BP_CCED) // ¸ (dead)
|
||
// Row 4
|
||
#define BP_BSLS ALGR(BP_AGRV) // (backslash)
|
||
#define BP_LCBR ALGR(BP_Y) // {
|
||
#define BP_RCBR ALGR(BP_X) // }
|
||
#define BP_ELLP ALGR(BP_DOT) // …
|
||
#define BP_TILD ALGR(BP_K) // ~
|
||
#define BP_IQUE ALGR(BP_QUES) // ¿
|
||
#define BP_RNGA ALGR(BP_Q) // ° (dead)
|
||
#define BP_DGRK ALGR(BP_G) // µ (dead Greek key)
|
||
#define BP_DAGG ALGR(BP_H) // †
|
||
#define BP_OGON ALGR(BP_F) // ˛ (dead)
|
||
// Row 5
|
||
#define BP_UNDS ALGR(KC_SPC) // _
|
||
|
||
/* Shift+AltGr symbols
|
||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||
* │ ¶ │ „ │ “ │ ” │ ≤ │ ≥ │ │ ¬ │ ¼ │ ½ │ ¾ │ ′ │ ″ │ │
|
||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||
* │ │ ¦ │ ˝ │ § │ │ │ │ │ │ │ │ │ │ │
|
||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||
* │ │ │ │ ˙ │ ¤ │ ̛ │ ſ │ │ │ ™ │ │ º │ , │ │
|
||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||
* │ │ │ │ ‘ │ ’ │ · │ ⌨ │ ̉ │ ̣ │ │ ‡ │ ª │ │
|
||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||
* │ │ │ │ │ │ │ │ │
|
||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||
*/
|
||
// Row 1
|
||
#define BP_PARA S(ALGR(BP_DLR)) // ¶
|
||
#define BP_DLQU S(ALGR(BP_DQUO)) // „
|
||
#define BP_LDQU S(ALGR(BP_LDAQ)) // “
|
||
#define BP_RDQU S(ALGR(BP_RDAQ)) // ”
|
||
#define BP_LEQL S(ALGR(BP_LPRN)) // ≤
|
||
#define BP_GEQL S(ALGR(BP_RPRN)) // ≥
|
||
#define BP_NOT S(ALGR(BP_PLUS)) // ¬
|
||
#define BP_QRTR S(ALGR(BP_MINS)) // ¼
|
||
#define BP_HALF S(ALGR(BP_SLSH)) // ½
|
||
#define BP_TQTR S(ALGR(BP_ASTR)) // ¾
|
||
#define BP_PRIM S(ALGR(BP_EQL)) // ′
|
||
#define BP_DPRM S(ALGR(BP_PERC)) // ″
|
||
// Row 2
|
||
#define BP_BRKP S(ALGR(BP_B)) // ¦
|
||
#define BP_DACU S(ALGR(BP_EACU)) // ˝ (dead)
|
||
#define BP_SECT S(ALGR(BP_P)) // §
|
||
// Row 3
|
||
#define BP_DOTA S(ALGR(BP_I)) // ˙ (dead)
|
||
#define BP_CURR S(ALGR(BP_E)) // ¤ (dead)
|
||
#define BP_HORN S(ALGR(BP_COMM)) // ̛ (dead)
|
||
#define BP_LNGS S(ALGR(BP_C)) // ſ
|
||
#define BP_TM S(ALGR(BP_R)) // ™
|
||
#define BP_MORD S(ALGR(BP_M)) // º
|
||
#define BP_DCMM S(ALGR(BP_CCED)) // , (dead)
|
||
// Row 4
|
||
#define BP_LSQU S(ALGR(BP_Y)) // ‘
|
||
#define BP_RSQU S(ALGR(BP_X)) // ’
|
||
#define BP_MDDT S(ALGR(BP_DOT)) // ·
|
||
#define BP_KEYB S(ALGR(BP_K)) // ⌨
|
||
#define BP_HOKA S(ALGR(BP_QUOT)) // ̉ (dead)
|
||
#define BP_DOTB S(ALGR(BP_Q)) // ̣ (dead)
|
||
#define BP_DDAG S(ALGR(BP_H)) // ‡
|
||
#define BP_FORD S(ALGR(BP_F)) // ª
|
||
// Row 5
|
||
#define BP_NNBS S(ALGR(BP_)) // (narrow non-breaking space)
|