From 42e42822a12a931097ac7233f6caa1fbee814f20 Mon Sep 17 00:00:00 2001 From: "Peter J. A. Cock" Date: Fri, 14 Feb 2025 11:02:20 +0000 Subject: [PATCH] Qwerty layout split 3x5 keyboard with 3 thumb keys each. Typically small split keyboards like this use assorted key combinations to access additional symbols, numbers, or navigation keys like cursors. Very often this includes tap-vs-hold behaviour, whereby for example a thumb key might be space if tapped, but shift if held. That complexity seems beyond what this keyboard heatmap tool attempts to display. Therefore the layout here as been simiplified to just use two modifiers, left-shift on a left-thumb key, and AltGr on a right-thumb key. Then: * Base layer, lower case Qwerty * Shift layer, upper case Qwerty * AltGr layer, ANSI number row symbols along top, digits on middle row, and misc other punctuation from right side on bottom row including tab and escape. * Shift+AltGr layer, misc symbols including those top left/top right on ANSI/ISO (like back-tick, minus, equals) and currency symbols as the top row, and a vi-style row of cursors. Rest unused. The thumb keys have been simplified to just left-shift, backspace, delete (on left) and then enter, space, AltGr (on right). This means there is no ctrl, nor meta/command/windows, nor left-alt. i.e. This would not actually be practical for real use as standard keyboard shortcuts would be impossible. However, the goal was mainly to visualise the Qwerty part of the keyboard - and everything else tends to be highly personalised in the ergonomic keyboard community. --- split_3x5_3t_KeycodeMapping.json | 13 ++++++++++ split_3x5_3t_KeycodesToStrings.json | 38 +++++++++++++++++++++++++++++ split_3x5_3t_Layout.tsv | 37 ++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 split_3x5_3t_KeycodeMapping.json create mode 100644 split_3x5_3t_KeycodesToStrings.json create mode 100644 split_3x5_3t_Layout.tsv diff --git a/split_3x5_3t_KeycodeMapping.json b/split_3x5_3t_KeycodeMapping.json new file mode 100644 index 0000000..27ac827 --- /dev/null +++ b/split_3x5_3t_KeycodeMapping.json @@ -0,0 +1,13 @@ +{ + "hardwareKeycodeMapping": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35 +], + "displayMapping": { + "30": "⇧", + "34": "␣", + "35": "⇮" + } +} diff --git a/split_3x5_3t_KeycodesToStrings.json b/split_3x5_3t_KeycodesToStrings.json new file mode 100644 index 0000000..08ecd43 --- /dev/null +++ b/split_3x5_3t_KeycodesToStrings.json @@ -0,0 +1,38 @@ +{ + "0":["q", "Q", "!", "`"], + "1":["w", "W", "@", "€"], + "2":["e", "E", "#", "£"], + "3":["r", "R", "$", "¥"], + "4":["t", "T", "%", "¢"], + "5":["y", "Y", "^", "~"], + "6":["u", "U", "&", "_"], + "7":["i", "I", "*", "+"], + "8":["o", "O", "(", "-"], + "9":["p", "P", ")", "="], + "10":["a", "A", "1", ""], + "11":["s", "S", "2", ""], + "12":["d", "D", "3", ""], + "13":["f", "F", "4", ""], + "14":["g", "G", "5", ""], + "15":["h", "H", "6", "←"], + "16":["j", "J", "7", "↓"], + "17":["k", "K", "8", "↑"], + "18":["l", "L", "9", "→"], + "19":[";", ":", "0", ""], + "20":["z", "Z", "|", ""], + "21":["x", "X", "'", ""], + "22":["c", "C", "\"", ""], + "23":["v", "V", "⇥", "⇥"], + "24":["b", "B", "Esc", "Esc"], + "25":["n", "N", "{", ""], + "26":["m", "M", "}", ""], + "27":[",", "<", "[", ""], + "28":[".", ">", "]", ""], + "29":["/", "?" , "\\", ""], + "30":"left shift", + "31":"⌫", + "32":"⌦", + "33":"↩", + "34":"space", + "35":"altGr" +} diff --git a/split_3x5_3t_Layout.tsv b/split_3x5_3t_Layout.tsv new file mode 100644 index 0000000..391a06e --- /dev/null +++ b/split_3x5_3t_Layout.tsv @@ -0,0 +1,37 @@ +x y kind +0 0.5 1x1 +1 0.2 1x1 +2 0 1x1 +3 0.2 1x1 +4 0.3 1x1 +9 0.3 1x1 +10 0.2 1x1 +11 0 1x1 +12 0.2 1x1 +13 0.5 1x1 +0 1.5 1x1 +1 1.2 1x1 +2 1 1x1 +3 1.2 1x1 +4 1.3 1x1 +9 1.3 1x1 +10 1.2 1x1 +11 1 1x1 +12 1.2 1x1 +13 1.5 1x1 +0 2.5 1x1 +1 2.2 1x1 +2 2 1x1 +3 2.2 1x1 +4 2.3 1x1 +9 2.3 1x1 +10 2.2 1x1 +11 2 1x1 +12 2.2 1x1 +13 2.5 1x1 +2.5 3.2 1x1 +3.5 3.3 1x1 +4.5 3.3 1x1.5 +8.5 3.3 1x1.5 +9.5 3.3 1x1 +10.5 3.2 1x1