summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2019-12-08Fix compiling json filesZach White
2019-12-01Add pep8-naming to our python lintingskullY
2019-11-29Use os.chdir for `qmk docs` instead of a custom HTTP request handler (#7493)fauxpark
2019-11-21MILC: Add support for hidden subcommands (#7034)Erovia
* MILC: Add support for hidden subcommands Subcommands with 'hidden=True' will not show up in the help output, but will work as any other subcommands. * Hide those hidden submodules, for real now * Rebase on latest MILC
2019-11-20Add flake8 to our test suite and fix all errors (#7379)skullydazed
* Add flake8 to our test suite and fix all errors * Add some documentation
2019-11-18Improve a number of things about how MILC operates (#7344)skullydazed
* Pull in updates for MILC * Remove the shadow argparser * Make it easier to reason about arguments and how they're translated into the config tree * Populate self.config during init to support setting user.qmk_home for the global CLI * Remove the short argument -c so that we can unambiguously determine the config file location without doing full argument processing * Remove the --save-config option as it's a little confusing anyway * Use Pathlib for path manipulation * Fix commands with no arguments
2019-11-16format code according to conventions [skip ci]QMK Bot
2019-11-15Add CLI command for flashing a keyboardjorgemanzo
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-13format code according to conventions [skip ci]QMK Bot
2019-11-12Add cli convert subcommand, from raw KLE to JSON (#6898)Cody Bender
* 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 #6898 * Help with cases of case sensitivity * Update cli.md * Use angle brackets to indicate required option * Make the output text more accurate
2019-11-12Make generating keymap.c from JSON more reliableskullY
2019-11-12Small CLI cleanupsskullY
* yapf changes * Fix the cformat test * Make the normpath test work when run from / * `qmk config`: Mark `--read-only` as arg_only
2019-11-12When checking program returncodes treat both 0 and 1 as installedskullY
2019-11-12Add support for newer versions of clang-format, if installedskullY
2019-10-29Fix the CLI docs (#6979)St. John Johnson
- Sort the commands alphabetically - Add missing `json_keymap` - Correct underscore to dash
2019-10-23MILC: Use dashes instead of underscores for subcommandsErovia
The subcommand functions' name follows the Python convention of using snake case, but looks odd on the command line. Fix it by converting underscores to dashes, eg.: list_keyboards -> list-keyboards.
2019-10-20Fix detection of ModemManager (#7076)Harry Wada
2019-10-11[CLI] `qmk docs` graceful shutdown on Ctrl+C (#6989)fauxpark
2019-10-08[Docs] CLI command to serve docs locally (#6956)fauxpark
* 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-07[CLI] Add `qmk list_keyboards` (#6927)Dan McClain
`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 #6911
2019-10-05Use `keymap` instead of `username` variable for `qmk new_keymap` (#6885)St. John Johnson
Username is not defined and this causes `qmk new_keymap` to error. This appears to have originated from a partial update in https://github.com/qmk/qmk_firmware/pull/6708/files#diff-d5208bcbc79aa428556a743b6ff41086. This change completes the migration from `username` to `keymap`
2019-10-03Fix qmk doctor 'bytes-like object is required' on linuxAyman Bagabas
This fixes the following issue related to encoding on linux systems. Add `universal_newlines=True` to subprocess. <class 'TypeError'> ☒ a bytes-like object is required, not 'str' Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/milc.py", line 564, in __call__ return self.__call__() File "/usr/local/lib/python3.7/site-packages/milc.py", line 569, in __call__ return self._entrypoint(self) File "$HOME/qmk_firmware/lib/python/qmk/cli/doctor.py", line 56, in doctor for line in mm_check.stdout.split('\n'): TypeError: a bytes-like object is required, not 'str'
2019-09-22Configuration system for CLI (#6708)skullydazed
* 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-10Created new_keymap.py, python version of new_keymap.sh (#6066)Kenny Hoang
* 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-07Add a command to format python codeskullY
2019-09-07Make the modem manager check more pythonicskullY
2019-09-07run yapf on the codeskullY
2019-09-07Setup a python test frameworkskullY
2019-08-31readability enhancementsskullY
2019-08-31Add support for passing files at the command lineskullY
2019-08-31CLI command to format C codeskullY
2019-08-30add lufa as a submoduleskullY
2019-08-30Fix the LUFA lib to use a submodule instead of just files (#6245)Drashna Jaelre
* Remove LUFA files * Update descriptions for newer version of LUFA * Create PR6245.md * Fix CDC(Serial) type errors * Fix missed merge conflict for AUDIO_DTYPE_CSInterface
2019-08-25Refactor `qmk compile-json` to `qmk compile` (#6592)skullydazed
2019-07-16Expand bootloader target to support most AVR boards (#6255)Drashna Jaelre
* Update the :bootloader target to pass along correct hardware info * Update make scripts to properly grab the settings (a big thanks to @yanfali) * Remove LUFA debug warnings
2019-07-15Fix compiling json files. (#6340)skullydazed
2019-07-15QMK CLI and JSON keymap support (#6176)skullydazed
* Script to generate keymap.c from JSON file. * Support for keymap.json * Add a warning about the keymap.c getting overwritten. * Fix keymap generating * Install the python deps * Flesh out more of the python environment * Remove defunct json2keymap * Style everything with yapf * Polish up python support * Hide json keymap.c into the .build dir * Polish up qmk-compile-json * Make milc work with positional arguments * Fix a couple small things * Fix some errors and make the CLI more understandable * Make the qmk wrapper more robust * Add basic QMK Doctor * Clean up docstrings and flesh them out as needed * remove unused compile_firmware() function
2019-05-19Spirals, Pinwheels, and Documentation....Oh My! RGB Matrix Effects (#5877)XScorpion2
* Spirals, Pinwheels, and Documentation....Oh My! * Spiral effect band thickness adjustments * Fixing animation spin directions
2019-04-29Removed forced in lining for lib8tion functions (#5670)XScorpion2
2019-04-29Change lib8tion library to be usable in user keymaps (#5598)Alec Geatches
* Move lib8tion header-defined constant into implementation file, add to build * Move b_m16_interleave initializtion to lib8tion.c, change build to include lib8tion.c in QUANTUM_LIB_SRC * Remove left-over whitespace * Move lib8tion include by RGB_MATRIX_ENABLE code in makefile * Revert build changes and change lib8tion b_m16_interleave constant to static
2019-04-02RGB Matrix Overhaul (#5372)XScorpion2
* RGB Matrix overhaul Breakout of animations to separate files Integration of optimized int based math lib Overhaul of rgb_matrix.c and animations for performance * Updating effect function api for future extensions * Combined the keypresses || keyreleases define checks into a single define so I stop forgetting it where necessary * Moving define RGB_MATRIX_KEYREACTIVE_ENABLED earlier in the include chain
2018-10-19Revert changes to chibiOS-contrib (#4176)Drashna Jaelre
* Revert "Keymap: qwerty_code_friendly: use numpad layout for f-keys (#4170)" This reverts commit efc88a0b16055dc0b2f94da8c46ea8fadeab70f4. * Fix keymap
2018-10-19Keymap: qwerty_code_friendly: use numpad layout for f-keys (#4170)Campbell Barton
2018-09-28CTRL keyboard bootloader_jump supportpatrickmt
Adds support for CTRL keyboards to enter bootloader via bootloader_jump()
2018-09-28Massdrop keyboard updates for SEND_STRING, syscalls, stdio, debug prints, ↵patrickmt
Auto Shift (#3973) * Update for SEND_STRING usage Update for SEND_STRING usage. Sending keyboard reports (kbd, nkro) now obey the minimum polling time. While attempting to send a keyboard report and waiting for a USB poll, other functions of the keyboard, including LED effects and power management, will continue to operate at their intended intervals. * Updates for send string, syscalls, stdio, debug prints, auto shift Now properly waiting for previous keys sent over USB to complete before sending new. Added heap to linker and now compiling with syscalls support. Removed custom string functions and now using stdio. dprintf now works as intended through virtser device. * CTRL and ALT keymap updates CTRL mac keymap updated ALT default and mac keymap updated ALT rules.mk added Auto Shift with default no * Code cleanup as per discussion with vomindoraan Code cleanup as per discussion with vomindoraan
2018-09-11Fix mismatched aliased event and event stub function prototypes.Dean Camera
2018-09-11Remove unneccesary ATTR_CONST from stub functions (thanks to NicoHood).Dean Camera
2018-08-29Massdrop keyboard support (#3780)patrickmt
* Massdrop SAMD51 Massdrop SAMD51 keyboards initial project upload * Removing relocated files Removing files that were relocated and not deleted from previous location * LED queue fix and cleaning Cleaned some white space or comments. Fix for LED I2C command queue. Cleaned up interrupts. Added debug function for printing numbers to scope through m15 line. * Factory programmed serial usage Ability to use factory programmed serial in hub and keyboard usb descriptors * USB serial number and bugfix Added support for factory programmed serial and usage. Incorporated bootloader's conditional compiling to align project closer. Fixed issue when USB device attempted to send before enabled. General white space and comment cleanup. * Project cleanup Cleaned up project in terms of white space, commented code, and unecessary files. NKRO keyboard is now using correct setreport although KBD was fine to use. Fixed broken linkage to __xprintf for serial debug statements. * Fix for extra keys Fixed possible USB hang on extra keys report set missing * I2C cleanup I2C cleanup and file renames necessary for master branch merge * Boot tracing and clocks cleanup Added optional boot debug trace mode through debug LED codes. General clock code cleanup. * Relocate ARM/Atmel headers Moved ARM/Atmel header folder from drivers to lib and made necessary makefile changes. * Pull request changes Pull request changes * Keymap and compile flag fix Keymap fix for momentary layer. Potential compile flag fix for Travis CI failure. * va_list include fix Fix for va_list compile failure * Include file case fixes Fixes for include files with incorrect case * ctrl and alt67 keyboard readme Added ctrl and alt67 keyboard readme files
2018-05-09gcc 8.10 compilation fix (#2914)sameehj
* Use memmove instead of memcpy gcc 8.1 gives the following error: lib/lufa/LUFA/Drivers/USB/Class/Common/HIDParser.c:93:5: error: 'memcpy' accessing 42 bytes at offsets 28 and 0 overlaps 14 bytes at offset 28 [-Werror=restrict] This patch resolve this by using memmove instead Signed-off-by: Sameeh <Sameeh Jubran> * Remove ATTR_CONST from a void returning function gcc 8.10 gives the following error when attempting to compile lib/lufa/LUFA/Drivers/USB/Core/Events.h:334:5: error: 'const' attribute on function returning 'void' [-Werror=attributes] Signed-off-by: Sameeh <Sameeh Jubran>
2018-02-08Merge ChibiOS and LUFA descriptor support (#2362)fredizzimo
* Move lufa descriptor to protocol/usb_descriptor * Try to compile usb_descriptor on ChibiOS * Add lufa_utils for ChibiOS Lufa USB descriptors for ChibiOS * More lufa_util compatibility fixes * First compiling version of shared USB descriptor * Send the usb descriptors * Fix the CONSOLE output on ChibiOS * Add errors for unsupported interfaces * Enable support for vitual serial port USB descriptors * Implement virtual serial port for ChibiOS * Cleanup the lufa_utils Use the default lufa header files * Add raw hid support for ChibiOS This is completely untested * Enable midi compilation on ChibiOS * Move midi functionality out of lufa.c * Don't register sysex callback when not needed * ChibiOS compilation fixes * Update ChibiOS submodule * Fix the Midi USB descriptor It didn't work properly when both Midi and Virtual serial port was enabled. * Add MIDI support for ChibiOS * Fix USB descriptor strings on ChibiOS * Use serial usb driver for raw hid * Generalize the ChibiOS stream like drivers This makes the initialization much more simple and eliminates a lot of the code duplication. * Convert console output to chibios stream driver * Fixes for ChibiOS update * Update the ChibiOS contrib submodule To include the usb data toggle synchronization fixes * Fix duplicate reset enumeration on ChibiOS * Add missing include * Add number of endpoints check for ChibiOS * Enable serial USB driver on all keyboards * Add missing includes when API is enabled withot midi * Add another missing inlcude