We now have the pieces in place to build a TUI for editing a keyboard. The info.json can be used to describe all the basic attributes of a keyboard and we have a jsonschema for that file in data/schemas/keyboard.jsonschema.
We should have a qmk edit -kb <keyboard> command that gives a friendly interface for editing. It should use the schema file to know what a valid info.json looks like, and when new items are added to the schema it should not be necessary to change qmk edit. The interface should be similar to other configuration TUI's, such as raspberry pi's raspi-config or make menuconfig used by linux, busybox, and other projects.
When it comes to choosing a TUI library for this long term maintainability is the most important factor. It would be nice if we could use the curses library and not have to include more dependencies, but that library is pretty low level and doesn't work on windows. I'll leave the selection up to whoever is going to implement this, but if you want to use something niche please talk to us before getting started. Some interesting possibilities to consider:
This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs.
For maintainers: Please label with bug, in progress, on hold, discussion or to do to prevent the issue from being re-flagged.
stalebot
added
the
stale
Issues or pull requests that have become inactive without resolution.
label
Jun 30, 2021
Feature Request Type
Description
We now have the pieces in place to build a TUI for editing a keyboard. The
info.jsoncan be used to describe all the basic attributes of a keyboard and we have a jsonschema for that file indata/schemas/keyboard.jsonschema.We should have a
qmk edit -kb <keyboard>command that gives a friendly interface for editing. It should use the schema file to know what a validinfo.jsonlooks like, and when new items are added to the schema it should not be necessary to changeqmk edit. The interface should be similar to other configuration TUI's, such as raspberry pi'sraspi-configormake menuconfigused by linux, busybox, and other projects.When it comes to choosing a TUI library for this long term maintainability is the most important factor. It would be nice if we could use the curses library and not have to include more dependencies, but that library is pretty low level and doesn't work on windows. I'll leave the selection up to whoever is going to implement this, but if you want to use something niche please talk to us before getting started. Some interesting possibilities to consider:
The text was updated successfully, but these errors were encountered: