Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions frontend/static/layouts/azerty_AFNOR.json
Original file line number Diff line number Diff line change
@@ -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": [[" ", " ", " ", " "]]
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The row5 definition includes four identical space characters. While this is technically valid according to the schema, it's unusual compared to other layouts in the codebase which typically use a single space character. Consider simplifying this to [[" "]] unless there's a specific reason for the AFNOR standard to define multiple space variants at different modifier levels.

Suggested change
"row5": [[" ", " ", " ", ""]]
"row5": [[" "]]

Copilot uses AI. Check for mistakes.
}
}
1 change: 1 addition & 0 deletions packages/schemas/src/layouts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ export const LayoutNameSchema = z.enum(
"persian_standard_colemak",
"ergo_split46",
"tamil99",
"azerty_AFNOR",
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The layout name "azerty_AFNOR" is placed at the end of the enum list (line 235), but following the existing convention in the codebase, it should be placed immediately after "azerty" (around line 47). This follows the pattern where "bepo_AFNOR" is placed right after "bepo" on lines 48-49.

Copilot uses AI. Check for mistakes.
],
{
errorMap: customEnumErrorHandler("Must be a supported layout"),
Expand Down
Loading