-
-
Notifications
You must be signed in to change notification settings - Fork 39.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Keyboard] add kbd0 Curve0 60 ANSI #24609
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: jack <[email protected]>
Based on reference image:
|
Am unsure how best to proceed here. The keyboard supports split backspace, split left shift, and split right shift both ways (1u 1.75u or 1.75u 1u). This results in 2 * 2 * 3 = 12 possible layouts. Having 12 layouts to choose from seems annoying for the user but maybe this is the best way? The PCB and default keymap are designed to work for most cases by default (backspace is either the 2u key or the right 1u key; left shift is either the 2.25u key or the (left) 1.25u key, right shift is either the 2.75u key or the (left) 1.75u key). But I can see how having just the full layout can be confusing |
I'd agree that a layout entry in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as per Conversation
"layouts": { | ||
"LAYOUT": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"layouts": { | |
"LAYOUT": { | |
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift"], | |
"layouts": { | |
"LAYOUT_all": { |
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, | ||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} | ||
] | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
} | |
}, | |
"LAYOUT_60_ansi": { | |
"layout": [ | |
{"matrix": [0, 0], "x": 0, "y": 0}, | |
{"matrix": [0, 1], "x": 1, "y": 0}, | |
{"matrix": [0, 2], "x": 2, "y": 0}, | |
{"matrix": [0, 3], "x": 3, "y": 0}, | |
{"matrix": [0, 4], "x": 4, "y": 0}, | |
{"matrix": [0, 5], "x": 5, "y": 0}, | |
{"matrix": [0, 6], "x": 6, "y": 0}, | |
{"matrix": [0, 7], "x": 7, "y": 0}, | |
{"matrix": [0, 8], "x": 8, "y": 0}, | |
{"matrix": [0, 9], "x": 9, "y": 0}, | |
{"matrix": [0, 10], "x": 10, "y": 0}, | |
{"matrix": [0, 11], "x": 11, "y": 0}, | |
{"matrix": [0, 12], "x": 12, "y": 0}, | |
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, | |
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, | |
{"matrix": [1, 1], "x": 1.5, "y": 1}, | |
{"matrix": [1, 2], "x": 2.5, "y": 1}, | |
{"matrix": [1, 3], "x": 3.5, "y": 1}, | |
{"matrix": [1, 4], "x": 4.5, "y": 1}, | |
{"matrix": [1, 5], "x": 5.5, "y": 1}, | |
{"matrix": [1, 6], "x": 6.5, "y": 1}, | |
{"matrix": [1, 7], "x": 7.5, "y": 1}, | |
{"matrix": [1, 8], "x": 8.5, "y": 1}, | |
{"matrix": [1, 9], "x": 9.5, "y": 1}, | |
{"matrix": [1, 10], "x": 10.5, "y": 1}, | |
{"matrix": [1, 11], "x": 11.5, "y": 1}, | |
{"matrix": [1, 12], "x": 12.5, "y": 1}, | |
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, | |
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, | |
{"matrix": [2, 1], "x": 1.75, "y": 2}, | |
{"matrix": [2, 2], "x": 2.75, "y": 2}, | |
{"matrix": [2, 3], "x": 3.75, "y": 2}, | |
{"matrix": [2, 4], "x": 4.75, "y": 2}, | |
{"matrix": [2, 5], "x": 5.75, "y": 2}, | |
{"matrix": [2, 6], "x": 6.75, "y": 2}, | |
{"matrix": [2, 7], "x": 7.75, "y": 2}, | |
{"matrix": [2, 8], "x": 8.75, "y": 2}, | |
{"matrix": [2, 9], "x": 9.75, "y": 2}, | |
{"matrix": [2, 10], "x": 10.75, "y": 2}, | |
{"matrix": [2, 11], "x": 11.75, "y": 2}, | |
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, | |
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, | |
{"matrix": [3, 2], "x": 2.25, "y": 3}, | |
{"matrix": [3, 3], "x": 3.25, "y": 3}, | |
{"matrix": [3, 4], "x": 4.25, "y": 3}, | |
{"matrix": [3, 5], "x": 5.25, "y": 3}, | |
{"matrix": [3, 6], "x": 6.25, "y": 3}, | |
{"matrix": [3, 7], "x": 7.25, "y": 3}, | |
{"matrix": [3, 8], "x": 8.25, "y": 3}, | |
{"matrix": [3, 9], "x": 9.25, "y": 3}, | |
{"matrix": [3, 10], "x": 10.25, "y": 3}, | |
{"matrix": [3, 11], "x": 11.25, "y": 3}, | |
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, | |
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, | |
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, | |
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, | |
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, | |
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, | |
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, | |
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, | |
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} | |
] | |
}, | |
"LAYOUT_60_ansi_split_bs_rshift": { | |
"layout": [ | |
{"matrix": [0, 0], "x": 0, "y": 0}, | |
{"matrix": [0, 1], "x": 1, "y": 0}, | |
{"matrix": [0, 2], "x": 2, "y": 0}, | |
{"matrix": [0, 3], "x": 3, "y": 0}, | |
{"matrix": [0, 4], "x": 4, "y": 0}, | |
{"matrix": [0, 5], "x": 5, "y": 0}, | |
{"matrix": [0, 6], "x": 6, "y": 0}, | |
{"matrix": [0, 7], "x": 7, "y": 0}, | |
{"matrix": [0, 8], "x": 8, "y": 0}, | |
{"matrix": [0, 9], "x": 9, "y": 0}, | |
{"matrix": [0, 10], "x": 10, "y": 0}, | |
{"matrix": [0, 11], "x": 11, "y": 0}, | |
{"matrix": [0, 12], "x": 12, "y": 0}, | |
{"matrix": [0, 13], "x": 13, "y": 0}, | |
{"matrix": [0, 14], "x": 14, "y": 0}, | |
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, | |
{"matrix": [1, 1], "x": 1.5, "y": 1}, | |
{"matrix": [1, 2], "x": 2.5, "y": 1}, | |
{"matrix": [1, 3], "x": 3.5, "y": 1}, | |
{"matrix": [1, 4], "x": 4.5, "y": 1}, | |
{"matrix": [1, 5], "x": 5.5, "y": 1}, | |
{"matrix": [1, 6], "x": 6.5, "y": 1}, | |
{"matrix": [1, 7], "x": 7.5, "y": 1}, | |
{"matrix": [1, 8], "x": 8.5, "y": 1}, | |
{"matrix": [1, 9], "x": 9.5, "y": 1}, | |
{"matrix": [1, 10], "x": 10.5, "y": 1}, | |
{"matrix": [1, 11], "x": 11.5, "y": 1}, | |
{"matrix": [1, 12], "x": 12.5, "y": 1}, | |
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, | |
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, | |
{"matrix": [2, 1], "x": 1.75, "y": 2}, | |
{"matrix": [2, 2], "x": 2.75, "y": 2}, | |
{"matrix": [2, 3], "x": 3.75, "y": 2}, | |
{"matrix": [2, 4], "x": 4.75, "y": 2}, | |
{"matrix": [2, 5], "x": 5.75, "y": 2}, | |
{"matrix": [2, 6], "x": 6.75, "y": 2}, | |
{"matrix": [2, 7], "x": 7.75, "y": 2}, | |
{"matrix": [2, 8], "x": 8.75, "y": 2}, | |
{"matrix": [2, 9], "x": 9.75, "y": 2}, | |
{"matrix": [2, 10], "x": 10.75, "y": 2}, | |
{"matrix": [2, 11], "x": 11.75, "y": 2}, | |
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, | |
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, | |
{"matrix": [3, 2], "x": 2.25, "y": 3}, | |
{"matrix": [3, 3], "x": 3.25, "y": 3}, | |
{"matrix": [3, 4], "x": 4.25, "y": 3}, | |
{"matrix": [3, 5], "x": 5.25, "y": 3}, | |
{"matrix": [3, 6], "x": 6.25, "y": 3}, | |
{"matrix": [3, 7], "x": 7.25, "y": 3}, | |
{"matrix": [3, 8], "x": 8.25, "y": 3}, | |
{"matrix": [3, 9], "x": 9.25, "y": 3}, | |
{"matrix": [3, 10], "x": 10.25, "y": 3}, | |
{"matrix": [3, 11], "x": 11.25, "y": 3}, | |
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, | |
{"matrix": [3, 13], "x": 14, "y": 3}, | |
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, | |
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, | |
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, | |
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, | |
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, | |
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, | |
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, | |
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} | |
] | |
} |
"author": "kbd0", | ||
"keyboard": "kbd0/curve0/60_ansi", | ||
"keymap": "default", | ||
"layout": "LAYOUT", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"layout": "LAYOUT", | |
"layout": "LAYOUT_all", |
"KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSLS", "KC_BSPC", | ||
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", | ||
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", | ||
"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", | ||
"MO(1)", "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL" | ||
], | ||
[ | ||
"KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "KC_DEL", | ||
"_______", "_______", "KC_UP", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | ||
"_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | ||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | ||
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSLS", "KC_BSPC", | |
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", | |
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", | |
"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", | |
"MO(1)", "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL" | |
], | |
[ | |
"KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "KC_DEL", | |
"_______", "_______", "KC_UP", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | |
"_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | |
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | |
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" | |
"KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSLS", "KC_BSPC", | |
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", | |
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", | |
"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(1)", | |
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL" | |
], | |
[ | |
"KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "KC_DEL", | |
"_______", "_______", "KC_UP", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | |
"_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | |
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", | |
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also need to add keymaps/default_ansi_60 and keymaps/default_60_ansi_split_bs_rshift , correct?
After replacing LAYOUT with LAYOUT_ALL I can no longer build the firmware
make kbd0/curve0/60_ansi:default
Making kbd0/curve0/60_ansi with keymap default
☒ Invalid JSON keymap: C:/.../qmk_firmware/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json : 'LAYOUT_ALL' is not valid under any of the given schemas
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You do not need to add additional keymaps for all the possible layouts, it's fine just for them to exist in keyboard.json
.
You received this error because the layout naming syntax expects LAYOUT_xxx
where xxx
is lowercase. So it should be LAYOUT_all
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow haha had that wrong for the longest time
Without the additional keymaps, what happens if a user chooses that layout in configurator? Do they need to fill in the entire layout themselves or does it infer from LAYOUT_all
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Without the additional keymaps, what happens if a user chooses that layout in configurator? Do they need to fill in the entire layout themselves or does it infer from LAYOUT_all
The former.
Adding a keyboard
Description
Adding the Curve0 60 ANSI keyboard
Types of Changes
Checklist