Files
EurKEY-macOS/spec/eurkey-v2.0-parsed.json
Felix Förtsch 7084817dab add validation infrastructure, fix "6" key bug in v1.3
- add keylayout XML parser (parse_keylayout.py) that extracts all key
  mappings, dead key compositions, modifier layers from .keylayout files
- add validation script (validate_layouts.py) that compares layouts against
  v1.3 reference with per-version exception support
- fix action id="6" outputting "p" instead of "6" in v1.3
- generate reference JSON for all 4 layout versions
- document known intentional differences: v1.2 (no ¬ dead key, § vs ẞ),
  v1.4 (ẞ on §/` caps, extra ¬ composition)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 17:06:48 +01:00

2281 lines
34 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "EurKEY v2.0",
"group": "126",
"id": "-31468",
"modifierMap": {
"f4": {
"defaultIndex": "7",
"selects": [
{
"mapIndex": "0",
"modifiers": [
"command?",
"anyShift? caps? command"
]
},
{
"mapIndex": "1",
"modifiers": [
"anyShift caps?"
]
},
{
"mapIndex": "2",
"modifiers": [
"caps"
]
},
{
"mapIndex": "3",
"modifiers": [
"anyOption"
]
},
{
"mapIndex": "4",
"modifiers": [
"anyShift caps? anyOption command?"
]
},
{
"mapIndex": "5",
"modifiers": [
"caps anyOption"
]
},
{
"mapIndex": "6",
"modifiers": [
"caps? anyOption command"
]
},
{
"mapIndex": "7",
"modifiers": [
"anyShift caps? anyOption? command? anyControl",
"anyShift? caps? anyOption command? anyControl",
"caps? anyOption? command? anyControl"
]
}
]
}
},
"actions": {
"__CTRL_U001E__": {
"none": "\u001e",
"⌥\\": "↑"
},
"!": {
"none": "!",
"⌥m": "¹",
"⌥⇧m": "≠"
},
"\"": {
"none": "\"",
"⌥m": "₊",
"⌥⇧m": "″"
},
"#": {
"none": "#",
"⌥⇧6": "Ǯ",
"⌥m": "³"
},
"$": {
"none": "$",
"⌥m": "⁴"
},
"%": {
"none": "%",
"⌥m": "⁵",
"⌥⇧m": "‰"
},
"&": {
"none": "&",
"⌥m": "⁷",
"⌥⇧m": "∧"
},
"'": {
"none": "'",
"⌥m": "₌",
"⌥⇧m": ""
},
"(": {
"none": "(",
"⌥m": "⁹"
},
")": {
"none": ")",
"⌥m": "⁰"
},
"*": {
"none": "*",
"⌥m": "⁸",
"⌥⇧m": "⊗"
},
"+": {
"none": "+",
"⌥\\": "⇔",
"⌥m": "⁺",
"⌥⇧m": "⊕"
},
"-": {
"none": "-",
"⌥m": "⁻",
"⌥⇧m": "±"
},
".": {
"none": ".",
"⌥⇧m": "⋅"
},
"0": {
"none": "0",
"⌥m": "₀"
},
"1": {
"none": "1",
"⌥\\": "№",
"⌥⇧7": "",
"⌥m": "₁"
},
"2": {
"none": "2",
"⌥\\": "½",
"⌥⇧7": "",
"⌥m": "₂"
},
"3": {
"none": "3",
"⌥\\": "⅓",
"⌥⇧7": "—",
"⌥⇧6": "ǯ",
"⌥m": "₃",
"⌥⇧m": "∛"
},
"4": {
"none": "4",
"⌥\\": "¼",
"⌥m": "₄",
"⌥⇧m": "∜"
},
"5": {
"none": "5",
"⌥\\": "⅔",
"⌥⇧7": "¯",
"⌥'": "´",
"⌥⇧6": "ˇ",
"⌥7": "˚",
"⌥m": "₅"
},
"6": {
"none": "6",
"⌥\\": "¾",
"⌥m": "₆"
},
"6 option": {
"next": "⌥6"
},
"7": {
"none": "7",
"⌥m": "₇",
"⌥⇧m": "∡"
},
"8": {
"none": "8",
"⌥m": "₈",
"⌥⇧m": "∠"
},
"9": {
"none": "9",
"⌥m": "₉",
"⌥⇧m": "∟"
},
":": {
"none": ":",
"⌥⇧m": "∴"
},
";": {
"none": ";",
"⌥m": "₋",
"⌥⇧m": "∵"
},
"<": {
"none": "<",
"⌥⇧m": "≤"
},
"=": {
"none": "=",
"⌥\\": "↔",
"⌥m": "⁼",
"⌥⇧m": "≝"
},
">": {
"none": ">",
"⌥⇧m": "≥"
},
"@": {
"none": "@",
"⌥m": "²"
},
"A": {
"none": "A",
"⌥6": "Â",
"⌥`": "À",
"⌥⇧`": "Ã",
"⌥⇧'": "Ä",
"⌥⇧7": "Ā",
"⌥'": "Á",
"⌥⇧6": "Ǎ",
"⌥7": "Å",
"⌥m": "Α",
"⌥⇧m": "∀"
},
"B": {
"none": "B",
"⌥⇧7": "Ƀ",
"⌥'": "Ɓ",
"⌥m": "Β",
"⌥⇧m": "⊇"
},
"C": {
"none": "C",
"⌥6": "Ĉ",
"⌥'": "Ć",
"⌥⇧6": "Č",
"⌥7": "Ċ",
"⌥m": "Χ",
"⌥⇧m": ""
},
"D": {
"none": "D",
"⌥⇧7": "Đ",
"⌥⇧6": "Ď",
"⌥m": "Δ",
"⌥⇧m": "∇"
},
"E": {
"none": "E",
"⌥6": "Ê",
"⌥`": "È",
"⌥⇧'": "Ë",
"⌥⇧7": "Ē",
"⌥'": "É",
"⌥⇧6": "Ě",
"⌥7": "Ė",
"⌥m": "Ε",
"⌥⇧m": "∃"
},
"F": {
"none": "F",
"⌥m": "Φ",
"⌥⇧m": "∎"
},
"G": {
"none": "G",
"⌥6": "Ĝ",
"⌥⇧7": "Ḡ",
"⌥'": "Ǵ",
"⌥⇧6": "Ǧ",
"⌥7": "Ġ",
"⌥m": "Γ",
"⌥⇧m": "⊃"
},
"H": {
"none": "H",
"⌥6": "Ĥ",
"⌥⇧'": "Ḧ",
"⌥\\": "⇐",
"⌥⇧7": "Ħ",
"⌥⇧6": "Ȟ",
"⌥m": "Θ",
"⌥⇧m": "⊅"
},
"I": {
"none": "I",
"⌥6": "Î",
"⌥`": "Ì",
"⌥⇧`": "Ĩ",
"⌥⇧'": "Ï",
"⌥\\": "⇗",
"⌥⇧7": "Ī",
"⌥'": "Í",
"⌥⇧6": "Ǐ",
"⌥7": "İ",
"⌥m": "Η"
},
"J": {
"none": "J",
"⌥6": "Ĵ",
"⌥\\": "⇓",
"⌥m": "Ι"
},
"K": {
"none": "K",
"⌥\\": "⇑",
"⌥'": "Ḱ",
"⌥⇧6": "Ǩ",
"⌥m": "Κ",
"⌥⇧m": "∌"
},
"L": {
"none": "L",
"⌥\\": "⇒",
"⌥⇧7": "Ḻ",
"⌥'": "Ł",
"⌥⇧6": "Ľ",
"⌥m": "Λ",
"⌥⇧m": "∦"
},
"M": {
"none": "M",
"⌥\\": "⇘",
"⌥'": "Ḿ",
"⌥m": "Μ",
"⌥⇧m": "∉"
},
"N": {
"none": "N",
"⌥⇧`": "Ñ",
"⌥\\": "⇙",
"⌥'": "Ń",
"⌥⇧6": "Ň",
"⌥m": "Ν",
"⌥⇧m": ""
},
"O": {
"none": "O",
"⌥6": "Ô",
"⌥`": "Ò",
"⌥⇧`": "Õ",
"⌥⇧'": "Ö",
"⌥⇧7": "Ō",
"⌥'": "Ó",
"⌥⇧6": "Ǒ",
"⌥m": "Ο",
"⌥⇧m": "∅"
},
"P": {
"none": "P",
"⌥'": "Ṕ",
"⌥m": "Π",
"⌥⇧m": ""
},
"Q": {
"none": "Q",
"⌥m": "Ω",
"⌥⇧m": ""
},
"R": {
"none": "R",
"⌥'": "Ŕ",
"⌥⇧6": "Ř",
"⌥m": "Ρ",
"⌥⇧m": ""
},
"S": {
"none": "S",
"⌥6": "Ŝ",
"⌥'": "Ś",
"⌥⇧6": "Š",
"⌥m": "Σ",
"⌥⇧m": "∫"
},
"T": {
"none": "T",
"⌥\\": "℠",
"⌥⇧7": "Ŧ",
"⌥⇧6": "Ť",
"⌥m": "Τ"
},
"U": {
"none": "U",
"⌥6": "Û",
"⌥`": "Ù",
"⌥⇧`": "Ũ",
"⌥⇧'": "Ü",
"⌥\\": "⇖",
"⌥⇧7": "Ū",
"⌥'": "Ú",
"⌥⇧6": "Ǔ",
"⌥7": "Ů",
"⌥m": "Ω",
"⌥⇧m": ""
},
"V": {
"none": "V",
"⌥m": "Β"
},
"W": {
"none": "W",
"⌥6": "Ŵ",
"⌥⇧'": "Ẅ",
"⌥'": "Ẃ",
"⌥m": "Ψ"
},
"X": {
"none": "X",
"⌥⇧'": "Ẍ",
"⌥m": "Ξ",
"⌥⇧m": "∄"
},
"Y": {
"none": "Y",
"⌥6": "Ŷ",
"⌥⇧`": "Ỹ",
"⌥⇧'": "Ÿ",
"⌥⇧7": "Ȳ",
"⌥'": "Ý",
"⌥m": "Υ"
},
"Z": {
"none": "Z",
"⌥'": "Ź",
"⌥⇧6": "Ž",
"⌥7": "Ż",
"⌥m": "Ζ",
"⌥⇧m": ""
},
"[": {
"none": "[",
"⌥m": "⁽"
},
"]": {
"none": "]",
"⌥m": "⁾"
},
"^": {
"none": "^",
"⌥m": "⁶",
"⌥⇧m": "℘"
},
"_": {
"none": "_"
},
"`": {
"next": "⌥`"
},
"a": {
"none": "a",
"⌥6": "â",
"⌥`": "à",
"⌥⇧`": "ã",
"⌥⇧'": "ä",
"⌥⇧7": "ā",
"⌥'": "á",
"⌥⇧6": "ǎ",
"⌥7": "å",
"⌥m": "α"
},
"b": {
"none": "b",
"⌥⇧7": "ƀ",
"⌥'": "ɓ",
"⌥m": "β",
"⌥⇧m": "⊆"
},
"c": {
"none": "c",
"⌥6": "ĉ",
"⌥\\": "©",
"⌥'": "ć",
"⌥⇧6": "č",
"⌥7": "ċ",
"⌥m": "χ",
"⌥⇧m": "∝"
},
"d": {
"none": "d",
"⌥⇧7": "đ",
"⌥⇧6": "ď",
"⌥m": "δ",
"⌥⇧m": "Δ"
},
"e": {
"none": "e",
"⌥6": "ê",
"⌥`": "è",
"⌥⇧'": "ë",
"⌥⇧7": "ē",
"⌥'": "é",
"⌥⇧6": "ě",
"⌥7": "ė",
"⌥m": "ε"
},
"f": {
"none": "f",
"⌥m": "φ",
"⌥⇧m": "ƒ"
},
"g": {
"none": "g",
"⌥6": "ĝ",
"⌥⇧7": "ḡ",
"⌥'": "ǵ",
"⌥⇧6": "ǧ",
"⌥7": "ġ",
"⌥m": "γ",
"⌥⇧m": "⊂"
},
"h": {
"none": "h",
"⌥6": "ĥ",
"⌥⇧'": "ḧ",
"⌥\\": "←",
"⌥⇧7": "ħ",
"⌥⇧6": "ȟ",
"⌥m": "θ",
"⌥⇧m": "⊄"
},
"i": {
"none": "i",
"⌥6": "î",
"⌥`": "ì",
"⌥⇧`": "ĩ",
"⌥⇧'": "ï",
"⌥\\": "↗",
"⌥⇧7": "ī",
"⌥'": "í",
"⌥⇧6": "ǐ",
"⌥m": "η",
"⌥⇧m": "∞"
},
"j": {
"none": "j",
"⌥6": "ĵ",
"⌥\\": "↓",
"⌥⇧6": "ǰ",
"⌥m": "ι"
},
"k 1": {
"none": "k",
"⌥\\": "↑",
"⌥'": "ḱ",
"⌥⇧6": "ǩ",
"⌥m": "κ",
"⌥⇧m": "∋"
},
"l 1": {
"none": "l",
"⌥\\": "→",
"⌥⇧7": "ḻ",
"⌥'": "ł",
"⌥⇧6": "ľ",
"⌥m": "λ",
"⌥⇧m": "∥"
},
"m": {
"none": "m",
"⌥\\": "↘",
"⌥'": "ḿ",
"⌥m": "μ",
"⌥⇧m": "∈"
},
"n": {
"none": "n",
"⌥⇧`": "ñ",
"⌥\\": "↙",
"⌥'": "ń",
"⌥⇧6": "ň",
"⌥m": "ν",
"⌥⇧m": "ⁿ"
},
"o": {
"none": "o",
"⌥6": "ô",
"⌥`": "ò",
"⌥⇧`": "õ",
"⌥⇧'": "ö",
"⌥⇧7": "ō",
"⌥'": "ó",
"⌥⇧6": "ǒ",
"⌥m": "ο",
"⌥⇧m": "∘"
},
"p": {
"none": "p",
"⌥\\": "℗",
"⌥'": "ṕ",
"⌥m": "π",
"⌥⇧m": "∂"
},
"q": {
"none": "q",
"⌥m": "ω"
},
"r": {
"none": "r",
"⌥\\": "®",
"⌥'": "ŕ",
"⌥⇧6": "ř",
"⌥m": "ρ",
"⌥⇧m": "√"
},
"s": {
"none": "s",
"⌥6": "ŝ",
"⌥\\": "§",
"⌥'": "ś",
"⌥⇧6": "š",
"⌥m": "σ",
"⌥⇧m": "∩"
},
"space": {
"none": " ",
"⌥6": "^",
"⌥`": "`",
"⌥⇧`": "~",
"⌥⇧'": "¨",
"⌥\\": "¬",
"⌥⇧7": "¯",
"⌥'": "´",
"⌥⇧6": "ˇ",
"⌥7": "˚",
"⌥⇧m": "√"
},
"t": {
"none": "t",
"⌥⇧'": "ẗ",
"⌥\\": "™",
"⌥⇧7": "ŧ",
"⌥⇧6": "ť",
"⌥m": "τ"
},
"u": {
"none": "u",
"⌥6": "û",
"⌥`": "ù",
"⌥⇧`": "ũ",
"⌥⇧'": "ü",
"⌥\\": "↖",
"⌥⇧7": "ū",
"⌥'": "ú",
"⌥⇧6": "ǔ",
"⌥7": "ů",
"⌥m": "ω",
"⌥⇧m": ""
},
"v": {
"none": "v",
"⌥m": "β"
},
"w": {
"none": "w",
"⌥6": "ŵ",
"⌥⇧'": "ẅ",
"⌥'": "ẃ",
"⌥7": "ẘ",
"⌥m": "ψ"
},
"x": {
"none": "x",
"⌥⇧'": "ẍ",
"⌥m": "ξ"
},
"y": {
"none": "y",
"⌥6": "ŷ",
"⌥⇧`": "ỹ",
"⌥⇧'": "ÿ",
"⌥⇧7": "ȳ",
"⌥'": "ý",
"⌥7": "ẙ",
"⌥m": "υ"
},
"z": {
"none": "z",
"⌥'": "ź",
"⌥⇧6": "ž",
"⌥7": "ż",
"⌥m": "ζ",
"⌥⇧m": "↯"
},
"{": {
"none": "{",
"⌥m": "₍"
},
"|": {
"none": "|",
"⌥⇧m": ""
},
"}": {
"none": "}",
"⌥m": "₎"
},
"~": {
"none": "~",
"⌥⇧m": "≈"
},
"~ option": {
"next": "⌥⇧`"
},
"¨": {
"next": "⌥⇧'"
},
"¬": {
"next": "⌥\\"
},
"¯": {
"next": "⌥⇧7"
},
"´": {
"next": "⌥'"
},
"Ä": {
"none": "Ä",
"⌥`": "Ą"
},
"Æ": {
"none": "Æ",
"⌥⇧7": "Ǣ",
"⌥'": "Ǽ"
},
"Ë": {
"none": "Ë",
"⌥`": "Ę"
},
"Ï": {
"none": "Ï",
"⌥`": "Į"
},
"Ö": {
"none": "Ö",
"⌥`": "Ǫ"
},
"Ø": {
"none": "Ø",
"⌥'": "Ǿ"
},
"Ü": {
"none": "Ü",
"⌥`": "Ų",
"⌥⇧6": "Ǚ"
},
"ä": {
"none": "ä",
"⌥`": "ą"
},
"æ": {
"none": "æ",
"⌥⇧7": "ǣ",
"⌥'": "ǽ"
},
"ë": {
"none": "ë",
"⌥`": "ę"
},
"ï": {
"none": "ï",
"⌥`": "į"
},
"ö": {
"none": "ö",
"⌥`": "ǫ"
},
"ø": {
"none": "ø",
"⌥'": "ǿ"
},
"ü": {
"none": "ü",
"⌥`": "ų",
"⌥⇧6": "ǚ"
},
"ˇ": {
"next": "⌥⇧6"
},
"˚": {
"next": "⌥7"
},
"Ω": {
"next": "⌥m"
},
"√": {
"next": "⌥⇧m"
}
},
"terminators": {
"⌥6": "^",
"⌥`": "`",
"⌥⇧`": "~",
"⌥⇧'": "¨",
"⌥\\": "¬",
"⌥⇧7": "¯",
"⌥'": "´",
"⌥⇧6": "ˇ",
"⌥7": "˚",
"⌥m": "Ω",
"⌥⇧m": " "
},
"keyMaps": {
"0": {
"label": "Base",
"keys": {
"0": {
"code": 0,
"keyName": "A",
"action": "a",
"output": "a"
},
"1": {
"code": 1,
"keyName": "S",
"action": "s",
"output": "s"
},
"2": {
"code": 2,
"keyName": "D",
"action": "d",
"output": "d"
},
"3": {
"code": 3,
"keyName": "F",
"action": "f",
"output": "f"
},
"4": {
"code": 4,
"keyName": "H",
"action": "h",
"output": "h"
},
"5": {
"code": 5,
"keyName": "G",
"action": "g",
"output": "g"
},
"6": {
"code": 6,
"keyName": "Z",
"action": "z",
"output": "z"
},
"7": {
"code": 7,
"keyName": "X",
"action": "x",
"output": "x"
},
"8": {
"code": 8,
"keyName": "C",
"action": "c",
"output": "c"
},
"9": {
"code": 9,
"keyName": "V",
"action": "v",
"output": "v"
},
"10": {
"code": 10,
"keyName": "§/`",
"output": "§"
},
"11": {
"code": 11,
"keyName": "B",
"action": "b",
"output": "b"
},
"12": {
"code": 12,
"keyName": "Q",
"action": "q",
"output": "q"
},
"13": {
"code": 13,
"keyName": "W",
"action": "w",
"output": "w"
},
"14": {
"code": 14,
"keyName": "E",
"action": "e",
"output": "e"
},
"15": {
"code": 15,
"keyName": "R",
"action": "r",
"output": "r"
},
"16": {
"code": 16,
"keyName": "Y",
"action": "y",
"output": "y"
},
"17": {
"code": 17,
"keyName": "T",
"action": "t",
"output": "t"
},
"18": {
"code": 18,
"keyName": "1",
"action": "1",
"output": "1"
},
"21": {
"code": 21,
"keyName": "4",
"action": "4",
"output": "4"
},
"22": {
"code": 22,
"keyName": "6",
"action": "6",
"output": "6"
},
"23": {
"code": 23,
"keyName": "5",
"action": "5",
"output": "5"
},
"30": {
"code": 30,
"keyName": "]",
"output": "["
}
}
},
"1": {
"label": "Shift",
"keys": {
"0": {
"code": 0,
"keyName": "A",
"action": "A",
"output": "A"
},
"1": {
"code": 1,
"keyName": "S",
"action": "S",
"output": "S"
},
"2": {
"code": 2,
"keyName": "D",
"action": "D",
"output": "D"
},
"3": {
"code": 3,
"keyName": "F",
"action": "F",
"output": "F"
},
"4": {
"code": 4,
"keyName": "H",
"action": "H",
"output": "H"
},
"5": {
"code": 5,
"keyName": "G",
"action": "G",
"output": "G"
},
"6": {
"code": 6,
"keyName": "Z",
"action": "Z",
"output": "Z"
},
"7": {
"code": 7,
"keyName": "X",
"action": "X",
"output": "X"
},
"8": {
"code": 8,
"keyName": "C",
"action": "C",
"output": "C"
},
"9": {
"code": 9,
"keyName": "V",
"action": "V",
"output": "V"
},
"10": {
"code": 10,
"keyName": "§/`",
"output": "±"
},
"11": {
"code": 11,
"keyName": "B",
"action": "B",
"output": "B"
},
"12": {
"code": 12,
"keyName": "Q",
"action": "Q",
"output": "Q"
},
"13": {
"code": 13,
"keyName": "W",
"action": "W",
"output": "W"
},
"14": {
"code": 14,
"keyName": "E",
"action": "E",
"output": "E"
},
"15": {
"code": 15,
"keyName": "R",
"action": "R",
"output": "R"
},
"16": {
"code": 16,
"keyName": "Y",
"action": "Y",
"output": "Y"
},
"17": {
"code": 17,
"keyName": "T",
"action": "T",
"output": "T"
},
"18": {
"code": 18,
"keyName": "1",
"action": "!",
"output": "!"
},
"21": {
"code": 21,
"keyName": "4",
"action": "$",
"output": "$"
},
"22": {
"code": 22,
"keyName": "6",
"output": "&"
},
"23": {
"code": 23,
"keyName": "5",
"action": "%",
"output": "%"
},
"30": {
"code": 30,
"keyName": "]",
"output": "{"
}
}
},
"2": {
"label": "Caps",
"keys": {
"0": {
"code": 0,
"keyName": "A",
"action": "A",
"output": "A"
},
"1": {
"code": 1,
"keyName": "S",
"action": "S",
"output": "S"
},
"2": {
"code": 2,
"keyName": "D",
"action": "D",
"output": "D"
},
"3": {
"code": 3,
"keyName": "F",
"action": "F",
"output": "F"
},
"4": {
"code": 4,
"keyName": "H",
"action": "H",
"output": "H"
},
"5": {
"code": 5,
"keyName": "G",
"action": "G",
"output": "G"
},
"6": {
"code": 6,
"keyName": "Z",
"action": "Z",
"output": "Z"
},
"7": {
"code": 7,
"keyName": "X",
"action": "X",
"output": "X"
},
"8": {
"code": 8,
"keyName": "C",
"action": "C",
"output": "C"
},
"9": {
"code": 9,
"keyName": "V",
"action": "V",
"output": "V"
},
"10": {
"code": 10,
"keyName": "§/`",
"output": "ẞ"
},
"11": {
"code": 11,
"keyName": "B",
"action": "B",
"output": "B"
},
"12": {
"code": 12,
"keyName": "Q",
"action": "Q",
"output": "Q"
},
"13": {
"code": 13,
"keyName": "W",
"action": "W",
"output": "W"
},
"14": {
"code": 14,
"keyName": "E",
"action": "E",
"output": "E"
},
"15": {
"code": 15,
"keyName": "R",
"action": "R",
"output": "R"
},
"16": {
"code": 16,
"keyName": "Y",
"action": "Y",
"output": "Y"
},
"17": {
"code": 17,
"keyName": "T",
"action": "T",
"output": "T"
},
"18": {
"code": 18,
"keyName": "1",
"action": "1",
"output": "1"
},
"21": {
"code": 21,
"keyName": "4",
"action": "4",
"output": "4"
},
"22": {
"code": 22,
"keyName": "6",
"action": "6",
"output": "6"
},
"23": {
"code": 23,
"keyName": "5",
"action": "5",
"output": "5"
},
"30": {
"code": 30,
"keyName": "]",
"output": "["
}
}
},
"3": {
"label": "Option",
"keys": {
"0": {
"code": 0,
"keyName": "A",
"action": "ä",
"output": "ä"
},
"1": {
"code": 1,
"keyName": "S",
"output": "ß"
},
"2": {
"code": 2,
"keyName": "D",
"output": "đ"
},
"3": {
"code": 3,
"keyName": "F",
"output": "è"
},
"4": {
"code": 4,
"keyName": "H",
"output": "ù"
},
"5": {
"code": 5,
"keyName": "G",
"output": "é"
},
"6": {
"code": 6,
"keyName": "Z",
"output": "à"
},
"7": {
"code": 7,
"keyName": "X",
"output": "á"
},
"8": {
"code": 8,
"keyName": "C",
"output": "ç"
},
"9": {
"code": 9,
"keyName": "V",
"output": "ì"
},
"10": {
"code": 10,
"keyName": "§/`",
"output": ""
},
"11": {
"code": 11,
"keyName": "B",
"output": "í"
},
"12": {
"code": 12,
"keyName": "Q",
"action": "æ",
"output": "æ"
},
"13": {
"code": 13,
"keyName": "W",
"output": "å"
},
"14": {
"code": 14,
"keyName": "E",
"action": "ë",
"output": "ë"
},
"15": {
"code": 15,
"keyName": "R",
"output": "ý"
},
"16": {
"code": 16,
"keyName": "Y",
"output": "ÿ"
},
"17": {
"code": 17,
"keyName": "T",
"output": "þ"
},
"18": {
"code": 18,
"keyName": "1",
"output": "¡"
},
"21": {
"code": 21,
"keyName": "4",
"output": "£"
},
"22": {
"code": 22,
"keyName": "6",
"action": "6 option",
"deadKey": "⌥6"
},
"23": {
"code": 23,
"keyName": "5",
"output": "€"
},
"30": {
"code": 30,
"keyName": "]",
"output": "»"
}
}
},
"4": {
"label": "Shift+Option",
"keys": {
"0": {
"code": 0,
"keyName": "A",
"action": "Ä",
"output": "Ä"
},
"1": {
"code": 1,
"keyName": "S",
"output": "ẞ"
},
"2": {
"code": 2,
"keyName": "D",
"output": "Đ"
},
"3": {
"code": 3,
"keyName": "F",
"output": "È"
},
"4": {
"code": 4,
"keyName": "H",
"output": "Ù"
},
"5": {
"code": 5,
"keyName": "G",
"output": "É"
},
"6": {
"code": 6,
"keyName": "Z",
"output": "À"
},
"7": {
"code": 7,
"keyName": "X",
"output": "Á"
},
"8": {
"code": 8,
"keyName": "C",
"output": "Ç"
},
"9": {
"code": 9,
"keyName": "V",
"output": "Ì"
},
"10": {
"code": 10,
"keyName": "§/`",
"output": "±"
},
"11": {
"code": 11,
"keyName": "B",
"output": "Í"
},
"12": {
"code": 12,
"keyName": "Q",
"action": "Æ",
"output": "Æ"
},
"13": {
"code": 13,
"keyName": "W",
"output": "Å"
},
"14": {
"code": 14,
"keyName": "E",
"action": "Ë",
"output": "Ë"
},
"15": {
"code": 15,
"keyName": "R",
"output": "Ý"
},
"16": {
"code": 16,
"keyName": "Y",
"output": "Ÿ"
},
"17": {
"code": 17,
"keyName": "T",
"output": "Þ"
},
"18": {
"code": 18,
"keyName": "1",
"output": "¹"
},
"21": {
"code": 21,
"keyName": "4",
"output": "¥"
},
"22": {
"code": 22,
"keyName": "6",
"action": "ˇ",
"deadKey": "⌥⇧6"
},
"23": {
"code": 23,
"keyName": "5",
"output": "¢"
},
"30": {
"code": 30,
"keyName": "]",
"output": ""
}
}
},
"5": {
"label": "Caps+Option",
"keys": {
"0": {
"code": 0,
"keyName": "A",
"output": "Ä"
},
"1": {
"code": 1,
"keyName": "S",
"output": "ß"
},
"2": {
"code": 2,
"keyName": "D",
"output": "Ð"
},
"3": {
"code": 3,
"keyName": "F",
"output": "È"
},
"4": {
"code": 4,
"keyName": "H",
"output": "Ù"
},
"5": {
"code": 5,
"keyName": "G",
"output": "É"
},
"6": {
"code": 6,
"keyName": "Z",
"output": "À"
},
"7": {
"code": 7,
"keyName": "X",
"output": "Á"
},
"8": {
"code": 8,
"keyName": "C",
"output": "Ç"
},
"9": {
"code": 9,
"keyName": "V",
"output": "Ì"
},
"10": {
"code": 10,
"keyName": "§/`",
"output": "ẞ"
},
"11": {
"code": 11,
"keyName": "B",
"output": "Í"
},
"12": {
"code": 12,
"keyName": "Q",
"action": "Æ",
"output": "Æ"
},
"13": {
"code": 13,
"keyName": "W",
"output": "Å"
},
"14": {
"code": 14,
"keyName": "E",
"output": "Ë"
},
"15": {
"code": 15,
"keyName": "R",
"output": "Ý"
},
"16": {
"code": 16,
"keyName": "Y",
"output": "Ÿ"
},
"17": {
"code": 17,
"keyName": "T",
"output": "Þ"
},
"18": {
"code": 18,
"keyName": "1",
"output": "¡"
},
"21": {
"code": 21,
"keyName": "4",
"output": "£"
},
"22": {
"code": 22,
"keyName": "6",
"action": "^",
"output": "^"
},
"23": {
"code": 23,
"keyName": "5",
"output": "€"
},
"30": {
"code": 30,
"keyName": "]",
"output": "»"
}
}
},
"6": {
"label": "Command+Option",
"keys": {
"0": {
"code": 0,
"keyName": "A",
"output": "å"
},
"1": {
"code": 1,
"keyName": "S",
"output": "ß"
},
"2": {
"code": 2,
"keyName": "D",
"output": "∂"
},
"3": {
"code": 3,
"keyName": "F",
"output": "ƒ"
},
"4": {
"code": 4,
"keyName": "H",
"output": "˙"
},
"5": {
"code": 5,
"keyName": "G",
"output": "©"
},
"6": {
"code": 6,
"keyName": "Z",
"output": "Ω"
},
"7": {
"code": 7,
"keyName": "X",
"output": "≈"
},
"8": {
"code": 8,
"keyName": "C",
"output": "ç"
},
"9": {
"code": 9,
"keyName": "V",
"output": "√"
},
"10": {
"code": 10,
"keyName": "§/`",
"output": "ẞ"
},
"11": {
"code": 11,
"keyName": "B",
"output": "∫"
},
"12": {
"code": 12,
"keyName": "Q",
"output": "œ"
},
"13": {
"code": 13,
"keyName": "W",
"output": "∑"
},
"14": {
"code": 14,
"keyName": "E",
"output": "´"
},
"15": {
"code": 15,
"keyName": "R",
"output": "®"
},
"16": {
"code": 16,
"keyName": "Y",
"output": "¥"
},
"17": {
"code": 17,
"keyName": "T",
"output": "†"
},
"18": {
"code": 18,
"keyName": "1",
"output": "¡"
},
"21": {
"code": 21,
"keyName": "4",
"output": "¢"
},
"22": {
"code": 22,
"keyName": "6",
"output": "ẞ"
},
"23": {
"code": 23,
"keyName": "5",
"output": "∞"
},
"30": {
"code": 30,
"keyName": "]",
"output": ""
}
}
},
"7": {
"label": "Control",
"keys": {
"0": {
"code": 0,
"keyName": "A",
"output": "\u0001"
},
"1": {
"code": 1,
"keyName": "S",
"output": "\u0013"
},
"2": {
"code": 2,
"keyName": "D",
"output": "\u0004"
},
"3": {
"code": 3,
"keyName": "F",
"output": "\u0006"
},
"4": {
"code": 4,
"keyName": "H",
"output": "\b"
},
"5": {
"code": 5,
"keyName": "G",
"output": "\u0007"
},
"6": {
"code": 6,
"keyName": "Z",
"output": "\u001a"
},
"7": {
"code": 7,
"keyName": "X",
"output": "\u0018"
},
"8": {
"code": 8,
"keyName": "C",
"output": "\u0003"
},
"9": {
"code": 9,
"keyName": "V",
"output": "\u0016"
},
"10": {
"code": 10,
"keyName": "§/`",
"output": "0"
},
"11": {
"code": 11,
"keyName": "B",
"output": "\u0002"
},
"12": {
"code": 12,
"keyName": "Q",
"output": "\u0011"
},
"13": {
"code": 13,
"keyName": "W",
"output": "\u0017"
},
"14": {
"code": 14,
"keyName": "E",
"output": "\u0005"
},
"15": {
"code": 15,
"keyName": "R",
"output": "\u0012"
},
"16": {
"code": 16,
"keyName": "Y",
"output": "\u0019"
},
"17": {
"code": 17,
"keyName": "T",
"output": "\u0014"
},
"18": {
"code": 18,
"keyName": "1",
"output": "1"
},
"21": {
"code": 21,
"keyName": "4",
"output": "4"
},
"22": {
"code": 22,
"keyName": "6",
"output": "6"
},
"23": {
"code": 23,
"keyName": "5",
"output": "5"
},
"30": {
"code": 30,
"keyName": "]",
"output": "\u001d"
}
}
}
},
"deadKeys": {
"⌥6": {
"terminator": "^",
"compositions": {
"A": "Â",
"C": "Ĉ",
"E": "Ê",
"G": "Ĝ",
"H": "Ĥ",
"I": "Î",
"J": "Ĵ",
"O": "Ô",
"S": "Ŝ",
"U": "Û",
"W": "Ŵ",
"Y": "Ŷ",
"a": "â",
"c": "ĉ",
"e": "ê",
"g": "ĝ",
"h": "ĥ",
"i": "î",
"j": "ĵ",
"o": "ô",
"s": "ŝ",
"space": "^",
"u": "û",
"w": "ŵ",
"y": "ŷ"
}
},
"⌥`": {
"terminator": "`",
"compositions": {
"A": "À",
"E": "È",
"I": "Ì",
"O": "Ò",
"U": "Ù",
"a": "à",
"e": "è",
"i": "ì",
"o": "ò",
"space": "`",
"u": "ù",
"Ä": "Ą",
"Ë": "Ę",
"Ï": "Į",
"Ö": "Ǫ",
"Ü": "Ų",
"ä": "ą",
"ë": "ę",
"ï": "į",
"ö": "ǫ",
"ü": "ų"
}
},
"⌥⇧`": {
"terminator": "~",
"compositions": {
"A": "Ã",
"I": "Ĩ",
"N": "Ñ",
"O": "Õ",
"U": "Ũ",
"Y": "Ỹ",
"a": "ã",
"i": "ĩ",
"n": "ñ",
"o": "õ",
"space": "~",
"u": "ũ",
"y": "ỹ"
}
},
"⌥⇧'": {
"terminator": "¨",
"compositions": {
"A": "Ä",
"E": "Ë",
"H": "Ḧ",
"I": "Ï",
"O": "Ö",
"U": "Ü",
"W": "Ẅ",
"X": "Ẍ",
"Y": "Ÿ",
"a": "ä",
"e": "ë",
"h": "ḧ",
"i": "ï",
"o": "ö",
"space": "¨",
"t": "ẗ",
"u": "ü",
"w": "ẅ",
"x": "ẍ",
"y": "ÿ"
}
},
"⌥\\": {
"terminator": "¬",
"compositions": {
"__CTRL_U001E__": "↑",
"+": "⇔",
"1": "№",
"2": "½",
"3": "⅓",
"4": "¼",
"5": "⅔",
"6": "¾",
"=": "↔",
"H": "⇐",
"I": "⇗",
"J": "⇓",
"K": "⇑",
"L": "⇒",
"M": "⇘",
"N": "⇙",
"T": "℠",
"U": "⇖",
"c": "©",
"h": "←",
"i": "↗",
"j": "↓",
"k 1": "↑",
"l 1": "→",
"m": "↘",
"n": "↙",
"p": "℗",
"r": "®",
"s": "§",
"space": "¬",
"t": "™",
"u": "↖"
}
},
"⌥⇧7": {
"terminator": "¯",
"compositions": {
"1": "",
"2": "",
"3": "—",
"5": "¯",
"A": "Ā",
"B": "Ƀ",
"D": "Đ",
"E": "Ē",
"G": "Ḡ",
"H": "Ħ",
"I": "Ī",
"L": "Ḻ",
"O": "Ō",
"T": "Ŧ",
"U": "Ū",
"Y": "Ȳ",
"a": "ā",
"b": "ƀ",
"d": "đ",
"e": "ē",
"g": "ḡ",
"h": "ħ",
"i": "ī",
"l 1": "ḻ",
"o": "ō",
"space": "¯",
"t": "ŧ",
"u": "ū",
"y": "ȳ",
"Æ": "Ǣ",
"æ": "ǣ"
}
},
"⌥'": {
"terminator": "´",
"compositions": {
"5": "´",
"A": "Á",
"B": "Ɓ",
"C": "Ć",
"E": "É",
"G": "Ǵ",
"I": "Í",
"K": "Ḱ",
"L": "Ł",
"M": "Ḿ",
"N": "Ń",
"O": "Ó",
"P": "Ṕ",
"R": "Ŕ",
"S": "Ś",
"U": "Ú",
"W": "Ẃ",
"Y": "Ý",
"Z": "Ź",
"a": "á",
"b": "ɓ",
"c": "ć",
"e": "é",
"g": "ǵ",
"i": "í",
"k 1": "ḱ",
"l 1": "ł",
"m": "ḿ",
"n": "ń",
"o": "ó",
"p": "ṕ",
"r": "ŕ",
"s": "ś",
"space": "´",
"u": "ú",
"w": "ẃ",
"y": "ý",
"z": "ź",
"Æ": "Ǽ",
"Ø": "Ǿ",
"æ": "ǽ",
"ø": "ǿ"
}
},
"⌥⇧6": {
"terminator": "ˇ",
"compositions": {
"#": "Ǯ",
"3": "ǯ",
"5": "ˇ",
"A": "Ǎ",
"C": "Č",
"D": "Ď",
"E": "Ě",
"G": "Ǧ",
"H": "Ȟ",
"I": "Ǐ",
"K": "Ǩ",
"L": "Ľ",
"N": "Ň",
"O": "Ǒ",
"R": "Ř",
"S": "Š",
"T": "Ť",
"U": "Ǔ",
"Z": "Ž",
"a": "ǎ",
"c": "č",
"d": "ď",
"e": "ě",
"g": "ǧ",
"h": "ȟ",
"i": "ǐ",
"j": "ǰ",
"k 1": "ǩ",
"l 1": "ľ",
"n": "ň",
"o": "ǒ",
"r": "ř",
"s": "š",
"space": "ˇ",
"t": "ť",
"u": "ǔ",
"z": "ž",
"Ü": "Ǚ",
"ü": "ǚ"
}
},
"⌥7": {
"terminator": "˚",
"compositions": {
"5": "˚",
"A": "Å",
"C": "Ċ",
"E": "Ė",
"G": "Ġ",
"I": "İ",
"U": "Ů",
"Z": "Ż",
"a": "å",
"c": "ċ",
"e": "ė",
"g": "ġ",
"space": "˚",
"u": "ů",
"w": "ẘ",
"y": "ẙ",
"z": "ż"
}
},
"⌥m": {
"terminator": "Ω",
"compositions": {
"!": "¹",
"\"": "₊",
"#": "³",
"$": "⁴",
"%": "⁵",
"&": "⁷",
"'": "₌",
"(": "⁹",
")": "⁰",
"*": "⁸",
"+": "⁺",
"-": "⁻",
"0": "₀",
"1": "₁",
"2": "₂",
"3": "₃",
"4": "₄",
"5": "₅",
"6": "₆",
"7": "₇",
"8": "₈",
"9": "₉",
";": "₋",
"=": "⁼",
"@": "²",
"A": "Α",
"B": "Β",
"C": "Χ",
"D": "Δ",
"E": "Ε",
"F": "Φ",
"G": "Γ",
"H": "Θ",
"I": "Η",
"J": "Ι",
"K": "Κ",
"L": "Λ",
"M": "Μ",
"N": "Ν",
"O": "Ο",
"P": "Π",
"Q": "Ω",
"R": "Ρ",
"S": "Σ",
"T": "Τ",
"U": "Ω",
"V": "Β",
"W": "Ψ",
"X": "Ξ",
"Y": "Υ",
"Z": "Ζ",
"[": "⁽",
"]": "⁾",
"^": "⁶",
"a": "α",
"b": "β",
"c": "χ",
"d": "δ",
"e": "ε",
"f": "φ",
"g": "γ",
"h": "θ",
"i": "η",
"j": "ι",
"k 1": "κ",
"l 1": "λ",
"m": "μ",
"n": "ν",
"o": "ο",
"p": "π",
"q": "ω",
"r": "ρ",
"s": "σ",
"t": "τ",
"u": "ω",
"v": "β",
"w": "ψ",
"x": "ξ",
"y": "υ",
"z": "ζ",
"{": "₍",
"}": "₎"
}
},
"⌥⇧m": {
"terminator": " ",
"compositions": {
"!": "≠",
"\"": "″",
"%": "‰",
"&": "∧",
"'": "",
"*": "⊗",
"+": "⊕",
"-": "±",
".": "⋅",
"3": "∛",
"4": "∜",
"7": "∡",
"8": "∠",
"9": "∟",
":": "∴",
";": "∵",
"<": "≤",
"=": "≝",
">": "≥",
"A": "∀",
"B": "⊇",
"C": "",
"D": "∇",
"E": "∃",
"F": "∎",
"G": "⊃",
"H": "⊅",
"K": "∌",
"L": "∦",
"M": "∉",
"N": "",
"O": "∅",
"P": "",
"Q": "",
"R": "",
"S": "∫",
"U": "",
"X": "∄",
"Z": "",
"^": "℘",
"b": "⊆",
"c": "∝",
"d": "Δ",
"f": "ƒ",
"g": "⊂",
"h": "⊄",
"i": "∞",
"k 1": "∋",
"l 1": "∥",
"m": "∈",
"n": "ⁿ",
"o": "∘",
"p": "∂",
"r": "√",
"s": "∩",
"space": "√",
"u": "",
"z": "↯",
"|": "",
"~": "≈"
}
}
}
}