@ -19,12 +19,6 @@
# include "keymap.h"
# include "keymap.h"
// Alt gr
# ifndef ALTGR
# define ALTGR(kc) ALGR(kc)
# endif
# define BP_ALGR KC_RALT
// Normal characters
// Normal characters
// First row (on usual keyboards)
// First row (on usual keyboards)
# define BP_DOLLAR KC_GRAVE // $
# define BP_DOLLAR KC_GRAVE // $
@ -139,138 +133,138 @@
// AltGr-ed characters
// AltGr-ed characters
// First row
// First row
# define BP_EN_DASH AL T GR(BP_DOLLAR) // –
# define BP_EN_DASH AL GR(BP_DOLLAR) // –
# define BP_NDSH BP_EN_DASH
# define BP_NDSH BP_EN_DASH
# define BP_EM_DASH AL T GR(KC_1) // —
# define BP_EM_DASH AL GR(KC_1) // —
# define BP_MDSH BP_EM_DASH
# define BP_MDSH BP_EM_DASH
# define BP_LESS AL T GR(KC_2) // <
# define BP_LESS AL GR(KC_2) // <
# define BP_GREATER AL T GR(KC_3) // >
# define BP_GREATER AL GR(KC_3) // >
# define BP_GRTR BP_GREATER
# define BP_GRTR BP_GREATER
# define BP_LBRACKET AL T GR(KC_4) // [
# define BP_LBRACKET AL GR(KC_4) // [
# define BP_LBRC BP_LBRACKET
# define BP_LBRC BP_LBRACKET
# define BP_RBRACKET AL T GR(KC_5) // ]
# define BP_RBRACKET AL GR(KC_5) // ]
# define BP_RBRC BP_RBRACKET
# define BP_RBRC BP_RBRACKET
# define BP_CIRCUMFLEX AL T GR(KC_6) // ^
# define BP_CIRCUMFLEX AL GR(KC_6) // ^
# define BP_CIRC BP_CIRCUMFLEX
# define BP_CIRC BP_CIRCUMFLEX
# define BP_PLUS_MINUS AL T GR(KC_7) // ±
# define BP_PLUS_MINUS AL GR(KC_7) // ±
# define BP_PSMS BP_PLUS_MINUS
# define BP_PSMS BP_PLUS_MINUS
# define BP_MATH_MINUS AL T GR(KC_8) // −
# define BP_MATH_MINUS AL GR(KC_8) // −
# define BP_MMNS BP_MATH_MINUS
# define BP_MMNS BP_MATH_MINUS
# define BP_OBELUS AL T GR(KC_9) // ÷
# define BP_OBELUS AL GR(KC_9) // ÷
# define BP_OBEL BP_OBELUS
# define BP_OBEL BP_OBELUS
// more conventional name of the symbol
// more conventional name of the symbol
# define BP_DIVISION_SIGN BP_OBELUS
# define BP_DIVISION_SIGN BP_OBELUS
# define BP_DVSN BP_DIVISION_SIGN
# define BP_DVSN BP_DIVISION_SIGN
# define BP_TIMES AL T GR(KC_0) // ×
# define BP_TIMES AL GR(KC_0) // ×
# define BP_TIMS BP_TIMES
# define BP_TIMS BP_TIMES
# define BP_DIFFERENT AL T GR(BP_EQUAL) // ≠
# define BP_DIFFERENT AL GR(BP_EQUAL) // ≠
# define BP_DIFF BP_DIFFERENT
# define BP_DIFF BP_DIFFERENT
# define BP_PERMILLE AL T GR(BP_PERCENT) // ‰
# define BP_PERMILLE AL GR(BP_PERCENT) // ‰
# define BP_PMIL BP_PERMILLE
# define BP_PMIL BP_PERMILLE
// Second row
// Second row
# define BP_PIPE AL T GR(BP_B) // |
# define BP_PIPE AL GR(BP_B) // |
# define BP_DEAD_ACUTE AL T GR(BP_E_ACUTE) // dead ´
# define BP_DEAD_ACUTE AL GR(BP_E_ACUTE) // dead ´
# define BP_DACT BP_DEAD_ACUTE
# define BP_DACT BP_DEAD_ACUTE
# define BP_AMPERSAND AL T GR(BP_P) // &
# define BP_AMPERSAND AL GR(BP_P) // &
# define BP_AMPR BP_AMPERSAND
# define BP_AMPR BP_AMPERSAND
# define BP_OE_LIGATURE AL T GR(BP_O) // œ
# define BP_OE_LIGATURE AL GR(BP_O) // œ
# define BP_OE BP_OE_LIGATURE
# define BP_OE BP_OE_LIGATURE
# define BP_DEAD_GRAVE AL T GR(BP_E_GRAVE) // `
# define BP_DEAD_GRAVE AL GR(BP_E_GRAVE) // `
# define BP_DGRV BP_DEAD_GRAVE
# define BP_DGRV BP_DEAD_GRAVE
# define BP_INVERTED_EXCLAIM AL T GR(BP_DEAD_CIRCUMFLEX) // ¡
# define BP_INVERTED_EXCLAIM AL GR(BP_DEAD_CIRCUMFLEX) // ¡
# define BP_IXLM BP_INVERTED_EXCLAIM
# define BP_IXLM BP_INVERTED_EXCLAIM
# define BP_DEAD_CARON AL T GR(BP_V) // dead ˇ
# define BP_DEAD_CARON AL GR(BP_V) // dead ˇ
# define BP_DCAR BP_DEAD_CARON
# define BP_DCAR BP_DEAD_CARON
# define BP_ETH AL T GR(BP_D) // ð
# define BP_ETH AL GR(BP_D) // ð
# define BP_DEAD_SLASH AL T GR(BP_L) // dead /
# define BP_DEAD_SLASH AL GR(BP_L) // dead /
# define BP_DSLH BP_DEAD_SLASH
# define BP_DSLH BP_DEAD_SLASH
# define BP_IJ_LIGATURE AL T GR(BP_J) // ij
# define BP_IJ_LIGATURE AL GR(BP_J) // ij
# define BP_IJ BP_IJ_LIGATURE
# define BP_IJ BP_IJ_LIGATURE
# define BP_SCHWA AL T GR(BP_Z) // ə
# define BP_SCHWA AL GR(BP_Z) // ə
# define BP_SCWA BP_SCHWA
# define BP_SCWA BP_SCHWA
# define BP_DEAD_BREVE AL T GR(BP_W) // dead ˘
# define BP_DEAD_BREVE AL GR(BP_W) // dead ˘
# define BP_DBRV BP_DEAD_BREVE
# define BP_DBRV BP_DEAD_BREVE
// Third row
// Third row
# define BP_AE_LIGATURE AL T GR(BP_A) // æ
# define BP_AE_LIGATURE AL GR(BP_A) // æ
# define BP_AE BP_AE_LIGATURE
# define BP_AE BP_AE_LIGATURE
# define BP_U_GRAVE AL T GR(BP_U) // ù
# define BP_U_GRAVE AL GR(BP_U) // ù
# define BP_UGRV BP_U_GRAVE
# define BP_UGRV BP_U_GRAVE
# define BP_DEAD_TREMA AL T GR(BP_I) // dead ¨ (trema/umlaut/diaresis)
# define BP_DEAD_TREMA AL GR(BP_I) // dead ¨ (trema/umlaut/diaresis)
# define BP_DTRM BP_DEAD_TREMA
# define BP_DTRM BP_DEAD_TREMA
# define BP_EURO AL T GR(BP_E) // €
# define BP_EURO AL GR(BP_E) // €
# define BP_TYPOGRAPHICAL_APOSTROPHE AL T GR(BP_COMMA) // ’
# define BP_TYPOGRAPHICAL_APOSTROPHE AL GR(BP_COMMA) // ’
# define BP_TAPO BP_TYPOGRAPHICAL_APOSTROPHE
# define BP_TAPO BP_TYPOGRAPHICAL_APOSTROPHE
# define BP_COPYRIGHT AL T GR(BP_C) // ©
# define BP_COPYRIGHT AL GR(BP_C) // ©
# define BP_CPRT BP_COPYRIGHT
# define BP_CPRT BP_COPYRIGHT
# define BP_THORN AL T GR(BP_T) // þ
# define BP_THORN AL GR(BP_T) // þ
# define BP_THRN BP_THORN
# define BP_THRN BP_THORN
# define BP_SHARP_S AL T GR(BP_S) // ß
# define BP_SHARP_S AL GR(BP_S) // ß
# define BP_SRPS BP_SHARP_S
# define BP_SRPS BP_SHARP_S
# define BP_REGISTERED_TRADEMARK AL T GR(BP_R) // ®
# define BP_REGISTERED_TRADEMARK AL GR(BP_R) // ®
# define BP_RTM BP_REGISTERED_TRADEMARK
# define BP_RTM BP_REGISTERED_TRADEMARK
# define BP_DEAD_TILDE AL T GR(BP_N) // dead ~
# define BP_DEAD_TILDE AL GR(BP_N) // dead ~
# define BP_DTLD BP_DEAD_TILDE
# define BP_DTLD BP_DEAD_TILDE
# define BP_DEAD_MACRON AL T GR(BP_M) // dead ¯
# define BP_DEAD_MACRON AL GR(BP_M) // dead ¯
# define BP_DMCR BP_DEAD_MACRON
# define BP_DMCR BP_DEAD_MACRON
# define BP_DEAD_CEDILLA AL T GR(BP_C_CEDILLA) // dead ¸
# define BP_DEAD_CEDILLA AL GR(BP_C_CEDILLA) // dead ¸
# define BP_DCED BP_DEAD_CEDILLA
# define BP_DCED BP_DEAD_CEDILLA
// Fourth row
// Fourth row
# define BP_NONUS_SLASH AL T GR(BP_E_CIRCUMFLEX) // / on non-us backslash key (102nd key, ê in bépo)
# define BP_NONUS_SLASH AL GR(BP_E_CIRCUMFLEX) // / on non-us backslash key (102nd key, ê in bépo)
# define BP_NUSL BP_NONUS_SLASH
# define BP_NUSL BP_NONUS_SLASH
# define BP_BACKSLASH AL T GR(BP_A_GRAVE) /* \ */
# define BP_BACKSLASH AL GR(BP_A_GRAVE) /* \ */
# define BP_BSLS BP_BACKSLASH
# define BP_BSLS BP_BACKSLASH
# define BP_LEFT_CURLY_BRACE AL T GR(BP_Y) // {
# define BP_LEFT_CURLY_BRACE AL GR(BP_Y) // {
# define BP_LCBR BP_LEFT_CURLY_BRACE
# define BP_LCBR BP_LEFT_CURLY_BRACE
# define BP_RIGHT_CURLY_BRACE AL T GR(BP_X) // }
# define BP_RIGHT_CURLY_BRACE AL GR(BP_X) // }
# define BP_RCBR BP_RIGHT_CURLY_BRACE
# define BP_RCBR BP_RIGHT_CURLY_BRACE
# define BP_ELLIPSIS AL T GR(BP_DOT) // …
# define BP_ELLIPSIS AL GR(BP_DOT) // …
# define BP_ELPS BP_ELLIPSIS
# define BP_ELPS BP_ELLIPSIS
# define BP_TILDE AL T GR(BP_K) // ~
# define BP_TILDE AL GR(BP_K) // ~
# define BP_TILD BP_TILDE
# define BP_TILD BP_TILDE
# define BP_INVERTED_QUESTION AL T GR(BP_QUESTION) // ¿
# define BP_INVERTED_QUESTION AL GR(BP_QUESTION) // ¿
# define BP_IQST BP_INVERTED_QUESTION
# define BP_IQST BP_INVERTED_QUESTION
# define BP_DEAD_RING AL T GR(BP_Q) // dead °
# define BP_DEAD_RING AL GR(BP_Q) // dead °
# define BP_DRNG BP_DEAD_RING
# define BP_DRNG BP_DEAD_RING
# define BP_DEAD_GREEK AL T GR(BP_G) // dead Greek key (following key will make a Greek letter)
# define BP_DEAD_GREEK AL GR(BP_G) // dead Greek key (following key will make a Greek letter)
# define BP_DGRK BP_DEAD_GREEK
# define BP_DGRK BP_DEAD_GREEK
# define BP_DAGGER AL T GR(BP_H) // †
# define BP_DAGGER AL GR(BP_H) // †
# define BP_DAGR BP_DAGGER
# define BP_DAGR BP_DAGGER
# define BP_DEAD_OGONEK AL T GR(BP_F) // dead ˛
# define BP_DEAD_OGONEK AL GR(BP_F) // dead ˛
# define BP_DOGO BP_DEAD_OGONEK
# define BP_DOGO BP_DEAD_OGONEK
// Space bar
// Space bar
# define BP_UNDERSCORE AL T GR(KC_SPACE) // _
# define BP_UNDERSCORE AL GR(KC_SPACE) // _
# define BP_UNDS BP_UNDERSCORE
# define BP_UNDS BP_UNDERSCORE
// AltGr-Shifted characters (different from capitalised AltGr-ed characters)
// AltGr-Shifted characters (different from capitalised AltGr-ed characters)
// First row
// First row
# define BP_PARAGRAPH AL T GR(BP_HASH) // ¶
# define BP_PARAGRAPH AL GR(BP_HASH) // ¶
# define BP_PARG BP_PARAGRAPH
# define BP_PARG BP_PARAGRAPH
# define BP_LOW_DOUBLE_QUOTE AL T GR(BP_1) // „
# define BP_LOW_DOUBLE_QUOTE AL GR(BP_1) // „
# define BP_LWQT BP_LOW_DOUBLE_QUOTE
# define BP_LWQT BP_LOW_DOUBLE_QUOTE
# define BP_LEFT_DOUBLE_QUOTE AL T GR(BP_2) // “
# define BP_LEFT_DOUBLE_QUOTE AL GR(BP_2) // “
# define BP_LDQT BP_LEFT_DOUBLE_QUOTE
# define BP_LDQT BP_LEFT_DOUBLE_QUOTE
# define BP_RIGHT_DOUBLE_QUOTE AL T GR(BP_3) // ”
# define BP_RIGHT_DOUBLE_QUOTE AL GR(BP_3) // ”
# define BP_RDQT BP_RIGHT_DOUBLE_QUOTE
# define BP_RDQT BP_RIGHT_DOUBLE_QUOTE
# define BP_LESS_OR_EQUAL AL T GR(BP_4) // ≤
# define BP_LESS_OR_EQUAL AL GR(BP_4) // ≤
# define BP_LEQL BP_LESS_OR_EQUAL
# define BP_LEQL BP_LESS_OR_EQUAL
# define BP_GREATER_OR_EQUAL AL T GR(BP_5) // ≥
# define BP_GREATER_OR_EQUAL AL GR(BP_5) // ≥
# define BP_GEQL BP_GREATER_OR_EQUAL
# define BP_GEQL BP_GREATER_OR_EQUAL
// nothing on AL T GR(BP_6)
// nothing on AL GR(BP_6)
# define BP_NEGATION AL T GR(BP_7) // ¬
# define BP_NEGATION AL GR(BP_7) // ¬
# define BP_NEGT BP_NEGATION
# define BP_NEGT BP_NEGATION
# define BP_ONE_QUARTER AL T GR(BP_8) // ¼
# define BP_ONE_QUARTER AL GR(BP_8) // ¼
# define BP_1QRT BP_ONE_QUARTER
# define BP_1QRT BP_ONE_QUARTER
# define BP_ONE_HALF AL T GR(BP_9) // ½
# define BP_ONE_HALF AL GR(BP_9) // ½
# define BP_1HLF BP_ONE_HALF
# define BP_1HLF BP_ONE_HALF
# define BP_THREE_QUARTERS AL T GR(BP_0) // ¾
# define BP_THREE_QUARTERS AL GR(BP_0) // ¾
# define BP_3QRT BP_THREE_QUARTERS
# define BP_3QRT BP_THREE_QUARTERS
# define BP_MINUTES AL T GR(BP_DEGREE) // ′
# define BP_MINUTES AL GR(BP_DEGREE) // ′
# define BP_MNUT BP_MINUTES
# define BP_MNUT BP_MINUTES
# define BP_SECONDS AL T GR(BP_GRAVE) // ″
# define BP_SECONDS AL GR(BP_GRAVE) // ″
# define BP_SCND BP_SECONDS
# define BP_SCND BP_SECONDS
// Second row
// Second row
@ -278,7 +272,7 @@
# define BP_BPIP BP_BROKEN_PIPE
# define BP_BPIP BP_BROKEN_PIPE
# define BP_DEAD_DOUBLE_ACUTE LSFT(BP_DEAD_ACUTE) // ˝
# define BP_DEAD_DOUBLE_ACUTE LSFT(BP_DEAD_ACUTE) // ˝
# define BP_DDCT BP_DEAD_DOUBLE_ACUTE
# define BP_DDCT BP_DEAD_DOUBLE_ACUTE
# define BP_SECTION AL T GR(LSFT(BP_P)) // §
# define BP_SECTION AL GR(LSFT(BP_P)) // §
# define BP_SECT BP_SECTION
# define BP_SECT BP_SECTION
// LSFT(BP_DEAD_GRAVE) is actually the same character as LSFT(BP_PERCENT)
// LSFT(BP_DEAD_GRAVE) is actually the same character as LSFT(BP_PERCENT)
# define BP_GRAVE_BIS LSFT(BP_DEAD_GRAVE) // `
# define BP_GRAVE_BIS LSFT(BP_DEAD_GRAVE) // `
@ -289,35 +283,35 @@
# define BP_DDTA BP_DEAD_DOT_ABOVE
# define BP_DDTA BP_DEAD_DOT_ABOVE
# define BP_DEAD_CURRENCY LSFT(BP_EURO) // dead ¤ (next key will generate a currency code like ¥ or £)
# define BP_DEAD_CURRENCY LSFT(BP_EURO) // dead ¤ (next key will generate a currency code like ¥ or £)
# define BP_DCUR BP_DEAD_CURRENCY
# define BP_DCUR BP_DEAD_CURRENCY
# define BP_DEAD_HORN LSFT(AL T GR(BP_COMMA)) // dead ̛
# define BP_DEAD_HORN LSFT(AL GR(BP_COMMA)) // dead ̛
# define BP_DHRN BP_DEAD_HORN
# define BP_DHRN BP_DEAD_HORN
# define BP_LONG_S LSFT(AL T GR(BP_C)) // ſ
# define BP_LONG_S LSFT(AL GR(BP_C)) // ſ
# define BP_LNGS BP_LONG_S
# define BP_LNGS BP_LONG_S
# define BP_TRADEMARK LSFT(BP_REGISTERED_TRADEMARK) // ™
# define BP_TRADEMARK LSFT(BP_REGISTERED_TRADEMARK) // ™
# define BP_TM BP_TRADEMARK
# define BP_TM BP_TRADEMARK
# define BP_ORDINAL_INDICATOR_O LSFT(AL T GR(BP_M)) // º
# define BP_ORDINAL_INDICATOR_O LSFT(AL GR(BP_M)) // º
# define BP_ORDO BP_ORDINAL_INDICATOR_O
# define BP_ORDO BP_ORDINAL_INDICATOR_O
# define BP_DEAD_COMMA LSFT(BP_DEAD_CEDILLA) // dead ˛
# define BP_DEAD_COMMA LSFT(BP_DEAD_CEDILLA) // dead ˛
# define BP_DCOM BP_DEAD_COMMA
# define BP_DCOM BP_DEAD_COMMA
// Fourth row
// Fourth row
# define BP_LEFT_QUOTE LSFT(AL T GR(BP_Y)) // ‘
# define BP_LEFT_QUOTE LSFT(AL GR(BP_Y)) // ‘
# define BP_LQOT BP_LEFT_QUOTE
# define BP_LQOT BP_LEFT_QUOTE
# define BP_RIGHT_QUOTE LSFT(AL T GR(BP_X)) // ’
# define BP_RIGHT_QUOTE LSFT(AL GR(BP_X)) // ’
# define BP_RQOT BP_RIGHT_QUOTE
# define BP_RQOT BP_RIGHT_QUOTE
# define BP_INTERPUNCT LSFT(AL T GR(BP_DOT)) // ·
# define BP_INTERPUNCT LSFT(AL GR(BP_DOT)) // ·
# define BP_IPCT BP_INTERPUNCT
# define BP_IPCT BP_INTERPUNCT
# define BP_DEAD_HOOK_ABOVE LSFT(AL T GR(BP_QUESTION)) // dead ̉
# define BP_DEAD_HOOK_ABOVE LSFT(AL GR(BP_QUESTION)) // dead ̉
# define BP_DHKA BP_DEAD_HOOK_ABOVE
# define BP_DHKA BP_DEAD_HOOK_ABOVE
# define BP_DEAD_UNDERDOT LSFT(BP_DEAD_RING) // dead ̣
# define BP_DEAD_UNDERDOT LSFT(BP_DEAD_RING) // dead ̣
# define BP_DUDT BP_DEAD_UNDERDOT
# define BP_DUDT BP_DEAD_UNDERDOT
# define BP_DOUBLE_DAGGER LSFT(BP_DAGGER) // ‡
# define BP_DOUBLE_DAGGER LSFT(BP_DAGGER) // ‡
# define BP_DDGR BP_DOUBLE_DAGGER
# define BP_DDGR BP_DOUBLE_DAGGER
# define BP_ORDINAL_INDICATOR_A LSFT(AL T GR(BP_F)) // ª
# define BP_ORDINAL_INDICATOR_A LSFT(AL GR(BP_F)) // ª
# define BP_ORDA BP_ORDINAL_INDICATOR_A
# define BP_ORDA BP_ORDINAL_INDICATOR_A
// Space bar
// Space bar
# define BP_NARROW_NON_BREAKING_SPACE AL T GR(BP_NON_BREAKING_SPACE)
# define BP_NARROW_NON_BREAKING_SPACE AL GR(BP_NON_BREAKING_SPACE)
# define BP_NNBS BP_NARROW_NON_BREAKING_SPACE
# define BP_NNBS BP_NARROW_NON_BREAKING_SPACE
# endif
# endif