qmk / qmk_api Goto Github PK
View Code? Open in Web Editor NEWQMK API, information on keyboards and keymaps, and a compile service.
Home Page: http://api.qmk.fm/
License: Other
QMK API, information on keyboards and keymaps, and a compile service.
Home Page: http://api.qmk.fm/
License: Other
The backend does not support pulling the necessary git modules. For example Chibios, Chibios-Contrib etc. I imagine there should be a way for periodically to check those repos and pull when needed.
As informed by @yanfali the front end can download .bin files and therefore this is in theory the only change needed to support STM32 boards.
I would consider this relatively critical to the support of STM32 based boards as most end users don't want to manually compile there firmware.
This job should have been marked as failed, but was not:
{
"created_at": "Sat, 21 Oct 2017 06:19:49 GMT",
"enqueued_at": "Sat, 21 Oct 2017 06:19:49 GMT",
"id": "85b04925-6058-4ebd-a6c1-41c75e3b2041",
"is_failed": false,
"result": {
"command": "",
"firmware": null,
"output": "Keymap name collision!",
"returncode": -1
},
"status": "finished"
}
it will be a good idea to download just the keymap.c instead of the complete source to save network traffic and download times.
We need a script that can query redis and minio to tell us as much as possible about a given job id. Should look for and report the following, or report when these aren't available:
When running docker-compose up, the step fails:
---> Running in 518b6a377240
Collecting git+git://github.com/qmk/qmk_compiler.git@master
Cloning git://github.com/qmk/qmk_compiler.git (to revision master) to /tmp/pip-req-build-9zduddus
Running command git clone --filter=blob:none --quiet git://github.com/qmk/qmk_compiler.git /tmp/pip-req-build-9zduddus
fatal: remote error:
The unauthenticated git protocol on port 9418 is no longer supported.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
error: subprocess-exited-with-error
× git clone --filter=blob:none --quiet git://github.com/qmk/qmk_compiler.git /tmp/pip-req-build-9zduddus did not run successfully.
│ exit code: 128
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× git clone --filter=blob:none --quiet git://github.com/qmk/qmk_compiler.git /tmp/pip-req-build-9zduddus did not run successfully.
│ exit code: 128
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Service 'qmk_api' failed to build: The command '/bin/sh -c pip3 install -r requirements.txt git+git://github.com/qmk/qmk_compiler.git@master git+git://github.com/skullydazed/kle2xy.git@master' returned a non-zero code: 1
### Additional Context?
_No response_
Looks like the converter is outputting center-origin coordinates rather than top-left origin coordinates.
["~\n`","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace"],
[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\"],
[{w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
[{w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"Shift"],
[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"Alt",{w:1.25},"Win",{w:1.25},"Menu",{w:1.25},"Ctrl"]
Incorrectly converts to:
{
"keyboard_name": "",
"manufacturer": "",
"identifier": "",
"url": "",
"maintainer": "qmk",
"processor": "",
"bootloader": "",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":14, "y":0, "w":2}, {"label":"Tab", "x":0.5, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":14, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":14, "y":2, "w":2.25}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":14, "y":3, "w":2.75}, {"label":"Ctrl", "x":0.25, "y":4, "w":1.25}, {"label":"Win", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"x":9, "y":4, "w":6.25}, {"label":"Alt", "x":10.25, "y":4, "w":1.25}, {"label":"Win", "x":11.5, "y":4, "w":1.25}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"Ctrl", "x":14, "y":4, "w":1.25}]
}
}
}
NET::ERR_CERT_COMMON_NAME_INVALID
cert is for *.clueboard.co
We should have an API endpoint that spits out KLE raw code for a given keyboard/layout.
We should store the keymaps in the API so it's available to frontends that want a starting place.
The generated_at
field should display the last time info was pulled from qmk_firmware, not the time the json file was fetched.
There are lots of good keymap.c
files in the qmk_firmware repo. Many of them, such as the redox keyboard, or the ergodox have nice graphically readable keyboard layouts in them. I think that it would be awesome to have a human readable keymap.c file that used the keyboard layout either in a full comment block like the ergodox keymaps
/*
*
* .---------------------------------------------. .---------------------------------------------.
* | EQL | 1 | 2 | 3 | 4 | 5 | LEFT | ! RGHT | 6 | 7 | 8 | 9 | 0 | MINS |
* !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
* | DELT | Q | W | E | R | T |TG(SYMB| !TG(SYMB| Y | U | I | O | P | BSLS |
* !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
* | BSPC | A | S | D | F | G |-------! !-------! H | J | K | L |LT(MD|GUI_T(K|
* !-------+-----+-----+-----x-----x-----!ALL_T(K! !MEH_T(K!-----x-----x-----+-----+-----+-------!
* | LSFT |CTL_T| X | C | V | B | | ! | N | M |COMM | DOT |CTL_T| RSFT |
* '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
* |LT(SYM|QUOT |LALT(|LEFT |RGHT | ! UP |DOWN |LBRC |RBRC | FN1 |
* '------------------------------' '------------------------------'
* .---------------. .---------------.
* |ALT_T(K| LGUI | ! LALT |CTL_T(K|
* .-------+-------+-------! !-------+-------+-------.
* ! SPC ! BSPC | HOME | ! PGUP | TAB ! ENT !
* ! ! !-------! !-------! ! !
* | | | END | ! PGDN | | |
* '-----------------------' '-----------------------'
*/
or in a comment/code block like the redox uses.
[_QWERTY] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_NAGR ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_NAMI ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,SYM_L , SYM_L ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_EQL ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_ESC ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_LBRC , KC_RBRC ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_ADPU ,KC_PGDN , KC_HOME ,KC_ADEN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_BKSL ,KC_RSFT ,
//├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
KC_LGUI ,KC_PPLS ,KC_PMNS ,KC_ALAS , KC_CTPL , KC_BSPC ,KC_DEL , KC_ENT ,KC_SPC , KC_RALT , KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT
//└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
),
There are already tools out there for this, such as the keymapviz project.
When developing it is often useful to make local changes to test with. We shouldn't have to comment out specific code to enable that mode.
{"keyboard":"1upkeyboards/1up60hse","keymap":"layout_60_ansi_mine","layout":"LAYOUT_60_ansi","layers":[["KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO"],[],["KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO"]]}
causes the compile to fail, @skullydazed thought that was a supported use case.
The "using the API" link is broken (404) on https://docs.api.qmk.fm/
It points to https://github.com/qmk/qmk_compiler_api/tree/0debc4a22df4515119ac59ba81aed620d9a10fe1/docs/api_docs.html, maybe it's supposed to be https://github.com/qmk/qmk_api/blob/f381850ccc4cab411614b22808b138544752c48c/docs/api_docs.md?
In order to view the access log in docker we need to print it to stdout or stderr. However, the load balancer healthchecks overwhelm the log and flood all the useful info out. We should have a custom logger that filters out healthcheck requests.
compiled the following (JSON export keymap from config.qmk.fm)
{"keyboard":"planck/rev6","keymap":"tddf","layout":"LAYOUT_ortho_4x12","layers":[["KC_Q","KC_W", "KC_E","KC_R","KC_T","ANY(LCTL)","ANY(LCTL(LGUI))","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_A", "KC_S","KC_D","KC_F","KC_G","ANY(S(LATL))","ANY(S(LGUI))","KC_H","KC_J","KC_K","KC_L","KC_QUOT", "KC_Z","KC_X","KC_C","KC_V","KC_B","KC_LSFT","ANY(S(LCTL))","ANY(LT(4 , KC_N))","KC_M","KC_COMM", "KC_DOT","KC_SLSH","ANY(MT(MOD_LCTL | MOD_LCTL , KC_SPC))","KC_LALT","KC_LGUI","ANY(LT(1 , KC_ESC))", "ANY(LT(2, TC_TAB))","KC_SPC","KC_BSPC","ANY(LT(3 , KC_ENT))","KC_LEFT","KC_DOWN","KC_UP","KC_RGHT"], ["KC_F9","KC_F10","KC_F11","KC_F12","KC_NO","KC_NO","KC_P0","ANY(S(KC_G))","ANY(LCTL(KC_b))", "LCTL(KC_U)","KC_E","KC_W","KC_F5","KC_F6","KC_F7","KC_F8","KC_NO","KC_NO","KC_CIRC","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","ANY(S(KC_W))","KC_F1","KC_F2","KC_F3","KC_F4","KC_NO","KC_NO", "ANY(S(KC_B))","KC_B","LCTL(KC_D)","LCTL(KC_F)","ANY(KC_G(KC_G))","KC_DLR","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_TRNS"], ["KC_TILD","KC_EXLM","KC_AT","KC_HASH","KC_DLR","ANY(KC_LCBR)","ANY(KC_RCBR)","KC_TRNS","KC_P7", "KC_P8","KC_P9","KC_PEQL","KC_PERC","KC_CIRC","KC_AMPR","KC_ASTR","KC_PIPE","ANY(KC_LBRC)", "ANY(KC_RBRC)","KC_PPLS","KC_P4","KC_P5","KC_P6","KC_PMNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO", "KC_LPRN","KC_RPRN","KC_PAST","KC_P1","KC_P2","KC_P3","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_DEL","KC_TRNS","KC_P0","KC_NO","KC_NO","KC_NO"],["KC_TRNS", "KC_TRNS","KC_AGIN","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_FIND","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_UNDO","KC_CUT","KC_COPY","KC_PSTE","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_MS_R","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC__MUTE","KC__VOLDOWN","KC_TRNS","KC_TRNS","KC__VOLUP"],["KC_TRNS","RESET", "DEBUG","RGB_TOG","RGB_MOD","RGB_HUI","RGB_HUD","RGB_SAI","RGB_SAD","RGB_VAI","RGB_VAD","KC_DEL", "KC_TRNS","KC_TRNS","ANY(MU_MOD)","ANY(AU_ON)","ANY(AU_OFF)","ANY(AG_NORM)","ANY(AG_SWAP)","KC_NO", "KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","ANY(MUV_DE)","ANY(MUV_IN)","ANY(MU_ON)","ANY(MU_OFF)", "ANY(MI_ON)","ANY(MI_OFF)","ANY(TERM_ON)","ANY(TERM_OFF)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS"]]}
The result was the following error
Loaded 5 layers and 240 keycodes. Defined 66 Any key keycodes
Planck
===
![Planck](http://i.imgur.com/q2M3uEU.jpg)
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0
Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
Make example for this keyboard (after setting up your build environment):
make planck/rev4:default
Install examples:
make planck/rev6:default:dfu-util
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
* Sending planck/rev6:tddf with LAYOUT_ortho_4x12
* Received job_id: 2b871cdb-d50b-454f-a8bb-40e850f908f6
* Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
* Finished:
QMK Firmware 0.6.231
WARNING:
Some git sub-modules are out of date or modified, please consider running:
make git-submodule
You can ignore this warning if you are not compiling any ChibiOS keyboards,
or if you have modified the ChibiOS libraries yourself.
Making planck/rev6 with keymap tddf
tmk_core/chibios.mk:38: lib/chibios-contrib/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f3xx.mk: No such file or directory
tmk_core/chibios.mk:40: lib/chibios/os/hal/hal.mk: No such file or directory
tmk_core/chibios.mk:46: lib/chibios-contrib/os/hal/ports/STM32/STM32F3xx/platform.mk: No such file or directory
tmk_core/chibios.mk:79: lib/chibios/os/hal/osal/rt/osal.mk: No such file or directory
tmk_core/chibios.mk:81: lib/chibios/os/rt/rt.mk: No such file or directory
tmk_core/chibios.mk:87: lib/chibios/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk: No such file or directory
tmk_core/chibios.mk:89: lib/chibios/os/hal/lib/streams/streams.mk: No such file or directory
makek'. Stop.
Makefile:529: recipe for target 'planck/rev6:tddf' failed
make: *** [planck/rev6:tddf] Error 1
Make finished with errors
RAW Paste Data
Loaded 5 layers and 240 keycodes. Defined 66 Any key keycodes
Planck
===
![Planck](http://i.imgur.com/q2M3uEU.jpg)
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0
Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
Make example for this keyboard (after setting up your build environment):
make planck/rev4:default
Install examples:
make planck/rev6:default:dfu-util
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
* Sending planck/rev6:tddf with LAYOUT_ortho_4x12
* Received job_id: 2b871cdb-d50b-454f-a8bb-40e850f908f6
* Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
* Finished:
QMK Firmware 0.6.231
WARNING:
Some git sub-modules are out of date or modified, please consider running:
make git-submodule
You can ignore this warning if you are not compiling any ChibiOS keyboards,
or if you have modified the ChibiOS libraries yourself.
Making planck/rev6 with keymap tddf
tmk_core/chibios.mk:38: lib/chibios-contrib/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f3xx.mk: No such file or directory
tmk_core/chibios.mk:40: lib/chibios/os/hal/hal.mk: No such file or directory
tmk_core/chibios.mk:46: lib/chibios-contrib/os/hal/ports/STM32/STM32F3xx/platform.mk: No such file or directory
tmk_core/chibios.mk:79: lib/chibios/os/hal/osal/rt/osal.mk: No such file or directory
tmk_core/chibios.mk:81: lib/chibios/os/rt/rt.mk: No such file or directory
tmk_core/chibios.mk:87: lib/chibios/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk: No such file or directory
tmk_core/chibios.mk:89: lib/chibios/os/hal/lib/streams/streams.mk: No such file or directory
makek'. Stop.
Makefile:529: recipe for target 'planck/rev6:tddf' failed
make: *** [planck/rev6:tddf] Error 1
Make finished with errors
sought assistance on r/olkb and was suggested to open an issue here.
...Looks like there's something wrong with the backend...
We should detect when the firmware is too large and refuse to deliver that firmware to the user, so they don't brick their keyboard. This is especially important with .bin based keyboards like the tada68.
It happened while using the qmk configurator.
The Entry in the console looked like this:
jquery-3.2.1.min.js:4 GET http://compile.qmk.fm/v1/compile/aad5082f-a261-4dbf-9166-5223a8c88784/source 500 (INTERNAL SERVER ERROR)
Visiting the URL directly led to exactly the same thing.
The documentation link (gitbooks) in readme.md is 404-ed.
we want to use split keyboard option MASTER_RIGHT on qmk configurator . it maybe need to update api.
At the time of downloading the file (FULL SOURCE), from qmk configurator, the following error appears:
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
bm40hsrgb_layout_planck_mit_mine.json: https://pastebin.com/raw/45wrWR0f
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.