You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

248 lines
12 KiB

  1. /* Copyright 2016 Sébastien Pérochon
  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. * A Z E R T Y U I O P ^ $
  24. *
  25. * Q S D F G H J K L M ù `
  26. *
  27. * < W X C V B N , ; : =
  28. *
  29. *
  30. *
  31. */
  32. // Row 1
  33. #define FR_AT KC_GRV // @
  34. #define FR_AMPR KC_1 // &
  35. #define FR_LEAC KC_2 // é
  36. #define FR_DQUO KC_3 // "
  37. #define FR_QUOT KC_4 // '
  38. #define FR_LPRN KC_5 // (
  39. #define FR_SECT KC_6 // §
  40. #define FR_LEGR KC_7 // è
  41. #define FR_EXLM KC_8 // !
  42. #define FR_LCCE KC_9 // ç
  43. #define FR_LAGR KC_0 // à
  44. #define FR_RPRN KC_MINS // )
  45. #define FR_MINS KC_EQL // -
  46. // Row 2
  47. #define FR_A KC_Q // A
  48. #define FR_Z KC_W // Z
  49. #define FR_E KC_E // E
  50. #define FR_R KC_R // R
  51. #define FR_T KC_T // T
  52. #define FR_Y KC_Y // Y
  53. #define FR_U KC_U // U
  54. #define FR_I KC_I // I
  55. #define FR_O KC_O // O
  56. #define FR_P KC_P // P
  57. #define FR_CIRC KC_LBRC // ^
  58. #define FR_DLR KC_RBRC // $
  59. // Row 3
  60. #define FR_Q KC_A // Q
  61. #define FR_S KC_S // S
  62. #define FR_D KC_D // D
  63. #define FR_F KC_F // F
  64. #define FR_G KC_G // G
  65. #define FR_H KC_H // H
  66. #define FR_J KC_J // J
  67. #define FR_K KC_K // K
  68. #define FR_L KC_L // L
  69. #define FR_M KC_SCLN // M
  70. #define FR_LUGR KC_QUOT // ù
  71. #define FR_GRV KC_NUHS // `
  72. // Row 4
  73. #define FR_LABK KC_NUBS // <
  74. #define FR_W KC_Z // W
  75. #define FR_X KC_X // X
  76. #define FR_C KC_C // C
  77. #define FR_V KC_V // V
  78. #define FR_B KC_B // B
  79. #define FR_N KC_N // N
  80. #define FR_COMM KC_M // ,
  81. #define FR_SCLN KC_COMM // ;
  82. #define FR_COLN KC_DOT // :
  83. #define FR_EQL KC_SLSH // =
  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 FR_HASH S(FR_AT) // #
  99. #define FR_1 S(FR_AMPR) // 1
  100. #define FR_2 S(FR_LEAC) // 2
  101. #define FR_3 S(FR_DQUO) // 3
  102. #define FR_4 S(FR_QUOT) // 4
  103. #define FR_5 S(FR_LPRN) // 5
  104. #define FR_6 S(FR_SECT) // 6
  105. #define FR_7 S(FR_LEGR) // 7
  106. #define FR_8 S(FR_EXLM) // 8
  107. #define FR_9 S(FR_LCCE) // 9
  108. #define FR_0 S(FR_LAGR) // 0
  109. #define FR_DEG S(FR_RPRN) // °
  110. #define FR_UNDS S(FR_MINS) // _
  111. // Row 2
  112. #define FR_DIAE S(FR_CIRC) // ¨ (dead)
  113. #define FR_ASTR S(FR_DLR) // *
  114. // Row 3
  115. #define FR_PERC S(FR_LUGR) // %
  116. #define FR_PND S(FR_GRV) // £
  117. // Row 4
  118. #define FR_RABK S(FR_LABK) // >
  119. #define FR_QUES S(FR_COMM) // ?
  120. #define FR_DOT S(FR_SCLN) // .
  121. #define FR_SLSH S(FR_COLN) // /
  122. #define FR_PLUS S(FR_EQL) // +
  123. /* Alted symbols
  124. *
  125. * ë { « ¡ Ç Ø }
  126. *
  127. * Æ Â Ê ® Ú º î Œ π Ô
  128. *
  129. * Ò ƒ Ì Ï È ¬ µ Ù
  130. *
  131. * © ß ~ ÷
  132. *
  133. *
  134. *
  135. */
  136. // Row 1
  137. #define FR_BULT A(FR_AT) // •
  138. #define FR_APPL A(FR_AMPR) //  (Apple logo)
  139. #define FR_LEDI A(FR_LEAC) // ë
  140. #define FR_LDQU A(FR_DQUO) // “
  141. #define FR_LSQU A(FR_QUOT) // ‘
  142. #define FR_LCBR A(FR_LPRN) // {
  143. #define FR_PILC A(FR_SECT) // ¶
  144. #define FR_LDAQ A(FR_LEGR) // «
  145. #define FR_IEXL A(FR_EXLM) // ¡
  146. #define FR_CCCE A(FR_LCCE) // Ç
  147. #define FR_OSTR A(FR_LAGR) // Ø
  148. #define FR_RCBR A(FR_RPRN) // }
  149. #define FR_MDSH A(FR_MINS) // —
  150. // Row 2
  151. #define FR_AE A(FR_A) // Æ
  152. #define FR_CACI A(FR_Z) // Â
  153. #define FR_ECIR A(FR_E) // Ê
  154. #define FR_REGD A(FR_R) // ®
  155. #define FR_DAGG A(FR_T) // †
  156. #define FR_CUAC A(FR_Y) // Ú
  157. #define FR_MORD A(FR_U) // º
  158. #define FR_LICI A(FR_I) // î
  159. #define FR_OE A(FR_O) // Œ
  160. #define FR_PI A(FR_P) // π
  161. #define FR_OCIR A(FR_CIRC) // Ô
  162. #define FR_EURO A(FR_DLR) // €
  163. // Row 3
  164. #define FR_DDAG A(FR_Q) // ‡
  165. #define FR_COGR A(FR_S) // Ò
  166. #define FR_PDIF A(FR_D) // ∂
  167. #define FR_FHK A(FR_F) // ƒ
  168. #define FR_FI A(FR_G) // fi
  169. #define FR_CIGR A(FR_H) // Ì
  170. #define FR_CIDI A(FR_J) // Ï
  171. #define FR_CEGR A(FR_K) // È
  172. #define FR_NOT A(FR_L) // ¬
  173. #define FR_MICR A(FR_M) // µ
  174. #define FR_CUGR A(FR_LUGR) // Ù
  175. // Row 4
  176. #define FR_LTEQ A(FR_LABK) // ≤
  177. #define FR_LSAQ A(FR_W) // ‹
  178. #define FR_AEQL A(FR_X) // ≈
  179. #define FR_COPY A(FR_C) // ©
  180. #define FR_LOZN A(FR_V) // ◊
  181. #define FR_SS A(FR_B) // ß
  182. #define FR_TILD A(FR_N) // ~ (dead)
  183. #define FR_INFN A(FR_COMM) // ∞
  184. #define FR_ELLP A(FR_SCLN) // …
  185. #define FR_DIV A(FR_COLN) // ÷
  186. #define FR_NEQL A(FR_EQL) // ≠
  187. /* Shift+Alted symbols
  188. *
  189. * Ÿ ´ [ å » Û Á ]
  190. *
  191. * Å ª ï ¥
  192. *
  193. * Ω · Î Í Ë | Ó
  194. *
  195. * ¢ ı ¿ \ ±
  196. *
  197. *
  198. *
  199. */
  200. // Row 1
  201. #define FR_CYDI S(A(FR_AT)) // Ÿ
  202. #define FR_ACUT S(A(FR_AMPR)) // ´ (dead)
  203. #define FR_DLQU S(A(FR_LEAC)) // „
  204. #define FR_LBRC S(A(FR_LPRN)) // [
  205. #define FR_LARI S(A(FR_SECT)) // å
  206. #define FR_RDAQ S(A(FR_LEGR)) // »
  207. #define FR_CUCI S(A(FR_EXLM)) // Û
  208. #define FR_CAAC S(A(FR_LCCE)) // Á
  209. #define FR_RBRC S(A(FR_RPRN)) // ]
  210. #define FR_NDSH S(A(FR_MINS)) // –
  211. // Row 2
  212. #define FR_CARI S(A(FR_Z)) // Å
  213. #define FR_SLQU S(A(FR_R)) // ‚
  214. #define FR_TM S(A(FR_T)) // ™
  215. #define FR_FORD S(A(FR_U)) // ª
  216. #define FR_LIDI S(A(FR_I)) // ï
  217. #define FR_NARP S(A(FR_P)) // ∏
  218. #define FR_YEN S(A(FR_DLR)) // ¥
  219. // Row 3
  220. #define FR_OMEG S(A(FR_Q)) // Ω
  221. #define FR_NARS S(A(FR_S)) // ∑
  222. #define FR_INCR S(A(FR_D)) // ∆
  223. #define FR_MDDT S(A(FR_F)) // ·
  224. #define FR_FL S(A(FR_G)) // fl
  225. #define FR_CICI S(A(FR_H)) // Î
  226. #define FR_CIAC S(A(FR_J)) // Í
  227. #define FR_CEDI S(A(FR_K)) // Ë
  228. #define FR_PIPE S(A(FR_L)) // |
  229. #define FR_COAC S(A(FR_M)) // Ó
  230. #define FR_PERM S(A(FR_LUGR)) // ‰
  231. // Row 4
  232. #define FR_GTEQ S(A(FR_LABK)) // ≥
  233. #define FR_RSAQ S(A(FR_W)) // ›
  234. #define FR_FRSL S(A(FR_X)) // ⁄
  235. #define FR_CENT S(A(FR_C)) // ¢
  236. #define FR_SQRT S(A(FR_V)) // √
  237. #define FR_INTG S(A(FR_B)) // ∫
  238. #define FR_DLSI S(A(FR_N)) // ı
  239. #define FR_IQUE S(A(FR_COMM)) // ¿
  240. #define FR_BSLS S(A(FR_COLN)) // (backslash)
  241. #define FR_PLMN S(A(FR_EQL)) // ±