0
0
mirror of https://github.com/qmk/qmk_firmware.git synced 2024-12-25 02:49:55 +00:00
Commit Graph

25 Commits

Author SHA1 Message Date
Zach White
0e7c66e891 Merge remote-tracking branch 'origin/master' into develop
Conflicts:
	bin/qmk
	lib/python/qmk/cli/__init__.py

Merge conflicts fixed by skullydazed.
2021-05-10 12:16:04 -07:00
Zach White
bc38c38f8c
Move the module checking and updating to lib/python ()
* move the module checking and updating to lib/python

* make flake8 happy

* Update lib/python/qmk/cli/__init__.py

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* prompt the user to disable developer mode

* pyformat

* flake8

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-05-10 12:00:52 -07:00
QMK Bot
12292ba264 Merge remote-tracking branch 'origin/master' into develop 2021-05-09 15:07:13 +00:00
Nick Brassel
1426ffc0ee
Add script to perform parallel builds. ()
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-05-09 17:06:44 +02:00
Zach White
7a25dcacff
New command: qmk console ()
* stash poc

* stash

* tidy up implementation

* Tidy up slightly for review

* Tidy up slightly for review

* Bodge environment to make tests pass

* Refactor away from asyncio due to windows issues

* Filter devices

* align vid/pid printing

* Add hidapi to the installers

* start preparing for multiple hid_listeners

* udev rules for hid_listen

* refactor to move closer to end state

* very basic implementation of the threaded model

* refactor how vid/pid/index are supplied and parsed

* windows improvements

* read the report directly when usage page isn't available

* add per-device colors, the choice to show names or numbers, and refactor

* add timestamps

* Add support for showing bootloaders

* tweak the color for bootloaders

* Align bootloader disconnect with connect color

* add support for showing all bootloaders

* fix the pyusb check

* tweaks

* fix exception

* hide a stack trace behind -v

* add --no-bootloaders option

* add documentation for qmk console

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* pyformat

* clean up and flesh out KNOWN_BOOTLOADERS

Co-authored-by: zvecr <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-05-08 20:56:07 -07:00
Zach White
588bcdc8ca
Add support for tab completion ()
* Add support for tab completion

* make flake8 happy

* Add documentation
2021-04-14 19:00:22 -07:00
Zach White
3e60997edb
Add a qmk format-json command that will format JSON files ()
* Add a command to format json files

* change to work after rebase

* add test for qmk format-json

* add documentation for qmk format-json

* Update lib/python/qmk/cli/format/json.py
2021-03-25 22:38:10 +11:00
Zach White
cd336b2b54
bump to python 3.7 () 2021-02-13 10:26:45 -08:00
Zach White
448cc1acd5
remove deprecated qmk json-keymap () 2021-02-08 11:03:08 +00:00
Joel Challis
6c4b6531fe
CI: Add workflow for codebase formatting ()
* Add workflow for codebase formatting

* stash

* review comments

* Swap to a more complete push action
2020-12-10 17:01:51 +00:00
James Young
c66df16644
2020 November 28 Breaking Changes Update ()
* Branch point for 2020 November 28 Breaking Change                                                

* Remove matrix_col_t to allow MATRIX_ROWS > 32 ()                                           

* Add support for soft serial to ATmega32U2 ()                                               

* Change MIDI velocity implementation to allow direct control of velocity value ()            

* Add ability to build a subset of all keyboards based on platform.                                

* Actually use eeprom_driver_init().                                                               

* Make bootloader_jump weak for ChibiOS. ()                                                  

* Joystick 16-bit support ()                                                                 

* Per-encoder resolutions ()                                                                 

* Share button state from mousekey to pointing_device ()                                     

* Add hotfix for chibios keyboards not wake ()                                               

* Add advanced/efficient RGB Matrix Indicators ()                                             

* Naming change.                                                                                   

* Support for STM32 GPIOF,G,H,I,J,K ()                                                       

* Add milc as a dependency and remove the installed milc ()                                  

* ChibiOS upgrade: early init conversions ()                                                 

* ChibiOS upgrade: configuration file migrator ()                                             

* Haptic and solenoid cleanup ()                                                              

* XD75 cleanup ()                                                                            

* OLED display update interval support ()                                                    

* Add definition based on currently-selected serial driver. ()                               

* New feature: Retro Tapping per key ()                                                      

* Allow for modification of output RGB values when using rgblight/rgb_matrix. ()             

* Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. ()

* Rescale both ChibiOS and AVR backlighting.                                                       

* Reduce Helix keyboard build variation ()                                                    

* Minor change to behavior allowing display updates to continue between task ticks ()        

* Some GPIO manipulations in matrix.c change to atomic. ()                                   

* qmk cformat ()                                                                             

* [Keyboard] Update the Speedo firmware for v3.0 ()                                          

* Maartenwut/Maarten namechange to evyd13/Evy ()                                             

* [quantum] combine repeated lines of code ()                                                

* Add step sequencer feature ()                                                               

* aeboards/ext65 refactor ()                                                                 

* Refactor xelus/dawn60 for Rev2 later ()                                                    

* add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk ()                                 

* [Core] Added `add_oneshot_mods` & `del_oneshot_mods` ()                                    

* update chibios os usb for the otg driver ()                                                 

* Remove HD44780 References, Part 4 ()                                                       

* [Keyboard] Add Valor FRL TKL (+refactor) ()                                                

* Fix cursor position bug in oled_write_raw functions ()                                     

* Fixup version.h writing when using SKIP_VERSION=yes ()                                     

* Allow for certain code in the codebase assuming length of string. ()                       

* Add AT90USB support for serial.c ()                                                        

* Auto shift: support repeats and early registration ()                                       

* Rename ledmatrix.h to match .c file ()                                                      

* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER ()                                        

* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER ()                                        

* Merge point for 2020 Nov 28 Breaking Change
2020-11-28 12:02:18 -08:00
Zach White
4d33d72975
New command: qmk lint ()
* Basic qmk lint command

* check for keymap readme

* change the workflow from qmk info to qmk lint

* add a strict mode

* parsing -> parse

* document qmk lint

* small info logging cleanup

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* honor --strict in more places

* change the job name to lint

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-07 09:56:08 -08:00
Ryan
7ef98e7f61
CLI: Add qmk clean () 2020-11-04 19:18:47 +00:00
Zach White
0c42f91f4c
Generate api data on each push ()
* add new qmk generate-api command, to generate a complete set of API data.

* Generate api data and push it to the keyboard repo

* fix typo

* Apply suggestions from code review

Co-authored-by: Joel Challis <git@zvecr.com>

* fixup api workflow

* remove file-changes-action

* use a more mainstream github action

* fix yaml error

* Apply suggestions from code review

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* more uniform date handling

* make flake8 happy

* Update lib/python/qmk/decorators.py

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-10-25 14:48:44 -07:00
Erovia
058737f116
[CLI] Add c2json ()
* Basic keymap parsing finally works

* Add 'keymap.json' creation to the qmk.keymap module

* Add tests and fix formatting

* Fix/exclude flake8 errors

* Convert keymap.c to valid keymap.json

* Fix some errors

* Add tests

* Finalize keymap.json creation, add json template

* Add docs

* Move pygments to the standard requirements

* Add support for nameless layers, fix tests

* Fix things after rebase

* Add missing 'keymap' value.

* Fix missing layer numbers from advanced keycodes

Buckwich noticed that if the advanced keycode / layer toggling key
contains a number, it goes missing.
Now we properly handle them.
Thx for noticing!

* Apply suggestions from code review

* fixup tests

Co-authored-by: Zach White <skullydazed@drpepper.org>
Co-authored-by: skullY <skullydazed@gmail.com>
2020-10-06 17:10:19 -07:00
Zach White
751316c344
[CLI] Add a subcommand for getting information about a keyboard ()
You can now use `qmk info` to get information about keyboards and keymaps.

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-05-26 13:05:41 -07:00
skullydazed
66d94dc22a
Move everything to Python 3.6 () 2020-04-18 22:00:56 +02:00
skullydazed
f81b0e35a6
Add decorators for determining keyboard and keymap based on current directory ()
* Use pathlib everywhere we can

* Improvements based on @erovia's feedback

* rework qmk compile and qmk flash to use pathlib

* style

* Remove the subcommand_name argument from find_keyboard_keymap()

* add experimental decorators

* Create decorators for finding keyboard and keymap based on current directory.

Decorators were inspired by @Erovia's brilliant work on the proof of concept.
2020-03-13 15:47:04 -07:00
skullydazed
2a05d433c9
Rename qmk json-keymap to qmk json2c () 2020-03-10 13:51:19 -07:00
jorgemanzo
897888db41 Add CLI command for flashing a keyboard
A new CLI subcommand was added, flash, which behaves very similar to the already present compile CLI comamnd, but with the added ability to target a bootloader. The command is used like so: qmk flash [-h] [-b] [-kb KEYBOARD] [-km KEYMAP] [-bl BOOTLOADER] [filename].

A -kb <keyboard> and -km <keymap> is expected, or a configurator export JSON filename. A bootloader can be specified using -bl <target>, and if left unspecified, the target is assumed to be :flash. -bl can be used to list the available bootloaders.

If -km <keymap> is provided, but no -kb <keyboard>, then a message is printed suggesting the user to run qmk list_keyboards.
2019-11-15 23:06:07 -08:00
Cody Bender
7329c2d02d Add cli convert subcommand, from raw KLE to JSON ()
* Add initial pass at KLE convert

* Add cli log on convert

* Move kle2xy, add absolute filepath arg support

* Add overwrite flag, and context sensitive conversion

* Update docs/cli.md

* Fix converter.py typo

* Add convert unit test

* Rename to kle2qmk

* Rename subcommand

* Rename subcommand to kle2json

* Change tests to cover rename

* Rename in __init__.py

* Update CLI docs with new subcommand name

* Fix from suggestions in PR 

* Help with cases of case sensitivity

* Update cli.md

* Use angle brackets to indicate required option

* Make the output text more accurate
2019-11-12 20:55:41 -08:00
fauxpark
2707652c98 [Docs] CLI command to serve docs locally ()
* CLI command to serve docs locally

* Document it

* Default port

* Use `with` and subclass `SimpleHTTPRequestHandler` to set working dir

* Apply suggestions from code review

Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>

* Update docs/cli.md
2019-10-08 11:06:26 -07:00
Dan McClain
f04e58dad6 [CLI] Add qmk list_keyboards ()
`list_keyboards` replicates the `make list-keyboards` by globbing for all paths
that include `rules.mk` and then removing the paths that include `keymaps`.

This basis of this cli command could be reused in the future as a util, but is
not done so here since this would be the only place that would use it currently

Resolves 
2019-10-07 11:32:30 -07:00
skullydazed
d569f08771
Configuration system for CLI ()
* Rework how bin/qmk handles subcommands

* qmk config wip

* Code to show all configs

* Fully working `qmk config` command

* Mark some CLI arguments so they don't pollute the config file

* Fleshed out config support, nicer subcommand support

* sync with installable cli

* pyformat

* Add a test for subcommand_modules

* Documentation for the `qmk config` command

* split config_token on space so qmk config is more predictable

* Rework how subcommands are imported

* Document `arg_only`

* Document deleting from CLI

* Document how multiple operations work

* Add cli config to the doc index

* Add tests for the cli commands

* Make running the tests more reliable

* Be more selective about building all default keymaps

* Update new-keymap to fit the new subcommand style

* Add documentation about writing CLI scripts

* Document new-keyboard

* Update docs/cli_configuration.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update docs/cli_development.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update docs/cli_development.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update docs/cli_development.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Address yan's comments.

* Apply suggestions from code review

suggestions from @noahfrederick

Co-Authored-By: Noah Frederick <code@noahfrederick.com>

* Apply suggestions from code review

Co-Authored-By: Noah Frederick <code@noahfrederick.com>

* Remove pip3 from the test runner
2019-09-22 13:25:33 -07:00
Kenny Hoang
595232ec98 Created new_keymap.py, python version of new_keymap.sh ()
* Created python version of new_keymap.sh: new_keymap.py

* Updated usage message

* Updated new_keymap.py to use python3.5+ syntax & be more similar to new_keyboard.sh

* Updated complete message

* Updated usage in argparser and removed incorrect usage_message

* Reverted the fstrings back to strings that use .format() & updated docstring convention

* Added helper to recursively cd .. until at qmk_firmware root directory

* Revert "Added helper to recursively cd .. until at qmk_firmware root directory"

This reverts commit 61a0ff3b25f91901287bec8d58eb51a1f126e2ad.

* Updated new_keymap.py to use printf-style format strings

* First draft lib/python/qmk/cli/new/keymap.py with milc

* Removed shebang & syspath appending lines

* Added optional args & resolved some cr comemnts

* Added a docstring and updated strings
2019-09-10 05:14:25 -07:00