From e1d7a4ee11faf27005d2b0f954974a96f64e87ee Mon Sep 17 00:00:00 2001 From: JacquesHumule Date: Fri, 16 Jan 2026 10:29:14 +0100 Subject: [PATCH 1/3] feat(layout): add azerty_AFNOR layout (@JacquesHumule) --- frontend/static/layouts/azerty_AFNOR.json | 63 +++++++++++++++++++++++ packages/schemas/src/layouts.ts | 1 + 2 files changed, 64 insertions(+) create mode 100644 frontend/static/layouts/azerty_AFNOR.json diff --git a/frontend/static/layouts/azerty_AFNOR.json b/frontend/static/layouts/azerty_AFNOR.json new file mode 100644 index 000000000000..83878c72d4bb --- /dev/null +++ b/frontend/static/layouts/azerty_AFNOR.json @@ -0,0 +1,63 @@ +{ + "keymapShowTopRow": true, + "type": "iso", + "keys": { + "row1": [ + ["@", "#", "˘", "◌̑"], + ["à", "1", "§", "À"], + ["é", "2", "´"], + ["é", "3", "`", "Ê"], + ["ê", "4", "&", "Ê"], + ["(", "5", "[", "˝"], + [")", "6", "]", "◌̏"], + ["‘", "7", "¯"], + ["’", "8", "_", "—"], + ["«", "9", "“", "‹"], + ["»", "0", "”", "›"], + ["'", "\"", "°", "˚"], + ["^", "¨", "ˇ"] + ], + "row2": [ + ["a", "A", "æ", "Æ"], + ["z", "Z", "£"], + ["e", "E", "€"], + ["r", "R", "®"], + ["t", "T", "{", "™"], + ["y", "Y", "}"], + ["u", "U", "ù", "Ù"], + ["i", "I", "˙"], + ["o", "O", "œ", "Œ"], + ["p", "P", "%", "‰"], + ["-", "–", "−", "‑"], + ["+", "±", "†", "‡"] + ], + "row3": [ + ["q", "Q", "θ"], + ["s", "S", "ß", "ẞ"], + ["d", "D", "$"], + ["f", "F", "¤"], + ["g", "G", "µ"], + ["h", "H"], + ["j", "J"], + ["k", "K", "⁄"], + ["l", "L", "|"], + ["m", "M", "∞"], + ["/", "\\", "÷", "√"], + ["*", "½", "×", "¼"] + ], + "row4": [ + ["<", ">", "≤", "≥"], + ["w", "W", "ʒ", "Ʒ"], + ["x", "X", "©"], + ["c", "C", "ç", "Ç"], + ["v", "V", "¸", "˛"], + ["b", "B"], + ["n", "N", "~"], + [".", "?", "¿"], + [",", "!", "¡"], + [":", "…", "·"], + [";", "=", "≃", "≠"] + ], + "row5": [[" ", " ", " ", " "]] + } +} diff --git a/packages/schemas/src/layouts.ts b/packages/schemas/src/layouts.ts index 94de81ef32df..4862fdd70d54 100644 --- a/packages/schemas/src/layouts.ts +++ b/packages/schemas/src/layouts.ts @@ -232,6 +232,7 @@ export const LayoutNameSchema = z.enum( "persian_standard_colemak", "ergo_split46", "tamil99", + "azerty_AFNOR", ], { errorMap: customEnumErrorHandler("Must be a supported layout"), From ca28a052e24f466a6d97cf81f47d4a0b7260228b Mon Sep 17 00:00:00 2001 From: JacquesHumule Date: Fri, 16 Jan 2026 10:37:35 +0100 Subject: [PATCH 2/3] fix: remove some ill-formed diacritics --- frontend/static/layouts/azerty_AFNOR.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/static/layouts/azerty_AFNOR.json b/frontend/static/layouts/azerty_AFNOR.json index 83878c72d4bb..44ea011be8d5 100644 --- a/frontend/static/layouts/azerty_AFNOR.json +++ b/frontend/static/layouts/azerty_AFNOR.json @@ -3,13 +3,13 @@ "type": "iso", "keys": { "row1": [ - ["@", "#", "˘", "◌̑"], + ["@", "#", "˘"], ["à", "1", "§", "À"], ["é", "2", "´"], ["é", "3", "`", "Ê"], ["ê", "4", "&", "Ê"], ["(", "5", "[", "˝"], - [")", "6", "]", "◌̏"], + [")", "6", "]"], ["‘", "7", "¯"], ["’", "8", "_", "—"], ["«", "9", "“", "‹"], From 219c224fbb363b07a7f781c760461286527ddfd5 Mon Sep 17 00:00:00 2001 From: JacquesHumule Date: Fri, 16 Jan 2026 10:39:19 +0100 Subject: [PATCH 3/3] fix: some capital letters --- frontend/static/layouts/azerty_AFNOR.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/static/layouts/azerty_AFNOR.json b/frontend/static/layouts/azerty_AFNOR.json index 44ea011be8d5..8ee111f25386 100644 --- a/frontend/static/layouts/azerty_AFNOR.json +++ b/frontend/static/layouts/azerty_AFNOR.json @@ -5,8 +5,8 @@ "row1": [ ["@", "#", "˘"], ["à", "1", "§", "À"], - ["é", "2", "´"], - ["é", "3", "`", "Ê"], + ["é", "2", "´", "É"], + ["é", "3", "`", "È"], ["ê", "4", "&", "Ê"], ["(", "5", "[", "˝"], [")", "6", "]"],