Optional PC key blocks: function row, navigation, numeric keypad

- 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>
This commit is contained in:
2026-10-14 21:18:10 +02:00
co-authored by Claude Opus 5.5
parent e532f5c072
commit 88338fde22
22 changed files with 521 additions and 101 deletions
+58
View File
@@ -16,6 +16,64 @@
"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",