logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

keycodes_french_afnor_0.0.1.hjson (19935B)


  1. {
  2. "aliases": {
  3. /* French AZERTY - AFNOR NF Z71-300
  4. *
  5. * A standard for the French keyboard
  6. *
  7. * The project was launched at the end of 2015 on the proposal of the General
  8. * Delegation for the French language and the languages of France (Ministry
  9. * of Culture), starting from the observation that the current "azerty"
  10. * keyboards constrain the writing of French, languages regional and European
  11. * languages with Latin alphabet.
  12. *
  13. * For the first time, a standard (NF Z71-300) defines the placement of
  14. * characters on the French keyboard. It offers two layouts, one of which
  15. * closely follows the QWERTY keyboard used by most people who write in French.
  16. *
  17. * However, it is in many ways superior to the old keyboard:
  18. *
  19. * - it contains all the characters required to enter text in French (for example É, œ and ")
  20. * - it is designed to be more ergonomic and allow faster typing
  21. * - it includes almost 60 additional characters for entering foreign languages, technical content, etc
  22. * - however, the characters remain easy to locate thanks to intuitive groupings
  23. *
  24. * Source: https://norme-azerty.fr
  25. */
  26. /*
  27. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
  28. * │ @ │ à │ é │ è │ ê │ ( │ ) │ ‘ │ ’ │ « │ » │ ' │ ^ │ │
  29. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
  30. * │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ + │ │
  31. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
  32. * │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ / │ * │ │
  33. * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
  34. * │ │ < │ W │ X │ C │ V │ B │ N │ . │ , │ : │ ; │ │
  35. * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
  36. * │ │ │ │ │ │ │ │ │
  37. * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  38. */
  39. "KC_GRV": {
  40. "key": "FR_AT",
  41. "label": "@",
  42. }
  43. "KC_1": {
  44. "key": "FR_AGRV",
  45. "label": "à",
  46. }
  47. "KC_2": {
  48. "key": "FR_EACU",
  49. "label": "é",
  50. }
  51. "KC_3": {
  52. "key": "FR_EGRV",
  53. "label": "è",
  54. }
  55. "KC_4": {
  56. "key": "FR_ECIR",
  57. "label": "ê",
  58. }
  59. "KC_5": {
  60. "key": "FR_LPRN",
  61. "label": "(",
  62. }
  63. "KC_6": {
  64. "key": "FR_RPRN",
  65. "label": ")",
  66. }
  67. "KC_7": {
  68. "key": "FR_LSQU",
  69. "label": "‘",
  70. }
  71. "KC_8": {
  72. "key": "FR_RSQU",
  73. "label": "’",
  74. }
  75. "KC_9": {
  76. "key": "FR_LDAQ",
  77. "label": "«",
  78. }
  79. "KC_0": {
  80. "key": "FR_RDAQ",
  81. "label": "»",
  82. }
  83. "KC_MINS": {
  84. "key": "FR_QUOT",
  85. "label": "'",
  86. }
  87. "KC_EQL": {
  88. "key": "FR_DCIR",
  89. "label": "^ (dead)",
  90. }
  91. "KC_Q": {
  92. "key": "FR_A",
  93. "label": "A",
  94. }
  95. "KC_W": {
  96. "key": "FR_Z",
  97. "label": "Z",
  98. }
  99. "KC_E": {
  100. "key": "FR_E",
  101. "label": "E",
  102. }
  103. "KC_R": {
  104. "key": "FR_R",
  105. "label": "R",
  106. }
  107. "KC_T": {
  108. "key": "FR_T",
  109. "label": "T",
  110. }
  111. "KC_Y": {
  112. "key": "FR_Y",
  113. "label": "Y",
  114. }
  115. "KC_U": {
  116. "key": "FR_U",
  117. "label": "U",
  118. }
  119. "KC_I": {
  120. "key": "FR_I",
  121. "label": "I",
  122. }
  123. "KC_O": {
  124. "key": "FR_O",
  125. "label": "O",
  126. }
  127. "KC_P": {
  128. "key": "FR_P",
  129. "label": "P",
  130. }
  131. "KC_LBRC": {
  132. "key": "FR_MINS",
  133. "label": "-",
  134. }
  135. "KC_RBRC": {
  136. "key": "FR_PLUS",
  137. "label": "+",
  138. }
  139. "KC_A": {
  140. "key": "FR_Q",
  141. "label": "Q",
  142. }
  143. "KC_S": {
  144. "key": "FR_S",
  145. "label": "S",
  146. }
  147. "KC_D": {
  148. "key": "FR_D",
  149. "label": "D",
  150. }
  151. "KC_F": {
  152. "key": "FR_F",
  153. "label": "F",
  154. }
  155. "KC_G": {
  156. "key": "FR_G",
  157. "label": "G",
  158. }
  159. "KC_H": {
  160. "key": "FR_H",
  161. "label": "H",
  162. }
  163. "KC_J": {
  164. "key": "FR_J",
  165. "label": "J",
  166. }
  167. "KC_K": {
  168. "key": "FR_K",
  169. "label": "K",
  170. }
  171. "KC_L": {
  172. "key": "FR_L",
  173. "label": "L",
  174. }
  175. "KC_SCLN": {
  176. "key": "FR_M",
  177. "label": "M",
  178. }
  179. "KC_QUOT": {
  180. "key": "FR_SLSH",
  181. "label": "/",
  182. }
  183. "KC_NUHS": {
  184. "key": "FR_ASTR",
  185. "label": "*",
  186. }
  187. "KC_NUBS": {
  188. "key": "FR_LABK",
  189. "label": "<",
  190. }
  191. "KC_Z": {
  192. "key": "FR_W",
  193. "label": "W",
  194. }
  195. "KC_X": {
  196. "key": "FR_X",
  197. "label": "X",
  198. }
  199. "KC_C": {
  200. "key": "FR_C",
  201. "label": "C",
  202. }
  203. "KC_V": {
  204. "key": "FR_V",
  205. "label": "V",
  206. }
  207. "KC_B": {
  208. "key": "FR_B",
  209. "label": "B",
  210. }
  211. "KC_N": {
  212. "key": "FR_N",
  213. "label": "N",
  214. }
  215. "KC_M": {
  216. "key": "FR_DOT",
  217. "label": ".",
  218. }
  219. "KC_COMM": {
  220. "key": "FR_COMM",
  221. "label": ",",
  222. }
  223. "KC_DOT": {
  224. "key": "FR_COLN",
  225. "label": ":",
  226. }
  227. "KC_SLSH": {
  228. "key": "FR_SCLN",
  229. "label": ";",
  230. }
  231. /* Shifted symbols
  232. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
  233. * │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ " │ ¨ │ │
  234. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
  235. * │ │ │ │ │ │ │ │ │ │ │ │ – │ ± │ │
  236. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
  237. * │ │ │ │ │ │ │ │ │ │ │ │ \ │ ½ │ │
  238. * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
  239. * │ │ > │ │ │ │ │ │ │ ? │ ! │ … │ = │ │
  240. * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
  241. * │ │ │ │ │ │ │ │ │
  242. * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  243. */
  244. "S(FR_AT)": {
  245. "key": "FR_HASH",
  246. "label": "#",
  247. }
  248. "S(FR_AGRV)": {
  249. "key": "FR_1",
  250. "label": "1",
  251. }
  252. "S(FR_EACU)": {
  253. "key": "FR_2",
  254. "label": "2",
  255. }
  256. "S(FR_EGRV)": {
  257. "key": "FR_3",
  258. "label": "3",
  259. }
  260. "S(FR_ECIR)": {
  261. "key": "FR_4",
  262. "label": "4",
  263. }
  264. "S(FR_LPRN)": {
  265. "key": "FR_5",
  266. "label": "5",
  267. }
  268. "S(FR_RPRN)": {
  269. "key": "FR_6",
  270. "label": "6",
  271. }
  272. "S(FR_LSQU)": {
  273. "key": "FR_7",
  274. "label": "7",
  275. }
  276. "S(FR_RSQU)": {
  277. "key": "FR_8",
  278. "label": "8",
  279. }
  280. "S(FR_LDAQ)": {
  281. "key": "FR_9",
  282. "label": "9",
  283. }
  284. "S(FR_RDAQ)": {
  285. "key": "FR_0",
  286. "label": "0",
  287. }
  288. "S(FR_QUOT)": {
  289. "key": "FR_DQUO",
  290. "label": "\"",
  291. }
  292. "S(FR_DCIR)": {
  293. "key": "FR_DIAE",
  294. "label": "¨ (dead)",
  295. }
  296. "S(FR_MINS)": {
  297. "key": "FR_NDSH",
  298. "label": "–",
  299. }
  300. "S(FR_PLUS)": {
  301. "key": "FR_PLMN",
  302. "label": "±",
  303. }
  304. "S(FR_SLSH)": {
  305. "key": "FR_BSLS",
  306. "label": "\\",
  307. }
  308. "S(FR_ASTR)": {
  309. "key": "FR_HALF",
  310. "label": "½",
  311. }
  312. "S(FR_LABK)": {
  313. "key": "FR_RABK",
  314. "label": ">",
  315. }
  316. "S(FR_DOT)": {
  317. "key": "FR_QUES",
  318. "label": "?",
  319. }
  320. "S(FR_COMM)": {
  321. "key": "FR_EXLM",
  322. "label": "!",
  323. }
  324. "S(FR_COLN)": {
  325. "key": "FR_ELLP",
  326. "label": "…",
  327. }
  328. "S(FR_SCLN)": {
  329. "key": "FR_EQL",
  330. "label": "=",
  331. }
  332. /* AltGr symbols
  333. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
  334. * │ ˘ │ § │ ´ │ ` │ & │ [ │ ] │ ¯ │ _ │ “ │ ” │ ° │ ˇ │ │
  335. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
  336. * │ │ æ │ £ │ € │ ® │ { │ } │ ù │ ˙ │ œ │ % │ − │ † │ │
  337. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
  338. * │ │ θ │ ß │ $ │ ¤ │ µ │ Eu│ │ ∕ │ | │ ∞ │ ÷ │ × │ │
  339. * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
  340. * │ │ ≤ │ ʒ │ © │ ç │ ¸ │ − │ ~ │ ¿ │ ¡ │ · │ ≃ │ │
  341. * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
  342. * │ │ │ │ │ │ │ │ │
  343. * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  344. */
  345. "ALGR(FR_AT)": {
  346. "key": "FR_BREV",
  347. "label": "˘ (dead)",
  348. }
  349. "ALGR(FR_AGRV)": {
  350. "key": "FR_SECT",
  351. "label": "§",
  352. }
  353. "ALGR(FR_EACU)": {
  354. "key": "FR_ACUT",
  355. "label": "´ (dead)",
  356. }
  357. "ALGR(FR_EGRV)": {
  358. "key": "FR_GRV",
  359. "label": "` (dead)",
  360. }
  361. "ALGR(FR_ECIR)": {
  362. "key": "FR_AMPR",
  363. "label": "&",
  364. }
  365. "ALGR(FR_LPRN)": {
  366. "key": "FR_LBRC",
  367. "label": "[",
  368. }
  369. "ALGR(FR_RPRN)": {
  370. "key": "FR_RBRC",
  371. "label": "]",
  372. }
  373. "ALGR(FR_LSQU)": {
  374. "key": "FR_MACR",
  375. "label": "¯ (dead)",
  376. }
  377. "ALGR(FR_RSQU)": {
  378. "key": "FR_UNDS",
  379. "label": "_",
  380. }
  381. "ALGR(FR_LDAQ)": {
  382. "key": "FR_LDQU",
  383. "label": "“",
  384. }
  385. "ALGR(FR_RDAQ)": {
  386. "key": "FR_RDQU",
  387. "label": "”",
  388. }
  389. "ALGR(FR_QUOT)": {
  390. "key": "FR_DEG",
  391. "label": "°",
  392. }
  393. "ALGR(FR_DCIR)": {
  394. "key": "FR_CARN",
  395. "label": "ˇ (dead)",
  396. }
  397. "ALGR(FR_A)": {
  398. "key": "FR_AE",
  399. "label": "æ",
  400. }
  401. "ALGR(FR_Z)": {
  402. "key": "FR_PND",
  403. "label": "£",
  404. }
  405. "ALGR(FR_E)": {
  406. "key": "FR_EURO",
  407. "label": "€",
  408. }
  409. "ALGR(FR_R)": {
  410. "key": "FR_REGD",
  411. "label": "®",
  412. }
  413. "ALGR(FR_T)": {
  414. "key": "FR_LCBR",
  415. "label": "{",
  416. }
  417. "ALGR(FR_Y)": {
  418. "key": "FR_RCBR",
  419. "label": "}",
  420. }
  421. "ALGR(FR_U)": {
  422. "key": "FR_UGRV",
  423. "label": "ù",
  424. }
  425. "ALGR(FR_I)": {
  426. "key": "FR_DOTA",
  427. "label": "˙ (dead)",
  428. }
  429. "ALGR(FR_O)": {
  430. "key": "FR_OE",
  431. "label": "œ",
  432. }
  433. "ALGR(FR_P)": {
  434. "key": "FR_PERC",
  435. "label": "%",
  436. }
  437. "ALGR(FR_MINS)": {
  438. "key": "FR_MMNS",
  439. "label": "−",
  440. }
  441. "ALGR(FR_PLUS)": {
  442. "key": "FR_DAGG",
  443. "label": "†",
  444. }
  445. "ALGR(FR_Q)": {
  446. "key": "FR_THET",
  447. "label": "θ",
  448. }
  449. "ALGR(FR_S)": {
  450. "key": "FR_SS",
  451. "label": "ß",
  452. }
  453. "ALGR(FR_D)": {
  454. "key": "FR_DLR",
  455. "label": "$",
  456. }
  457. "ALGR(FR_F)": {
  458. "key": "FR_CURR",
  459. "label": "¤ (dead monetary key)",
  460. }
  461. "ALGR(FR_G)": {
  462. "key": "FR_DGRK",
  463. "label": "µ (dead Greek key)",
  464. }
  465. "ALGR(FR_H)": {
  466. "key": "FR_EU",
  467. "label": "Eu (dead European symbol key)",
  468. }
  469. "ALGR(FR_K)": {
  470. "key": "FR_DSLS",
  471. "label": "∕ (dead)",
  472. }
  473. "ALGR(FR_L)": {
  474. "key": "FR_PIPE",
  475. "label": "|",
  476. }
  477. "ALGR(FR_M)": {
  478. "key": "FR_INFN",
  479. "label": "∞",
  480. }
  481. "ALGR(FR_SLSH)": {
  482. "key": "FR_DIV",
  483. "label": "÷",
  484. }
  485. "ALGR(FR_ASTR)": {
  486. "key": "FR_MUL",
  487. "label": "×",
  488. }
  489. "ALGR(FR_LABK)": {
  490. "key": "FR_LEQL",
  491. "label": "≤",
  492. }
  493. "ALGR(FR_W)": {
  494. "key": "FR_EZH",
  495. "label": "ʒ",
  496. }
  497. "ALGR(FR_X)": {
  498. "key": "FR_COPY",
  499. "label": "©",
  500. }
  501. "ALGR(FR_C)": {
  502. "key": "FR_CCED",
  503. "label": "ç",
  504. }
  505. "ALGR(FR_V)": {
  506. "key": "FR_CEDL",
  507. "label": "¸ (dead)",
  508. }
  509. "ALGR(FR_B)": {
  510. "key": "FR_DMNS",
  511. "label": "− (dead)",
  512. }
  513. "ALGR(FR_N)": {
  514. "key": "FR_DTIL",
  515. "label": "~ (dead)",
  516. }
  517. "ALGR(FR_DOT)": {
  518. "key": "FR_IQUE",
  519. "label": "¿",
  520. }
  521. "ALGR(FR_COMM)": {
  522. "key": "FR_IEXL",
  523. "label": "¡",
  524. }
  525. "ALGR(FR_COLN)": {
  526. "key": "FR_MDDT",
  527. "label": "·",
  528. }
  529. "ALGR(FR_SCLN)": {
  530. "key": "FR_AEQL",
  531. "label": "≃",
  532. }
  533. /* Shift+AltGr symbols
  534. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
  535. * │ ̑ │ │ │ │ │ ˝ │ ̏ │ │ — │ ‹ │ › │ ˚ │ │ │
  536. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
  537. * │ │ │ │ │ │ ™ │ │ │ ̣ │ │ ‰ │ ‑ │ ‡ │ │
  538. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
  539. * │ │ │ │ │ │ │ ˍ │ │ │ │ │ √ │ ¼ │ │
  540. * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
  541. * │ │ ≥ │ │ │ │ ˛ │ │ │ │ ̦ │ │ ≠ │ │
  542. * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
  543. * │ │ │ │ │ │ │ │ │
  544. * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
  545. */
  546. "S(ALGR(FR_AT))": {
  547. "key": "FR_IBRV",
  548. "label": "̑ (dead)",
  549. }
  550. "S(ALGR(FR_LPRN))": {
  551. "key": "FR_DACU",
  552. "label": "˝ (dead)",
  553. }
  554. "S(ALGR(FR_RPRN))": {
  555. "key": "FR_DGRV",
  556. "label": "̏ (dead)",
  557. }
  558. "S(ALGR(FR_RSQU))": {
  559. "key": "FR_MDSH",
  560. "label": "—",
  561. }
  562. "S(ALGR(FR_LDAQ))": {
  563. "key": "FR_LSAQ",
  564. "label": "‹",
  565. }
  566. "S(ALGR(FR_RDAQ))": {
  567. "key": "FR_RSAQ",
  568. "label": "›",
  569. }
  570. "S(ALGR(FR_QUOT))": {
  571. "key": "FR_RNGA",
  572. "label": "˚ (dead)",
  573. }
  574. "S(ALGR(FR_T))": {
  575. "key": "FR_TM",
  576. "label": "™",
  577. }
  578. "S(ALGR(FR_I))": {
  579. "key": "FR_DOTB",
  580. "label": "̣ (dead)",
  581. }
  582. "S(ALGR(FR_P))": {
  583. "key": "FR_PERM",
  584. "label": "‰",
  585. }
  586. "S(ALGR(FR_MINS))": {
  587. "key": "FR_NBHY",
  588. "label": "‑ (non-breaking hyphen)",
  589. }
  590. "S(ALGR(FR_PLUS))": {
  591. "key": "FR_DDAG",
  592. "label": "‡",
  593. }
  594. "S(ALGR(FR_H))": {
  595. "key": "FR_MACB",
  596. "label": "ˍ (dead)",
  597. }
  598. "S(ALGR(FR_SLSH))": {
  599. "key": "FR_SQRT",
  600. "label": "√",
  601. }
  602. "S(ALGR(FR_ASTR))": {
  603. "key": "FR_QRTR",
  604. "label": "¼",
  605. }
  606. "S(ALGR(FR_LABK))": {
  607. "key": "FR_GEQL",
  608. "label": "≥",
  609. }
  610. "S(ALGR(FR_V))": {
  611. "key": "FR_OGON",
  612. "label": "˛ (dead)",
  613. }
  614. "S(ALGR(FR_COMM))": {
  615. "key": "FR_DCMM",
  616. "label": "̦ (dead)",
  617. }
  618. "S(ALGR(FR_SCLN))": {
  619. "key": "FR_NEQL",
  620. "label": "≠",
  621. }
  622. }
  623. }