|
|
|
@ -19,10 +19,10 @@ |
|
|
|
|
* A standard for the French keyboard |
|
|
|
|
* |
|
|
|
|
* The project was launched at the end of 2015 on the proposal of the General |
|
|
|
|
* Delegation for the French language and the languages of France (Ministry |
|
|
|
|
* Delegation for the French language and the languages of France (Ministry |
|
|
|
|
* of Culture), starting from the observation that the current "azerty" |
|
|
|
|
* keyboards constrain the writing of French, languages regional and European |
|
|
|
|
* languages with Latin alphabet. |
|
|
|
|
* languages with Latin alphabet. |
|
|
|
|
* |
|
|
|
|
* For the first time, a standard (NF Z71-300) defines the placement of |
|
|
|
|
* characters on the French keyboard. It offers two layouts, one of which |
|
|
|
@ -46,15 +46,15 @@ |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ |
|
|
|
|
* │ @ │ à │ é │ è │ ê │ ( │ ) │ ‘ │ ’ │ « │ » │ ' │ ^ │ │ |
|
|
|
|
* │ @ │ à │ é │ è │ ê │ ( │ ) │ ‘ │ ’ │ « │ » │ ' │ ^ │ │ |
|
|
|
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ |
|
|
|
|
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ + │ │ |
|
|
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ |
|
|
|
|
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ / │ * │ │ |
|
|
|
|
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ + │ │ |
|
|
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ |
|
|
|
|
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ / │ * │ │ |
|
|
|
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ |
|
|
|
|
* │ │ < │ W │ X │ C │ V │ B │ N │ . │ , │ : │ ; │ │ |
|
|
|
|
* │ │ < │ W │ X │ C │ V │ B │ N │ . │ , │ : │ ; │ │ |
|
|
|
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ |
|
|
|
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ |
|
|
|
|
*/ |
|
|
|
|
// Row 1
|
|
|
|
@ -112,15 +112,15 @@ |
|
|
|
|
|
|
|
|
|
/* Shifted symbols
|
|
|
|
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ |
|
|
|
|
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ " │ ¨ │ │ |
|
|
|
|
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ " │ ¨ │ │ |
|
|
|
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ │ │ │ – │ ± │ │ |
|
|
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ │ │ │ \ │ ½ │ │ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ │ │ │ – │ ± │ │ |
|
|
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ │ │ │ \ │ ½ │ │ |
|
|
|
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ |
|
|
|
|
* │ │ > │ │ │ │ │ │ │ ? │ ! │ … │ = │ │ |
|
|
|
|
* │ │ > │ │ │ │ │ │ │ ? │ ! │ … │ = │ │ |
|
|
|
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ |
|
|
|
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ |
|
|
|
|
*/ |
|
|
|
|
// Row 1
|
|
|
|
@ -152,15 +152,15 @@ |
|
|
|
|
|
|
|
|
|
/* AltGr symbols
|
|
|
|
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ |
|
|
|
|
* │ ˘ │ § │ ´ │ ` │ & │ [ │ ] │ ¯ │ _ │ “ │ ” │ ° │ ˇ │ │ |
|
|
|
|
* │ ˘ │ § │ ´ │ ` │ & │ [ │ ] │ ¯ │ _ │ “ │ ” │ ° │ ˇ │ │ |
|
|
|
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ |
|
|
|
|
* │ │ æ │ £ │ € │ ® │ { │ } │ ù │ ˙ │ œ │ % │ − │ † │ │ |
|
|
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ |
|
|
|
|
* │ │ θ │ ß │ $ │ ¤ │ µ │ Eu│ │ ∕ │ | │ ∞ │ ÷ │ × │ │ |
|
|
|
|
* │ │ æ │ £ │ € │ ® │ { │ } │ ù │ ˙ │ œ │ % │ − │ † │ │ |
|
|
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ |
|
|
|
|
* │ │ θ │ ß │ $ │ ¤ │ µ │ Eu│ │ ∕ │ | │ ∞ │ ÷ │ × │ │ |
|
|
|
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ |
|
|
|
|
* │ │ ≤ │ ʒ │ © │ ç │ ¸ │ − │ ~ │ ¿ │ ¡ │ · │ ≃ │ │ |
|
|
|
|
* │ │ ≤ │ ʒ │ © │ ç │ ¸ │ − │ ~ │ ¿ │ ¡ │ · │ ≃ │ │ |
|
|
|
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ |
|
|
|
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ |
|
|
|
|
*/ |
|
|
|
|
// Row 1
|
|
|
|
@ -217,28 +217,28 @@ |
|
|
|
|
|
|
|
|
|
/* Shift+AltGr symbols
|
|
|
|
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ |
|
|
|
|
* │ ̑ │ │ │ │ │ ˝ │ ̏ │ │ — │ ‹ │ › │ ˚ │ │ │ |
|
|
|
|
* │ ̑ │ │ │ │ │ ˝ │ ̏ │ │ — │ ‹ │ › │ ˚ │ │ │ |
|
|
|
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ |
|
|
|
|
* │ │ │ │ │ │ ™ │ │ │ ̣ │ │ ‰ │ ‑ │ ‡ │ │ |
|
|
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ |
|
|
|
|
* │ │ │ │ │ │ │ ˍ │ │ │ │ │ √ │ ¼ │ │ |
|
|
|
|
* │ │ │ │ │ │ ™ │ │ │ ̣ │ │ ‰ │ ‑ │ ‡ │ │ |
|
|
|
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ |
|
|
|
|
* │ │ │ │ │ │ │ ˍ │ │ │ │ │ √ │ ¼ │ │ |
|
|
|
|
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ |
|
|
|
|
* │ │ ≥ │ │ │ │ ˛ │ │ │ │ ̦ │ │ ≠ │ │ |
|
|
|
|
* │ │ ≥ │ │ │ │ ˛ │ │ │ │ ̦ │ │ ≠ │ │ |
|
|
|
|
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ |
|
|
|
|
* │ │ │ │ │ │ │ │ │ |
|
|
|
|
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ |
|
|
|
|
*/ |
|
|
|
|
// Row 1
|
|
|
|
|
#define FR_IBRV S(ALGR(FR_AT)) // ̑ (dead)
|
|
|
|
|
#define FR_IBRV S(ALGR(FR_AT)) // ̑ (dead)
|
|
|
|
|
#define FR_DACU S(ALGR(FR_LPRN)) // ˝ (dead)
|
|
|
|
|
#define FR_DGRV S(ALGR(FR_RPRN)) // ̏ (dead)
|
|
|
|
|
#define FR_DGRV S(ALGR(FR_RPRN)) // ̏ (dead)
|
|
|
|
|
#define FR_MDSH S(ALGR(FR_RSQU)) // —
|
|
|
|
|
#define FR_LSAQ S(ALGR(FR_LDAQ)) // ‹
|
|
|
|
|
#define FR_RSAQ S(ALGR(FR_RDAQ)) // ›
|
|
|
|
|
#define FR_RNGA S(ALGR(FR_QUOT)) // ˚ (dead)
|
|
|
|
|
// Row 2
|
|
|
|
|
#define FR_TM S(ALGR(FR_T)) // ™
|
|
|
|
|
#define FR_DOTB S(ALGR(FR_I)) // ̣ (dead)
|
|
|
|
|
#define FR_DOTB S(ALGR(FR_I)) // ̣ (dead)
|
|
|
|
|
#define FR_PERM S(ALGR(FR_P)) // ‰
|
|
|
|
|
#define FR_NBHY S(ALGR(FR_MINS)) // ‑ (non-breaking hyphen)
|
|
|
|
|
#define FR_DDAG S(ALGR(FR_PLUS)) // ‡
|
|
|
|
@ -249,5 +249,5 @@ |
|
|
|
|
// Row 4
|
|
|
|
|
#define FR_GEQL S(ALGR(FR_LABK)) // ≥
|
|
|
|
|
#define FR_OGON S(ALGR(FR_V)) // ˛ (dead)
|
|
|
|
|
#define FR_DCMM S(ALGR(FR_COMM)) // ̦ (dead)
|
|
|
|
|
#define FR_DCMM S(ALGR(FR_COMM)) // ̦ (dead)
|
|
|
|
|
#define FR_NEQL S(ALGR(FR_SCLN)) // ≠
|
|
|
|
|