-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
feat(boards): Generic 40%, 50%, 60%, 65%, 75% and tkl physical layouts #2469
Conversation
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.
If you have strong sentiments about the naming of the matrix-transform
attributes, I think it would be a good idea to add docs with naming guidelines.
the use of |
I think it's a great idea to establish naming guidelines. My main concern is that board/shield creators will see the layouts here (with predefined Manipulating the devicetree via labels/phandles/etc is an obscure tactic this side of Zephyr; even before I'm sure "I didn't need X/Y doesn't match my build so I just cut-pasted Z in" will be a constant refrain regardless of what approach is taken here. (Especially if the first ZMK Studio video tutorial does so.) My five cents is just a wager that if the common layouts are defined loosely enough, it will happen less often. |
Unless I'm mistaken the kscan and matrix transform can be overridden in downstream boards by calling the layout node and overriding it, that was the impression under which I did this, if that's not the case then I agree it should be dropped from the layout and configured on a per board basis upstream. Perhaps this is also something that can be addressed through documentation. I'll do some testing quickly and get back on this point |
Just given this a big shake up, removing transform names from the layouts, moving each layout to it's own file so no need for |
Given the fix merged in #2490 is in, I think we should be moving to:
Thoughts? |
I was thinking about the position map earlier. I'm not sure if it should be done in a generic basis because the layouts each board supports are going to be different, and if a layout is omitted but the position map is tried to be used the build will fail |
Can you describe a bit more the build failure you're talking about? |
Would the build not fail if the position map references a disabled or absent layout? It's on my list to add position mapping to the ckp and 40&50% boards anyway so I'll be able to do testing but my understanding of device tree was that it would fail in processing that |
The code is set up so the position map can reference a disabled layout, and that layout will be skipped. It should compile and work fine. I've tested with posix minivan setup recently. |
Ah ok awesome, I'll get to work on adding that later then |
c8846bc
to
4b80815
Compare
Physical layout maps for 40 through 75% have been added, and all multi layout boards now incorporate the physical layout map. I've tested 60, 65 and 75 and checked that 40 and 50 compile but haven't got a suitable board for testing to hand |
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.
A few thoughts on the implementation. I think we are very close here though.
Thanks for working on this!
06a3076
to
2cfc714
Compare
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.
A few more items. Thanks again!
@@ -6,9 +6,25 @@ | |||
|
|||
#include <dt-bindings/zmk/matrix_transform.h> | |||
|
|||
#include <layouts/common/ortho_5x12/2x1u.dtsi> |
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.
Ditto on naming.
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.
Just one question, otherwise LGTM.
This PR adds physical layout definitions for all the common physical layouts for 40% ortho through tkl unibody keyboards as well as implementing them on the relevant boards.
All boards have been confirmed to build, but I don't have many of these boards to test on personally. I can test on all the boards I do have access to