mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-25 18:06:34 +06:00
2ffac90c99
Co-authored-by: gbotin <geoffrey.botin@gmail.com>
261 lines
13 KiB
C
261 lines
13 KiB
C
/* Copyright 2016 Sébastien Pérochon
|
||
*
|
||
* 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
|
||
|
||
/*
|
||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||
* │ @ │ & │ é │ " │ ' │ ( │ § │ è │ ! │ ç │ à │ ) │ - │ │
|
||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │ │
|
||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ ` │ │
|
||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||
* │ │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ = │ │
|
||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||
* │ │ │ │ │ │ │ │
|
||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||
*/
|
||
// Row 1
|
||
#define FR_AT KC_GRV // @
|
||
#define FR_AMPR KC_1 // &
|
||
#define FR_LEAC KC_2 // é
|
||
#define FR_DQUO KC_3 // "
|
||
#define FR_QUOT KC_4 // '
|
||
#define FR_LPRN KC_5 // (
|
||
#define FR_SECT KC_6 // §
|
||
#define FR_LEGR KC_7 // è
|
||
#define FR_EXLM KC_8 // !
|
||
#define FR_LCCE KC_9 // ç
|
||
#define FR_LAGR KC_0 // à
|
||
#define FR_RPRN KC_MINS // )
|
||
#define FR_MINS KC_EQL // -
|
||
// Row 2
|
||
#define FR_A KC_Q // A
|
||
#define FR_Z KC_W // Z
|
||
#define FR_E KC_E // E
|
||
#define FR_R KC_R // R
|
||
#define FR_T KC_T // T
|
||
#define FR_Y KC_Y // Y
|
||
#define FR_U KC_U // U
|
||
#define FR_I KC_I // I
|
||
#define FR_O KC_O // O
|
||
#define FR_P KC_P // P
|
||
#define FR_CIRC KC_LBRC // ^
|
||
#define FR_DLR KC_RBRC // $
|
||
// Row 3
|
||
#define FR_Q KC_A // Q
|
||
#define FR_S KC_S // S
|
||
#define FR_D KC_D // D
|
||
#define FR_F KC_F // F
|
||
#define FR_G KC_G // G
|
||
#define FR_H KC_H // H
|
||
#define FR_J KC_J // J
|
||
#define FR_K KC_K // K
|
||
#define FR_L KC_L // L
|
||
#define FR_M KC_SCLN // M
|
||
#define FR_LUGR KC_QUOT // ù
|
||
#define FR_GRV KC_NUHS // `
|
||
// Row 4
|
||
#define FR_LABK KC_NUBS // <
|
||
#define FR_W KC_Z // W
|
||
#define FR_X KC_X // X
|
||
#define FR_C KC_C // C
|
||
#define FR_V KC_V // V
|
||
#define FR_B KC_B // B
|
||
#define FR_N KC_N // N
|
||
#define FR_COMM KC_M // ,
|
||
#define FR_SCLN KC_COMM // ;
|
||
#define FR_COLN KC_DOT // :
|
||
#define FR_EQL KC_SLSH // =
|
||
|
||
/* Shifted symbols
|
||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ _ │ │
|
||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ * │ │
|
||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||
* │ │ │ │ │ │ │ │ │ │ │ │ % │ £ │ │
|
||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||
* │ │ > │ │ │ │ │ │ │ ? │ . │ / │ + │ │
|
||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||
* │ │ │ │ │ │ │ │
|
||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||
*/
|
||
// Row 1
|
||
#define FR_HASH S(FR_AT) // #
|
||
#define FR_1 S(FR_AMPR) // 1
|
||
#define FR_2 S(FR_LEAC) // 2
|
||
#define FR_3 S(FR_DQUO) // 3
|
||
#define FR_4 S(FR_QUOT) // 4
|
||
#define FR_5 S(FR_LPRN) // 5
|
||
#define FR_6 S(FR_SECT) // 6
|
||
#define FR_7 S(FR_LEGR) // 7
|
||
#define FR_8 S(FR_EXLM) // 8
|
||
#define FR_9 S(FR_LCCE) // 9
|
||
#define FR_0 S(FR_LAGR) // 0
|
||
#define FR_DEG S(FR_RPRN) // °
|
||
#define FR_UNDS S(FR_MINS) // _
|
||
// Row 2
|
||
#define FR_DIAE S(FR_CIRC) // ¨ (dead)
|
||
#define FR_ASTR S(FR_DLR) // *
|
||
// Row 3
|
||
#define FR_PERC S(FR_LUGR) // %
|
||
#define FR_PND S(FR_GRV) // £
|
||
// Row 4
|
||
#define FR_RABK S(FR_LABK) // >
|
||
#define FR_QUES S(FR_COMM) // ?
|
||
#define FR_DOT S(FR_SCLN) // .
|
||
#define FR_SLSH S(FR_COLN) // /
|
||
#define FR_PLUS S(FR_EQL) // +
|
||
|
||
/* Alted symbols
|
||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||
* │ • │ │ ë │ “ │ ‘ │ { │ ¶ │ « │ ¡ │ Ç │ Ø │ } │ — │ │
|
||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||
* │ │ Æ │  │ Ê │ ® │ † │ Ú │ º │ î │ Œ │ π │ Ô │ € │ │
|
||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||
* │ │ ‡ │ Ò │ ∂ │ ƒ │ fi │ Ì │ Ï │ È │ ¬ │ µ │ Ù │ │ │
|
||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||
* │ │ ≤ │ ‹ │ ≈ │ © │ ◊ │ ß │ ~ │ ∞ │ … │ ÷ │ ≠ │ │
|
||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||
* │ │ │ │ │ │ │ │
|
||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||
*/
|
||
// Row 1
|
||
#define FR_BULT A(FR_AT) // •
|
||
#define FR_APPL A(FR_AMPR) // (Apple logo)
|
||
#define FR_LEDI A(FR_LEAC) // ë
|
||
#define FR_LDQU A(FR_DQUO) // “
|
||
#define FR_LSQU A(FR_QUOT) // ‘
|
||
#define FR_LCBR A(FR_LPRN) // {
|
||
#define FR_PILC A(FR_SECT) // ¶
|
||
#define FR_LDAQ A(FR_LEGR) // «
|
||
#define FR_IEXL A(FR_EXLM) // ¡
|
||
#define FR_CCCE A(FR_LCCE) // Ç
|
||
#define FR_OSTR A(FR_LAGR) // Ø
|
||
#define FR_RCBR A(FR_RPRN) // }
|
||
#define FR_MDSH A(FR_MINS) // —
|
||
// Row 2
|
||
#define FR_AE A(FR_A) // Æ
|
||
#define FR_CACI A(FR_Z) // Â
|
||
#define FR_ECIR A(FR_E) // Ê
|
||
#define FR_REGD A(FR_R) // ®
|
||
#define FR_DAGG A(FR_T) // †
|
||
#define FR_CUAC A(FR_Y) // Ú
|
||
#define FR_MORD A(FR_U) // º
|
||
#define FR_LICI A(FR_I) // î
|
||
#define FR_OE A(FR_O) // Œ
|
||
#define FR_PI A(FR_P) // π
|
||
#define FR_OCIR A(FR_CIRC) // Ô
|
||
#define FR_EURO A(FR_DLR) // €
|
||
// Row 3
|
||
#define FR_DDAG A(FR_Q) // ‡
|
||
#define FR_COGR A(FR_S) // Ò
|
||
#define FR_PDIF A(FR_D) // ∂
|
||
#define FR_FHK A(FR_F) // ƒ
|
||
#define FR_FI A(FR_G) // fi
|
||
#define FR_CIGR A(FR_H) // Ì
|
||
#define FR_CIDI A(FR_J) // Ï
|
||
#define FR_CEGR A(FR_K) // È
|
||
#define FR_NOT A(FR_L) // ¬
|
||
#define FR_MICR A(FR_M) // µ
|
||
#define FR_CUGR A(FR_LUGR) // Ù
|
||
// Row 4
|
||
#define FR_LTEQ A(FR_LABK) // ≤
|
||
#define FR_LSAQ A(FR_W) // ‹
|
||
#define FR_AEQL A(FR_X) // ≈
|
||
#define FR_COPY A(FR_C) // ©
|
||
#define FR_LOZN A(FR_V) // ◊
|
||
#define FR_SS A(FR_B) // ß
|
||
#define FR_TILD A(FR_N) // ~ (dead)
|
||
#define FR_INFN A(FR_COMM) // ∞
|
||
#define FR_ELLP A(FR_SCLN) // …
|
||
#define FR_DIV A(FR_COLN) // ÷
|
||
#define FR_NEQL A(FR_EQL) // ≠
|
||
|
||
/* Shift+Alted symbols
|
||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||
* │ Ÿ │ ´ │ „ │ │ │ [ │ å │ » │ Û │ Á │ │ ] │ – │ │
|
||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||
* │ │ │ Å │ │ ‚ │ ™ │ │ ª │ ï │ │ ∏ │ │ ¥ │ │
|
||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||
* │ │ Ω │ ∑ │ ∆ │ · │ fl │ Î │ Í │ Ë │ | │ Ó │ ‰ │ │ │
|
||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||
* │ │ ≥ │ › │ ⁄ │ ¢ │ √ │ ∫ │ ı │ ¿ │ │ \ │ ± │ │
|
||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||
* │ │ │ │ │ │ │ │
|
||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||
*/
|
||
// Row 1
|
||
#define FR_CYDI S(A(FR_AT)) // Ÿ
|
||
#define FR_ACUT S(A(FR_AMPR)) // ´ (dead)
|
||
#define FR_DLQU S(A(FR_LEAC)) // „
|
||
#define FR_LBRC S(A(FR_LPRN)) // [
|
||
#define FR_LARI S(A(FR_SECT)) // å
|
||
#define FR_RDAQ S(A(FR_LEGR)) // »
|
||
#define FR_CUCI S(A(FR_EXLM)) // Û
|
||
#define FR_CAAC S(A(FR_LCCE)) // Á
|
||
#define FR_RBRC S(A(FR_RPRN)) // ]
|
||
#define FR_NDSH S(A(FR_MINS)) // –
|
||
// Row 2
|
||
#define FR_CARI S(A(FR_Z)) // Å
|
||
#define FR_SLQU S(A(FR_R)) // ‚
|
||
#define FR_TM S(A(FR_T)) // ™
|
||
#define FR_FORD S(A(FR_U)) // ª
|
||
#define FR_LIDI S(A(FR_I)) // ï
|
||
#define FR_NARP S(A(FR_P)) // ∏
|
||
#define FR_YEN S(A(FR_DLR)) // ¥
|
||
// Row 3
|
||
#define FR_OMEG S(A(FR_Q)) // Ω
|
||
#define FR_NARS S(A(FR_S)) // ∑
|
||
#define FR_INCR S(A(FR_D)) // ∆
|
||
#define FR_MDDT S(A(FR_F)) // ·
|
||
#define FR_FL S(A(FR_G)) // fl
|
||
#define FR_CICI S(A(FR_H)) // Î
|
||
#define FR_CIAC S(A(FR_J)) // Í
|
||
#define FR_CEDI S(A(FR_K)) // Ë
|
||
#define FR_PIPE S(A(FR_L)) // |
|
||
#define FR_COAC S(A(FR_M)) // Ó
|
||
#define FR_PERM S(A(FR_LUGR)) // ‰
|
||
// Row 4
|
||
#define FR_GTEQ S(A(FR_LABK)) // ≥
|
||
#define FR_RSAQ S(A(FR_W)) // ›
|
||
#define FR_FRSL S(A(FR_X)) // ⁄
|
||
#define FR_CENT S(A(FR_C)) // ¢
|
||
#define FR_SQRT S(A(FR_V)) // √
|
||
#define FR_INTG S(A(FR_B)) // ∫
|
||
#define FR_DLSI S(A(FR_N)) // ı
|
||
#define FR_IQUE S(A(FR_COMM)) // ¿
|
||
#define FR_BSLS S(A(FR_COLN)) // (backslash)
|
||
#define FR_PLMN S(A(FR_EQL)) // ±
|
||
|
||
// DEPRECATED
|
||
#define FR_AMP FR_AMPR
|
||
#define FR_EACU FR_LEAC
|
||
#define FR_APOS FR_QUOT
|
||
#define FR_EGRV FR_LEGR
|
||
#define FR_CCED FR_LCCE
|
||
#define FR_AGRV FR_LAGR
|
||
#define FR_UGRV FR_LUGR
|
||
#define FR_LESS FR_LABK
|
||
#define FR_UMLT FR_DIAE
|
||
#define FR_GRTR FR_RABK
|