- Template sections placed above or to the right of the typing keys; the user picks any mix in settings, typing keys included - keysym keys send XKB keysyms on press, optionally repeating - Geometry lays blocks side by side with one key unit; stretch keys are resolved at layout time so composed blocks line up - Toggling a block resizes the window so keys keep their size Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
167 lines
7.3 KiB
JSON
167 lines
7.3 KiB
JSON
{
|
||
"id": "template",
|
||
"name": "Template",
|
||
"alternates": {
|
||
"a": ["á", "à", "â", "ä", "æ", "ã", "å", "ā"],
|
||
"c": ["ç", "ć", "č"],
|
||
"d": ["ð"],
|
||
"e": ["é", "è", "ê", "ë", "ē", "ė", "ę"],
|
||
"i": ["í", "ì", "î", "ï", "ī", "į"],
|
||
"l": ["ł"],
|
||
"n": ["ñ", "ń"],
|
||
"o": ["ó", "ò", "ô", "ö", "õ", "ø", "œ", "ō"],
|
||
"s": ["ß", "ś", "š"],
|
||
"t": ["þ"],
|
||
"u": ["ú", "ù", "û", "ü", "ū"],
|
||
"y": ["ý", "ÿ"],
|
||
"z": ["ž", "ź", "ż"]
|
||
},
|
||
"sections": [
|
||
{
|
||
"id": "function",
|
||
"name": "Function keys",
|
||
"placement": "above",
|
||
"rows": [[
|
||
{"type": "keysym", "keysym": "Escape", "label": "esc", "stretch": true},
|
||
{"type": "keysym", "keysym": "F1", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F2", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F3", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F4", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F5", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F6", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F7", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F8", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F9", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F10", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F11", "width": 0.75, "stretch": true},
|
||
{"type": "keysym", "keysym": "F12", "width": 0.75, "stretch": true}
|
||
]]
|
||
},
|
||
{
|
||
"id": "navigation",
|
||
"name": "Navigation keys",
|
||
"rows": [
|
||
[
|
||
{"type": "keysym", "keysym": "Insert", "label": "ins"},
|
||
{"type": "keysym", "keysym": "Home", "label": "home"},
|
||
{"type": "keysym", "keysym": "Prior", "label": "pg up", "repeat": true}
|
||
],
|
||
[
|
||
{"type": "keysym", "keysym": "Delete", "label": "del", "repeat": true},
|
||
{"type": "keysym", "keysym": "End", "label": "end"},
|
||
{"type": "keysym", "keysym": "Next", "label": "pg dn", "repeat": true}
|
||
],
|
||
[
|
||
{"type": "spacer"},
|
||
{"type": "keysym", "keysym": "Up", "label": "↑", "repeat": true},
|
||
{"type": "spacer"}
|
||
],
|
||
[
|
||
{"type": "keysym", "keysym": "Left", "label": "←", "repeat": true},
|
||
{"type": "keysym", "keysym": "Down", "label": "↓", "repeat": true},
|
||
{"type": "keysym", "keysym": "Right", "label": "→", "repeat": true}
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"id": "numpad",
|
||
"name": "Numeric keypad",
|
||
"rows": [
|
||
["7", "8", "9", "/", {"type": "backspace"}],
|
||
["4", "5", "6", "*", "-"],
|
||
["1", "2", "3", "+", {"type": "enter"}],
|
||
[{"label": "0", "width": 2}, ".", ",", "="]
|
||
]
|
||
}
|
||
],
|
||
"layers": [
|
||
{
|
||
"name": "letters",
|
||
"rows": [
|
||
[
|
||
{"type": "letters", "row": 0, "flicks": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]},
|
||
{"type": "backspace", "width": 1.5, "stretch": true}
|
||
],
|
||
[
|
||
{"type": "spacer", "width": 0.5},
|
||
{"type": "letters", "row": 1, "flicks": ["@", "#", "$", "&", "*", "(", ")", "'", "\""]},
|
||
{"type": "enter", "width": 2, "stretch": true}
|
||
],
|
||
[
|
||
{"type": "shift", "stretch": true},
|
||
{"type": "letters", "row": 2, "flicks": ["%", "-", "+", "=", "/", ";", ":"]},
|
||
{"label": ",", "flick": "!", "shifted": ","},
|
||
{"label": ".", "flick": "?", "shifted": ".", "alternates": ["…"]},
|
||
{"type": "shift", "width": 1.5, "stretch": true}
|
||
],
|
||
[
|
||
{"type": "layer", "label": ".?123", "target": "numbers", "width": 1.5},
|
||
{"type": "globe"},
|
||
{"type": "space", "width": 6.5, "stretch": true},
|
||
{"type": "layer", "label": ".?123", "target": "numbers", "width": 1.5},
|
||
{"type": "dismiss"}
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "numbers",
|
||
"rows": [
|
||
["1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||
{"label": "0", "alternates": ["°"]},
|
||
{"type": "backspace", "width": 1.5}],
|
||
[
|
||
{"type": "spacer", "width": 0.5},
|
||
"@", "#",
|
||
{"label": "$", "alternates": ["€", "£", "¥", "₩", "₽", "¢"]},
|
||
{"label": "&", "alternates": ["§"]},
|
||
"*", "(", ")",
|
||
{"label": "'", "alternates": ["‘", "’", "`"]},
|
||
{"label": "\"", "alternates": ["“", "”", "„", "«", "»"]},
|
||
{"type": "enter", "width": 2}
|
||
],
|
||
[
|
||
{"type": "layer", "label": "#+=", "target": "symbols"},
|
||
"%",
|
||
{"label": "-", "alternates": ["–", "—", "•"]},
|
||
"+", "=",
|
||
{"label": "/", "alternates": ["\\"]},
|
||
";", ":", ",",
|
||
{"label": ".", "alternates": ["…"]},
|
||
{"type": "layer", "label": "#+=", "target": "symbols", "width": 1.5}
|
||
],
|
||
[
|
||
{"type": "layer", "label": "ABC", "target": "letters", "width": 1.5},
|
||
{"type": "globe"},
|
||
{"type": "space", "width": 6.5},
|
||
{"type": "layer", "label": "ABC", "target": "letters", "width": 1.5},
|
||
{"type": "dismiss"}
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "symbols",
|
||
"rows": [
|
||
["[", "]", "{", "}", "#", "%", "^", "*", "+", "=",
|
||
{"type": "backspace", "width": 1.5}],
|
||
[
|
||
{"type": "spacer", "width": 0.5},
|
||
"_", "\\", "|", "~", "<", ">", "€", "£", "¥",
|
||
{"type": "enter", "width": 2}
|
||
],
|
||
[
|
||
{"type": "layer", "label": "123", "target": "numbers"},
|
||
"•", "…", ".", ",", "?", "!", "'", "\"", "`",
|
||
{"type": "layer", "label": "123", "target": "numbers", "width": 1.5}
|
||
],
|
||
[
|
||
{"type": "layer", "label": "ABC", "target": "letters", "width": 1.5},
|
||
{"type": "globe"},
|
||
{"type": "space", "width": 6.5},
|
||
{"type": "layer", "label": "ABC", "target": "letters", "width": 1.5},
|
||
{"type": "dismiss"}
|
||
]
|
||
]
|
||
}
|
||
]
|
||
}
|