-
-
Notifications
You must be signed in to change notification settings - Fork 40.1k
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
info.json layout changes #2621
Comments
Idea I had for the The idea here is a 2x2 macro pad, where the two keys on the bottom can be swapped for a single key 2u wide. (Formatted for readability.)
|
This is my current thinking about how we handle what @noroadsleft is talking about. We have also been discussing this in #configurator on Discord. The problem statement is that some keyboards allow for a lot of build options. For example, on 60% boards it's common to allow either split or non-split options for backspace, left and right shift, and spacebar. By the time you've enumerated all the possible build combinations you're looking at generating (and maintaining) dozens of layouts just to make it easy for people to select their build. Replicating @noroadsleft's example, here is what I'm envisioning:
In this case the UI would show the |
@skullydazed what if, instead of making it a dictionary you made it a recursive array, like so:
So if you find a position that is a dictionary by itself, you render the key. If you find a position that is an array, you recursively parse it and render all the possibilities or the one selected? |
Another aspect we've been talking about is the "bottom row problem". For example, take the Clueboard layouts: http://www.keyboard-layout-editor.com/#/gists/f34229f01989dfc47fc3c5d121b3ca44 A simple splitting metaphor can't cover all those bottom row possibilities. Is it enough to have the right number of keys, or do we want to have enough flexibility that the user can choose the layout that matches their own, down to key size? One possible solution involves using the mechanism outlined in my last comment with a large "virtual key" that covers most of the bottom row. Since it's a virtual key the user would be required to select an alternate layout before compiling, there wouldn't be a "default" like there is for other split keys. |
@fcoury I did some thinking aloud in discord, and came to the conclusion that forcing the choice the way you do is good, but the dict/array dichotomy doesn't fit into the LAYOUT as dictionary design we're moving towards. My thought here is that we have two types of dictionaries for LAYOUT entries. A plain key entry with values required for (side note: does the nested key need Here is the same layout we've been using expressed in this way:
Edit: Added |
Also, it would be nice to add some "tags" for the boards. Like "ortho", "40%", "split", etc. |
It'd be nice if we had a verbose description field that described a particular option e.g. "Split Backspace Support used for hhkb" |
To make info.json layouts easier to work with we're going to evolve the format a bit. People interested in these changes can watch this issue.
LAYOUT()
/KEYMAP()
macroExample info.json:
This would correspond with this
LAYOUT()
macro:The text was updated successfully, but these errors were encountered: