keymap_bepo.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. /* Copyright 2020
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #pragma once
  17. #include "keymap.h"
  18. // clang-format off
  19. /*
  20. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
  21. * │ $ │ " │ « │ » │ ( │ ) │ @ │ + │ - │ / │ * │ = │ % │ │
  22. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
  23. * │ │ B │ É │ P │ O │ È │ ^ │ V │ D │ L │ J │ Z │ W │ │
  24. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
  25. * │ │ A │ U │ I │ E │ , │ C │ T │ S │ R │ N │ M │ Ç │ │
  26. * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
  27. * │ │ Ê │ À │ Y │ X │ . │ K │ ' │ Q │ G │ H │ F │ │
  28. * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
  29. * │ │ │ │ │ │ │ │ │
  30. * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  31. */
  32. // Row 1
  33. #define BP_DLR KC_GRV // $
  34. #define BP_DQUO KC_1 // "
  35. #define BP_LDAQ KC_2 // «
  36. #define BP_RDAQ KC_3 // »
  37. #define BP_LPRN KC_4 // (
  38. #define BP_RPRN KC_5 // )
  39. #define BP_AT KC_6 // @
  40. #define BP_PLUS KC_7 // +
  41. #define BP_MINS KC_8 // -
  42. #define BP_SLSH KC_9 // /
  43. #define BP_ASTR KC_0 // *
  44. #define BP_EQL KC_MINS // =
  45. #define BP_PERC KC_EQL // %
  46. // Row 2
  47. #define BP_B KC_Q // B
  48. #define BP_EACU KC_W // É
  49. #define BP_P KC_E // P
  50. #define BP_O KC_R // O
  51. #define BP_EGRV KC_T // È
  52. #define BP_DCIR KC_Y // ^ (dead)
  53. #define BP_V KC_U // V
  54. #define BP_D KC_I // D
  55. #define BP_L KC_O // L
  56. #define BP_J KC_P // J
  57. #define BP_Z KC_LBRC // Z
  58. #define BP_W KC_RBRC // W
  59. // Row 3
  60. #define BP_A KC_A // A
  61. #define BP_U KC_S // U
  62. #define BP_I KC_D // I
  63. #define BP_E KC_F // E
  64. #define BP_COMM KC_G // ,
  65. #define BP_C KC_H // C
  66. #define BP_T KC_J // T
  67. #define BP_S KC_K // S
  68. #define BP_R KC_L // R
  69. #define BP_N KC_SCLN // N
  70. #define BP_M KC_QUOT // M
  71. #define BP_CCED KC_BSLS // Ç
  72. // Row 4
  73. #define BP_ECIR KC_NUBS // Ê
  74. #define BP_AGRV KC_Z // À
  75. #define BP_Y KC_X // Y
  76. #define BP_X KC_C // X
  77. #define BP_DOT KC_V // .
  78. #define BP_K KC_B // K
  79. #define BP_QUOT KC_N // '
  80. #define BP_Q KC_M // Q
  81. #define BP_G KC_COMM // G
  82. #define BP_H KC_DOT // H
  83. #define BP_F KC_SLSH // F
  84. /* Shifted symbols
  85. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
  86. * │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ ` │ │
  87. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
  88. * │ │ │ │ │ │ │ ! │ │ │ │ │ │ │ │
  89. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
  90. * │ │ │ │ │ │ ; │ │ │ │ │ │ │ │ │
  91. * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
  92. * │ │ │ │ │ │ : │ │ ? │ │ │ │ │ │
  93. * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
  94. * │ │ │ │ │ │ │ │ │
  95. * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  96. */
  97. // Row 1
  98. #define BP_HASH S(BP_DLR) // #
  99. #define BP_1 S(BP_DQUO) // 1
  100. #define BP_2 S(BP_LDAQ) // 2
  101. #define BP_3 S(BP_RDAQ) // 3
  102. #define BP_4 S(BP_LPRN) // 4
  103. #define BP_5 S(BP_RPRN) // 5
  104. #define BP_6 S(BP_AT) // 6
  105. #define BP_7 S(BP_PLUS) // 7
  106. #define BP_8 S(BP_MINS) // 8
  107. #define BP_9 S(BP_SLSH) // 9
  108. #define BP_0 S(BP_ASTR) // 0
  109. #define BP_DEG S(BP_EQL) // °
  110. #define BP_GRV S(BP_PERC) // `
  111. // Row 2
  112. #define BP_EXLM S(BP_DCIR) // !
  113. // Row 3
  114. #define BP_SCLN S(BP_COMM) // ;
  115. // Row 4
  116. #define BP_COLN S(BP_DOT) // :
  117. #define BP_QUES S(BP_QUOT) // ?
  118. // Row 5
  119. #define BP_NBSP S(KC_SPC) //   (non-breaking space)
  120. /* AltGr symbols
  121. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
  122. * │ – │ — │ < │ > │ [ │ ] │ ^ │ ± │ − │ ÷ │ × │ ≠ │ ‰ │ │
  123. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
  124. * │ │ | │ ´ │ & │ Œ │ ` │ ¡ │ ˇ │ Ð │ / │ IJ │ Ə │ ˘ │ │
  125. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
  126. * │ │ Æ │ Ù │ ¨ │ € │ │ © │ Þ │ ẞ │ ® │ ~ │ ¯ │ ¸ │ │
  127. * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
  128. * │ │ │ \ │ { │ } │ … │ ~ │ ¿ │ ° │ │ † │ ˛ │ │
  129. * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
  130. * │ │ │ │ _ │ │ │ │ │
  131. * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  132. */
  133. // Row 1
  134. #define BP_NDSH ALGR(BP_DLR) // –
  135. #define BP_MDSH ALGR(BP_DQUO) // —
  136. #define BP_LABK ALGR(BP_LDAQ) // <
  137. #define BP_RABK ALGR(BP_RDAQ) // >
  138. #define BP_LBRC ALGR(BP_LPRN) // [
  139. #define BP_RBRC ALGR(BP_RPRN) // ]
  140. #define BP_CIRC ALGR(BP_AT) // ^
  141. #define BP_PLMN ALGR(BP_PLUS) // ±
  142. #define BP_MMNS ALGR(BP_MINS) // −
  143. #define BP_DIV ALGR(BP_SLSH) // ÷
  144. #define BP_MUL ALGR(BP_ASTR) // ×
  145. #define BP_NEQL ALGR(BP_EQL) // ≠
  146. #define BP_PERM ALGR(BP_PERC) // ‰
  147. // Row 2
  148. #define BP_PIPE ALGR(BP_B) // |
  149. #define BP_ACUT ALGR(BP_EACU) // ´ (dead)
  150. #define BP_AMPR ALGR(BP_P) // &
  151. #define BP_OE ALGR(BP_O) // Œ
  152. #define BP_DGRV ALGR(BP_EGRV) // ` (dead)
  153. #define BP_IEXL ALGR(BP_DCIR) // ¡
  154. #define BP_CARN ALGR(BP_V) // ˇ (dead)
  155. #define BP_ETH ALGR(BP_D) // Ð
  156. #define BP_DSLS ALGR(BP_L) // / (dead)
  157. #define BP_IJ ALGR(BP_J) // IJ
  158. #define BP_SCHW ALGR(BP_Z) // Ə
  159. #define BP_BREV ALGR(BP_W) // ˘ (dead)
  160. // Row 3
  161. #define BP_AE ALGR(BP_A) // Æ
  162. #define BP_UGRV ALGR(BP_U) // Ù
  163. #define BP_DIAE ALGR(BP_I) // ¨ (dead)
  164. #define BP_EURO ALGR(BP_E) // €
  165. #define BP_COPY ALGR(BP_C) // ©
  166. #define BP_THRN ALGR(BP_T) // Þ
  167. #define BP_SS ALGR(BP_S) // ẞ
  168. #define BP_REGD ALGR(BP_R) // ®
  169. #define BP_DTIL ALGR(BP_N) // ~ (dead)
  170. #define BP_MACR ALGR(BP_M) // ¯ (dead)
  171. #define BP_CEDL ALGR(BP_CCED) // ¸ (dead)
  172. // Row 4
  173. #define BP_BSLS ALGR(BP_AGRV) // (backslash)
  174. #define BP_LCBR ALGR(BP_Y) // {
  175. #define BP_RCBR ALGR(BP_X) // }
  176. #define BP_ELLP ALGR(BP_DOT) // …
  177. #define BP_TILD ALGR(BP_K) // ~
  178. #define BP_IQUE ALGR(BP_QUES) // ¿
  179. #define BP_RNGA ALGR(BP_Q) // ° (dead)
  180. #define BP_DGRK ALGR(BP_G) // µ (dead Greek key)
  181. #define BP_DAGG ALGR(BP_H) // †
  182. #define BP_OGON ALGR(BP_F) // ˛ (dead)
  183. // Row 5
  184. #define BP_UNDS ALGR(KC_SPC) // _
  185. /* Shift+AltGr symbols
  186. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
  187. * │ ¶ │ „ │ “ │ ” │ ≤ │ ≥ │ │ ¬ │ ¼ │ ½ │ ¾ │ ′ │ ″ │ │
  188. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
  189. * │ │ ¦ │ ˝ │ § │ │ │ │ │ │ │ │ │ │ │
  190. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
  191. * │ │ │ │ ˙ │ ¤ │ ̛ │ ſ │ │ │ ™ │ │ º │ , │ │
  192. * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
  193. * │ │ │ │ ‘ │ ’ │ · │ ⌨ │ ̉ │ ̣ │ │ ‡ │ ª │ │
  194. * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
  195. * │ │ │ │ │ │ │ │ │
  196. * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  197. */
  198. // Row 1
  199. #define BP_PARA S(ALGR(BP_DLR)) // ¶
  200. #define BP_DLQU S(ALGR(BP_DQUO)) // „
  201. #define BP_LDQU S(ALGR(BP_LDAQ)) // “
  202. #define BP_RDQU S(ALGR(BP_RDAQ)) // ”
  203. #define BP_LEQL S(ALGR(BP_LPRN)) // ≤
  204. #define BP_GEQL S(ALGR(BP_RPRN)) // ≥
  205. #define BP_NOT S(ALGR(BP_PLUS)) // ¬
  206. #define BP_QRTR S(ALGR(BP_MINS)) // ¼
  207. #define BP_HALF S(ALGR(BP_SLSH)) // ½
  208. #define BP_TQTR S(ALGR(BP_ASTR)) // ¾
  209. #define BP_PRIM S(ALGR(BP_EQL)) // ′
  210. #define BP_DPRM S(ALGR(BP_PERC)) // ″
  211. // Row 2
  212. #define BP_BRKP S(ALGR(BP_B)) // ¦
  213. #define BP_DACU S(ALGR(BP_EACU)) // ˝ (dead)
  214. #define BP_SECT S(ALGR(BP_P)) // §
  215. // Row 3
  216. #define BP_DOTA S(ALGR(BP_I)) // ˙ (dead)
  217. #define BP_CURR S(ALGR(BP_E)) // ¤ (dead)
  218. #define BP_HORN S(ALGR(BP_COMM)) // ̛ (dead)
  219. #define BP_LNGS S(ALGR(BP_C)) // ſ
  220. #define BP_TM S(ALGR(BP_R)) // ™
  221. #define BP_MORD S(ALGR(BP_M)) // º
  222. #define BP_DCMM S(ALGR(BP_CCED)) // , (dead)
  223. // Row 4
  224. #define BP_LSQU S(ALGR(BP_Y)) // ‘
  225. #define BP_RSQU S(ALGR(BP_X)) // ’
  226. #define BP_MDDT S(ALGR(BP_DOT)) // ·
  227. #define BP_KEYB S(ALGR(BP_K)) // ⌨
  228. #define BP_HOKA S(ALGR(BP_QUOT)) // ̉ (dead)
  229. #define BP_DOTB S(ALGR(BP_Q)) // ̣ (dead)
  230. #define BP_DDAG S(ALGR(BP_H)) // ‡
  231. #define BP_FORD S(ALGR(BP_F)) // ª
  232. // Row 5
  233. #define BP_NNBS S(ALGR(KC_SPC)) //   (narrow non-breaking space)