mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-30 12:52:32 +01: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)
 | 
