Compare commits

..

422 Commits

Author SHA1 Message Date
ad8dbd5ca5 ARM split - Add bootmagic/magic keycodes for setting handedness (#6545)
* Add docs on bootmagic/magic keycodes for setting handedness

* Clang format fixes

* Maintain backwards compatibility

* Maintain backwards compatibility
2019-09-24 15:24:12 +01:00
237147ca23 Cleanup rules.mk for 32U4 keyboards, 0-9 (#6789) 2019-09-24 00:59:17 -07:00
37b6a2abbd Refactor the KBD67 Mk.II RGB (#6799)
* move kbd67mkiirgb into kbd67 directory as mkiirgb

* rename files

* rename LAYOUT to LAYOUT_65_ansi_blocker

* add support for default layout

* update readme for new build target

* update parent readme with the fourth variant
2019-09-23 23:34:59 -07:00
efb7f3cc3a format code according to conventions [skip ci] 2019-09-24 01:18:18 +00:00
61b5d0e0c5 [Keymap] mikethetiger's milk keymap (#6611)
* Added my Preonic keymap

* Update keyboards/preonic/keymaps/mikethetiger/keymap.c

Co-Authored-By: mikethetiger <30720424+mikethetiger@users.noreply.github.com>

* Update keyboards/preonic/keymaps/mikethetiger/keymap.c

Co-Authored-By: mikethetiger <30720424+mikethetiger@users.noreply.github.com>

* Added my Preonic keymap

* Added my Preonic keymap

* mikethetigers lets slpit eh keymap

* mikethetiger's milk keymap

* Update rules.mk

* Update keyboards/thevankeyboards/minivan/keymaps/mikethetiger/keymap.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update rules.mk

Better?
2019-09-23 18:14:55 -07:00
8eb0aefb60 [Keyboard] 65_ansi_blocker support for Doro67 (#6791)
* rename LAYOUT to LAYOUT_65_blocker_ansi

* rename LAYOUT macro

* enable LAYOUT_65_blocker_ansi community layout support and remove uneeded lines of code

* rename LAYOUT to LAYOUT_65_blocker_ansi

* rename LAYOUT macro

* enable LAYOUT_65_blocker_ansi community layout support

* enable LAYOUT_65_blocker_ansi support

* fix rename mess up

* add QMK Configurator support with the new rename

* rename blocker_ansi to ansi_blocker as it rolls off the tongue easier
2019-09-23 15:56:24 -07:00
ced8c554e6 [Keyboard] Fix pinout on the copenhagen clickpad (#6788) 2019-09-23 15:49:55 -07:00
e41feddf57 New Default Layout: 65_blocker_ansi (#6782)
* initial commit

* rename 65_ansi to 65_blocker_ansi

* remove one key to account for blocker
2019-09-22 13:50:18 -07:00
d569f08771 Configuration system for CLI (#6708)
* 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
2f49cae9bc Fixing wrapping math logic for timer_expired functions (#6746) 2019-09-23 00:52:33 +10:00
29d7f9b163 Correct casing for DS_Store in .gitignore (#6787) 2019-09-22 21:32:52 +10:00
e05b32d894 add python3 to shell.nix (#6774) 2019-09-21 11:59:18 -07:00
0e96068d23 Update the breaking changes process so we always have a future branch (#6785) 2019-09-21 11:58:06 -07:00
42bf60751e [Keyboard] fix OLKB layout macro aliases (#6761) 2019-09-21 11:32:08 -07:00
fd19795879 [Keyboard] Move more percent boards into the percent directory (#6781)
* move canoe into percent directory

* update readme for new make path

* move skog into percent directory

* update readme for new path and new instructions

* update readme

* fix error in naming
2019-09-21 11:27:53 -07:00
f069e9fc09 Generalize Tap Dance Layer functions (#6629)
* made tapdance dual_role general

* updated original dual_role functionality

* added toggling layer example

* Fix dual role and add alias

* Update docs about new layer tap dances

* Fix up based on feedback
2019-09-21 11:22:27 -07:00
63a0b1241d [Keymap] Move common code and configuration to userspace for dshields keymaps. (#6537) 2019-09-21 11:04:27 -07:00
75c9747787 [Keymap] Bonta keymap for massdrop/ALT (#6391)
* Added new bonta keymap.

* Added a note.

* Made map more mac like.
2019-09-21 10:13:44 -07:00
2df3799e3d Add list-keymaps make target (#5563) 2019-09-21 00:00:58 -07:00
ea96c4b787 [Keyboard] Update Stapelberg readme.md (#5557)
Previously suggested parts are hard to find or non-existent.  Update with available part numbers.
2019-09-20 23:59:16 -07:00
7f65323e10 Add support for Void Linux systems to the qmk_install.sh script (#5526)
* Add support for Void Linux systems to the qmk_install.sh script

* Fix typos + grammatical edits in comments

* Sort distributions by alphabetical order in linux_install.sh

* Revert previous commit and sort Void packages in alphabetical order

* Fix permissions on `util/linux_install.sh`
2019-09-20 23:55:51 -07:00
3642a82d37 Add support for 328P hardware backlight on B1/B2 (#6776) 2019-09-20 22:11:15 -07:00
c7d0262be7 [Keyboard] Add Discipad, Update Zadig doc for USBaspLoader (#6771)
* add discipad

* Update driver_installation_zadig.md

* Update keyboards/coseyfannitutti/discipad/info.json

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

* Update keyboards/coseyfannitutti/discipad/readme.md

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

* Update rules.mk

* Update keyboards/coseyfannitutti/discipad/rules.mk

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

* Update docs/driver_installation_zadig.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/coseyfannitutti/discipad/discipad.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update docs/driver_installation_zadig.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update docs/driver_installation_zadig.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update rules.mk

* Update discipad.c

* Update driver_installation_zadig.md

* Update config.h
2019-09-20 22:07:21 -07:00
de4a47f1cc Cleanup rules.mk for 32A and 328P keyboards (#6767) 2019-09-20 22:06:32 -07:00
beb4a12c9d Add reset instructions for boards that use Command to the Zadig driver installation guide (#6770)
* Add reset instructions for boards that use Command to the Zadig driver installation guide

* -> → →

* Apply suggestions from code review

Replace shorthand keycode names with full names

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-09-19 17:29:23 -07:00
59000f491f [Keymap] Added my personal keymaps for dz60 and TMO50. (#6772)
* Added ottodokto keymaps for dz60 and tmo50.

* moved placement of keymaps to proper directory

* fixed accidental deletion of semicolon for tmo50 map

* fix to use short form codes

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-09-19 16:38:42 -07:00
44c5be0a3e Cleanup rules.mk for 16U2 and 32U2 keyboards (#6768)
* Cleanup rules.mk for 16U2 and 32U2 keyboards

* Add back Tap Dance build option
2019-09-19 09:55:14 -07:00
f34299efd7 Cleanup rules.mk for USB64 and USB128 keyboards (#6769) 2019-09-19 09:55:03 -07:00
911b8915cc DRV2605L Continuous Haptic Feedback Support (#6461)
* provide means to turn on RTP mode and set the amplitude

* new keycode HPT_CONT to turn RTP off/on

* introduce new keycodes HPT_CONI, and HPT_COND for Haptic Continuous Increase and Decrease

* support for continuous mode amplitude increase and decrease

* code cleanup

* update docs to reference new keycodes and functionality

* don't touch the keymaps

* add function prototypes

* add proper guards

* cleanup guards

* remove extra reserved
2019-09-19 09:42:33 -07:00
7a5a2591eb [Keyboard] 1up60hte cleanup + bugfix (#6763)
* move caps lock led to keyboard level so even QMK Configurator users have access to it

* set bootloader correctly to atmel-dfu

* clean up extra carriage return
2019-09-18 18:42:53 -07:00
7142b60405 [Keymap] Update Planck Layer Diagram To Match Layer (#6712) 2019-09-18 18:38:56 -07:00
095b88bca5 Smoother Linear Light Table (#6764) 2019-09-18 18:32:38 -07:00
46c49ae4e6 Updated split encoders so indexes are based on left hand encoders first (#6382)
* Updated encoder.c so that split encoders are indexed based on left hand encoders first.
This ensures when swapping master sides that code logic based on encoder index doesn't change.

PR Review fixes

* Removed extra define
2019-09-18 17:56:11 -07:00
e5aa28455e [Keyboard] 201909 s75 custom encoder (#6745)
* Handle custom encoder configuration

* Whitespace changes

* Undo broken stuff

* more

* Remove printfs

* fix the dumb bug
2019-09-18 17:41:46 -07:00
6f5f943bb9 [Keyboard] Introduce AT-AT 660M (#6729)
* Introduce AT-AT 660M

* PR feedback

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Add dfu-util args

* Add URL
2019-09-18 11:14:49 -07:00
7d8dea30a4 [Keyboard] add personal fullsize pcb hnah108 (#6759)
* add personal fullsize pcb hnah108

* Update keymap.c
2019-09-17 23:36:05 -07:00
37c2996137 [Keyboard] Fix compile issues for OLKB Default keymaps (#6751) 2019-09-18 09:50:04 +10:00
54503168c9 Update bootloader.mk (#6698) 2019-09-18 09:48:58 +10:00
23186d32a3 [Keyboard] xd87: add capslock led support (#6758) 2019-09-17 10:37:01 -07:00
12cdcd5e10 [Keyboard] Freyr: Configurator bugfixes (#6756)
- rebuild LAYOUT_all tree (key count mismatch)
- correct keyboard dimensions and key positioning
- complete key object labels
- debug linting (one key object per line; changes white space only)
2019-09-17 10:36:18 -07:00
86d59f1034 [Keyboard] KBD75 refactor (#6755)
* convert codebase to #pragma once

* fix file includes

- quantum.h is included at keyboard level, redundant at revision level
- keyboard-level path is accessible at revision level, remove relative pathing

* duplicate common layout macros from rev1 to rev2

Add the layout macros supported by both rev1 and rev2 to rev2.h directly, which exposes these layouts to QMK Configurator.

* enable community layout support (75_ansi, 75_iso)

* add LAYOUT_75_iso layout data

It needs its own tree because its keys are in a different order from LAYOUT_iso_1u even though the physical layout is the same.

* minimize rules.mk files (use QMK defaults)

* use atmel-dfu bootloader rule

* fix typo on rev1 info.json
2019-09-17 10:34:52 -07:00
c427023b31 [Keymap][Xulkal] User code update (#6752)
* Updating rgb menu behavior

* Fixing toggle keycode to work how I want it

* Enabling auto scroll timeout
2019-09-17 10:28:02 -07:00
2493eecc7b [Keymap] Fix e65 7u WK layout and add crd's personal keymap (#6750)
* Add e65 keymap for crd

* Fix e65 7u wk layout
2019-09-17 10:27:07 -07:00
bb3569dce3 [Keymap] idobo/drewdobo keymap v1 (#6744) 2019-09-17 10:24:15 -07:00
b364a40e60 [Keyboard] Correct info.json data for vn66 (#6741)
* Correct info.json data for vn66

* update .json file data

* Update info.json
2019-09-17 10:23:13 -07:00
d137fdea78 [Keyboard] Adding YMDK "Bface" keyboard (#6731)
* making a new board setup for ymdk bface clone

* removing extra keymaps that copied over

* documentation and edits for new ymdk_bface board

* cleaning up config and keymaps

* removed extra keymap and working on READMEs

* readme edits

* shorter aliexpress link in ymdk_bface readme

* added images to readmes and edited the keymaps

* more flashing directions

* Mac directions formatting

* editing and creating the all layout

* cleanign up ymdk_bface keymaps

* fixed typos in layout

* removed tabs

* cleaned up the LED and Backlight configuration.

* adding more to info.josn and cleaning up readme

* fixing JSON typos

* made a ymdk folder and moved the bface into it.

* fixing file names for the new folder structure
2019-09-17 10:19:16 -07:00
ab48ffd5c5 [Keyboard] Adding AEK64 keyboard (#6725)
* Adding AEK64 keyboard

* Deleting useless layout definition

* Resolving many code review issues

* Documenting my 4sStylZ keymap

* Adding default keymap

* Apply suggestions from code review

Code review corrections

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

* Update keyboards/handwired/aek64/readme.md

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

* Correcting the NKRO implementation
2019-09-17 10:17:03 -07:00
32b2486c6b [Keymap] Plaid Keymap for Programmers (#6706)
* map programmer qwerty

* clarify and fix typo

* finishing touches

* use qmk
s templates for readme

* update copyright notice

* remove unnecessary code

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* remove unnecessary code

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/plaid/keymaps/thehalfdeafchef/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* fix documentation

* reformat code

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-09-17 10:15:07 -07:00
55432d0d91 [Keyboard] Fixed EEPROM start address for firmware using VIA (#6757) 2019-09-17 09:59:34 -07:00
59af2cbe64 Add Chimera65 Keyboard (#6670)
* Add chimera board

* info json start

* Update keyboards/cannonkeys/chimera65/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Apply suggestions from code review

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

* Update keyboards/cannonkeys/chimera65/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-09-16 19:37:51 -07:00
7c1bb9decf Percent Studio Booster: Configurator fix (#6743) 2019-09-16 08:20:44 -07:00
140c08e521 [Keymap] Added Xerpocalypse's layout (#6732)
* Added Xerpocalypse's layout

+ Number row and symbols are switched compared to default TMO50 layout
+ Right-hand spacebar acts as backspace and a hold-layer for layer 2.

* Update keyboards/tmo50/keymaps/xerpocalypse/keymap.c

Removed unnecessary #define

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

* Update keyboards/tmo50/keymaps/xerpocalypse/keymap.c

Changed keymap to use KC_UNDS instead of custom-defined keycode

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-09-15 21:32:34 -07:00
a9c1a5a873 remove accidental characters in default preonic keymap (#6748) 2019-09-16 14:13:44 +10:00
3b4b54f6ed Clarify the backlight_level API doc slightly (#6733)
* Clarify the backlight_level API doc slightly

* review
2019-09-15 19:22:02 +10:00
9c280089aa add VN66 keyboard (#6722)
* add VN66 keyboard

* update

* Update readme.md

* Update readme.md

* add hnah108 personal pcb

* delete hnah108

* Update vn66.c
2019-09-15 19:13:19 +10:00
38a0a6a092 [Keyboard] TheVanKeyboards Caravan: Configurator layout support (#6737) 2019-09-14 20:16:26 -07:00
8294a0de2c [Keymap] style cleanup of GreenShadowMaker's keymap (#6736) 2019-09-14 20:15:56 -07:00
65c4b6cff1 [Keymap] Yet another xd75 keymap (#6734)
* add a keymap for xd75

* add colors, change some keys, add reactive modifier hold, key press

* add readme

* permissive hold
2019-09-14 20:14:16 -07:00
9508b3f333 [Keyboard] Alps64 Refactor (#6723)
* get rid of custom matrix that is no longer being used

* remove _kc LAYOUT

* remove ifdefs and replace with pragma once

* cleanup rules and use bootmagic lite

* get rid of led.c

* Update keyboards/alps64/alps64.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* remove unneeded configurations
2019-09-14 20:03:11 -07:00
6c871408df [Keyboard] Fix default keymaps for OLKB boards to play Startup Sound (#6721)
* Fix Planck default keymap to play sounds on rev6

The dip_switch_update callback was overriding the default startup sound.  This should prevent that from happening, and still allow it to play sounds, or stop them, when appropriate.

* Fix Preonic default keymap to play sounds on Rev 3

The dip_switch_update callback was overriding the default startup sound.  This should prevent that from happening, and still allow it to play sounds, or stop them, when appropriate.
2019-09-14 19:59:44 -07:00
265d8abee1 Fix enables for Haptic Feedback (#6707)
* Fix enables for Haptic Feedback

If you enabled bothe DRV2605 and SOLENOID, it would only enable one of these, not both. 

This fixes the check so that you can enable both options.

* Fix check for haptic feature
2019-09-14 19:57:07 -07:00
d13e0b5cfc [Keymap] Fix Georgi's RZ key in NKRO fake-steno mode (#6701)
It was sending a comma keypress, while I believe that the targeted
stenography software (at least on systems that generally use
US-International keyboard layout) expects a single-quote/apostrophe key.
2019-09-14 19:55:23 -07:00
a4581e6620 [Keymap] Added m47ch4n keymap (#6673)
* Add m47ch4n's keymap

* Modify keymap

* Format m47ch4n keymap.c using clang-format

* Modify layer updater

* Fix wrong key repeating bug

* Add readme and QMK Configurator json

* Fix layer updateter

* Add Raise layer

* Add kana keys
2019-09-14 19:53:52 -07:00
0cbe1eb433 [Keyboard] Add 2key2crawl (#6727)
* adding working 2key2crawl

Adding working 2key2crawl files
edited files in accordance with original PR comments

* Changes

Changes and updates

* Update readme.md

* Update config.h

removed IS_COMMAND block that was missed in previous commit

* Changes to vol/keymap.c

Removed unneccesary function
2019-09-14 14:03:14 -07:00
969dd8be56 Fix Corne keyboard matrix configuration (#6684) 2019-09-14 17:46:14 +10:00
1620066475 Add to VSCode's recommended extensions (#6656)
This includes a number of recommended extensions from the VS Code doc page that should make coding things a lot easier for QMK Firmware.
2019-09-13 18:18:31 -04:00
b4161ac190 [Keymap] adding emdarcher's keymap for mf68 and tada68 (#6718)
* adding a custom mf68 keymap

* added custom tada68 keymap

* readme edit on tada68 map

* added mac fast-forward and rewind keybindings to tada68 emdarcher keymap

* tada68 keymap documentation and edits

* cleanup and edits

* typo fix in emdarcher's tada68 keymap

* cleaning up emdarcher keymap for tada68

* cleaned up emdarcher keymap for mf68
2019-09-12 15:47:30 -07:00
b9de27161a [Keymap] xunz layout for dz60rgb (#6716)
* [Update] Add xunz layout for dz60rgb

* [Update] Update layout.json and Readme.md

* [Delete] Delete unnecessary files

* [Create] Create new readme.md

* Update keyboards/dztech/dz60rgb/keymaps/xunz/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* [Update] Delete some unnecessary code in config.h

* Update keyboards/dztech/dz60rgb/keymaps/xunz/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/dztech/dz60rgb/keymaps/xunz/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/dztech/dz60rgb/keymaps/xunz/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-09-12 15:46:24 -07:00
ad3e4d6c13 Tidy up backlight header use to avoid build issues (#6714) 2019-09-11 23:15:39 +01:00
251b4fb79d Fix boards being skipped during make all 2019-09-10 21:15:48 -07:00
68dbf92d9e remove synthing conflict file (#6717) 2019-09-11 12:51:21 +10:00
595232ec98 Created new_keymap.py, python version of new_keymap.sh (#6066)
* 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
2e521b509c [Keyboard] Added a simple 2x5 Keypad with 4 layers (#6699)
* Added new 2x5 Keypad with 3 LEDs to indicate the selected layer.  By Jonathan Cameron.

* Minor refactor from suggestions from qmk team

* Added

* Moved to 'handwired' directory

* Update readme.md

* Update readme.md

* Update readme.md

* Update keyboards/handwired/2x5keypad/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Switch to image offsite

* Moved image offsite

* Update keyboards/handwired/2x5keypad/keymaps/default/keymap.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/handwired/2x5keypad/2x5keypad.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Moved functions into .c file per suggestions

* Cosmetic

* Fixed function called, per suggestions.

* Update keyboards/handwired/2x5keypad/2x5keypad.h

Ok

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Moved LED functions to the top level since they can be used it various flavors

* Declare those moved LED functions!

* Update keyboards/handwired/2x5keypad/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-09-09 22:03:33 -07:00
00225b77e5 [Keyboard] Waldo RGB Enable (#6711)
* enable rgb animations

* clean up code
2019-09-09 21:57:45 -07:00
9dae7f7d85 [Keymap] Update to narze keymaps (#6694)
Use Right GUI as backspace key & 1ms polling interval on narze keymaps

* Refactor & reimplement mod tap macros

* Reduce tapping term

* Update readme

* Add narze userspace

* Make use of narze userspace

* Extract Superduper mode

* Refactor Superduper mode

* (Ergodox Infinity) Prevent stuck modifiers

* Update ergodox_infinity/narze likewise

* Add warning for building Infinity with docker

* Fix include eeprom.h in superduper

* Try enabling superduper mode with combo for ergodox infinity

* Apply suggestions on #4546

* Convert to 4 spaces

* Map backlight step key

* Replace PLAY_NOTE_ARRAY

* Fix superduper toggle

* Re enable audio in planck rev4

* Use perform_space_cadet

* Remove superduper mod tap triggers

* Add readme for planck light firmware flashing command

* Remove unused layers

* Remove unused keycodes

* Add backlight toggle

* Remove unused songs & use DEFAULT_LAYER_SONGS

* Update readme

* Move includes to header file

* Set RGUI & raise as backspace & unbind actual backspace

* tmp

* Fix qwerty doc

* Use 1ms polling rate
2019-09-09 21:44:08 -07:00
a88b6db682 [Keyboard] Add the E6.5 keyboard (#6693)
The E6.5 is the new 65% keyboard made by Exclusive.
This changeset adds its PCB to QMK, including all the bottom row
variants and iso/ansi/split BS layouts.
2019-09-09 21:42:21 -07:00
22a7e71fb3 [Keyboard] Add DP60 keyboard (#6679)
* add dp60 keyboard

* fixup wording in readme

* fix layout name in default keymap. I was missing an r

* Add QMK Configurator support for the additional layouts

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/dp60/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* strip out the VIA enabling from default rules.mk

* add a VIA only keymap
2019-09-09 21:38:08 -07:00
88908888b8 [Keyboard] Add Rabbit68 Keyboard w/ default,kaiec keymaps. (#6676)
* Add Rabbit68 Keyboard w/ default,kaiec keymaps.

* Requested changes by @fauxpark

* Change flash command, as suggested by @drashna

* Update keyboards/rabbit/rabbit68/readme.md

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Add link to Github repo 

As I per suggestion changed the link above to an image, I added now the link to the project page to the Open Source text, where it actually makes the most sense.
2019-09-09 21:36:32 -07:00
99e58eab0f [Keyboard] Feature/dz60rgb cleanups (#6697)
* change LAYOUT_ANSI to LAYOUT_60_ansi

* change QMK Configurator layout to LAYOUT_60_ansi as well

* add 60_ansi support so I can make my userspace =)

* update readme

* Very strange. ISO keymap is still using 60_ansi LAYOUT macro. But then again....no ISO hottswap dz60 has been released
2019-09-08 10:27:01 -07:00
d2f87df7f4 [Keyboard] Add Freyr keyboard (#6664)
* Add Freyr keyboard

Add new Freyr tkl keyboard

* add comunity layout

* Update info.json

* Update readme.md

* Update info.json

* Update keymap.c
2019-09-08 08:48:54 -07:00
ff118bce6a Add Copenhagen Click Pad (#6681)
* Add Copenhagen Click Pad

* Update keyboards/copenhagen_click/click_pad_v1/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Removing left over boilerplate

* Update keyboards/copenhagen_click/click_pad_v1/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/copenhagen_click/click_pad_v1/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update readme.md
2019-09-08 10:34:39 +10:00
02f77e7215 Actually use correct bootloader not found message (#6695) 2019-09-08 09:55:18 +10:00
44fd317a87 Move Bootloader not found message to global variable (#6688)
* Move Bootloader not found message to global variable

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-09-08 02:06:39 +10:00
0728c0fa4e [Keymap] UT47.2 Planck-style layout switching (#6669)
* UT47.2 keymap/updates for Planck style layout switching

* UT47.2 keymap for Planck-style layout switching / code clean up

* UT47.2 keymap for Planck-style layout switching: Qwerty, Workman, Colemak, Colemak Mod-DH, and Dvorak added / code clean up

* Change the layout info to match the keymap

* Edit readme to contain relevant info for layout switching

* Edit readme to contain relevant info for layout switching

* Edit readme to contain relevant info for layout switching

* Edit readme to contain relevant info for layout switching. Add QMK Configurator file.

* Update readme.md with make information

* Undo breaking change in config.h

* Code cleanup

* Code cleanup

* Code cleanup

* More code cleanup
2019-09-07 09:04:31 -07:00
d90038eb9c [Keymap] Assorted personal keymap/userspace updates (#6691)
* Turn off more unnecessary features by default

* Double TAP_CODE_DELAY due to more media key issues

Even with this change, some of the rotary encoder turns on my BDN9's
volume knob still seem to get dropped. It's possible there's something
wrong with the encoder itself. (Maybe the TAP_CODE_DELAY actually causes
QMK to miss an encoder turn? Unclear.) The other knob (backlight
brightness) works fine, FWIW....

* Restructure userspace config.h a bit

* Hack around Instant60 Via EEPROM conflict

Remove this when #6589 is fixed for Via boards.

* Add backlight breathing and (EEPROM) reset to BDN9

* Add keymap for 9-Key macropad
2019-09-07 08:58:17 -07:00
e88f80a891 [Keymap] Big Drashna code update (#6639)
* Add a quefrency keymap

* New Alt-ernate layouts

* Enable Per Key Tapping Term to preserve sanity

* Use underglow and mod lights for status on Corne

* Update the drashna_ms keymap for quefrency

* Disable Audio since there isn't enough space

* Update KC_MAKE to ues :flash target

* Cleanup ergodox layout

* Enable i2c support for Iris

* Add keymap support for CG_SWAP

* Enable RGB Matrix Shutdown mode

* enable heatmap

* Update gitlab CI to install python3

* Remove game macros

These are no longer needed, and haven't been used in ages

* Cleanup planck layout

* Add RGB Matrix fun and RGB cleanup

* Add keycode and config for RGB Matrix idle animations

* Clean up rgb idle animation code

* Add rgb idle keycode to keymaps

* Fix issues with rgb matrix idle animation

* Fix some handling for idle animation

* Reduce idle animation timeout to 15s to be more reasonable

* fix up rgb stuff

* Fix isses with rgb functions not being called for matrix

* Use custom EEPROM Magic Number so testing is easier

* Extend Default Layer macro to support a lot more layers

* Fix bjohnson macropad

* Adjust KC_MAKE to process mods for more consistent behavior

* Fix up rgb stuff on corne

* Corne OLED Overhaul

* Fixes a number of issues with weirdness.
* Fixes issues with keylogger (should be more reliable now)
* Modulaize the OLED render sections
* Rewrite layer display code
* Update URL for Font Editor

Due to odd issues, I ended up rewriting from scratch.  And using PROGMEM versions, since I think I was getting memory overflows.

* Update polling rate on all keebs

* Fix planck ez layout config

* Remove macros from Viterbi
2019-09-07 08:57:30 -07:00
79a6c6eda5 [Keymap] Update nshanpetrosyan keymap (#6683)
* Update keymap.c

Additional functionality added to layers.

* Error fix

Fixed missing key in layer 5, fixed brightness keys with universal codes, made code more readable.

* fix missing commas

fixed missing commas on line 19 and line 23

* fix Indicator LED sticking on RGB off toggle.

fixes issue: LED indicators stay on when toggling RGB off
2019-09-07 08:25:25 -07:00
490a13a02e Add 328P to mcu_selection.mk (#6682) 2019-09-07 08:24:19 -07:00
0d94730da0 Adafruit BLE: Set SPI2X bit only when F_CPU is 8MHz (#6671) 2019-09-07 08:18:05 -07:00
91bd2117df Banish some more magic numbers (#6662) 2019-09-07 08:12:46 -07:00
c21281c593 [Keymap] Add narze userspace (#6652)
* Refactor & reimplement mod tap macros

* Reduce tapping term

* Update readme

* Add narze userspace

* Make use of narze userspace

* Extract Superduper mode

* Refactor Superduper mode

* (Ergodox Infinity) Prevent stuck modifiers

* Update ergodox_infinity/narze likewise

* Add warning for building Infinity with docker

* Fix include eeprom.h in superduper

* Try enabling superduper mode with combo for ergodox infinity

* Apply suggestions on #4546

* Convert to 4 spaces

* Map backlight step key

* Replace PLAY_NOTE_ARRAY

* Fix superduper toggle

* Re enable audio in planck rev4

* Use perform_space_cadet

* Remove superduper mod tap triggers

* Add readme for planck light firmware flashing command

* Remove unused layers

* Remove unused keycodes

* Add backlight toggle

* Remove unused songs & use DEFAULT_LAYER_SONGS

* Update readme

* Move includes to header file
2019-09-07 08:06:30 -07:00
6ca29f2b9b Run the python tests inside docker 2019-09-07 07:58:41 -07:00
16366dd23d add missing apostrophes 2019-09-07 07:58:41 -07:00
18690ddaea filter python from the list of things that trigger default builds 2019-09-07 07:58:41 -07:00
1013ae2d34 Add python tests to the travis check 2019-09-07 07:58:41 -07:00
deb6fa6a87 Add a command to format python code 2019-09-07 07:58:41 -07:00
533d6d6a46 Make the modem manager check more pythonic 2019-09-07 07:58:41 -07:00
c7eede2249 run yapf on the code 2019-09-07 07:58:41 -07:00
5b7a5b2a76 Setup a python test framework 2019-09-07 07:58:41 -07:00
4d339b7b5d Update docker_build.sh: indentation fix, error echo function (#6659)
* Replace spaces with tab in docker_build.sh

* Use errcho instead of echo >&2
2019-09-07 18:17:54 +10:00
736bdc7e97 Jotix (#6687)
* jotix ortho_4x12

* add shifted symbols

* jotix ortho_4x12 layot
2019-09-07 18:05:14 +10:00
fc5fb2fc15 CA66 R1/R2 Cleanup (#6678)
* fixup readme to adhere to QMK standards and to also have more information

* use pragma once

* strip out the custom bootmagic lite routine as it is the same as QMK's default bootmagic lite routine. Also add the caps lock led indicator

* turn on bootmagic lite

* update default keymap

* Update keyboards/playkbtw/ca66/ca66.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* remove lines 4 thru 37 and add bootloader
2019-09-07 18:04:48 +10:00
ac8f8a8914 fix missing music mode legend (#6686) 2019-09-07 07:36:40 +10:00
7ffed07310 Make USB polling rate configurable with a define (#6668) 2019-09-06 07:41:24 -07:00
f8bf1d1b16 Changed to 1209 PID (#6677) 2019-09-06 14:34:37 +10:00
f0ad3fc68a [Keyboard] Add Iris Rev 4 (#6660)
* Add Iris Rev. 4

* Fix EEPROM addresses
2019-09-05 20:10:57 -07:00
98599173d7 Add 16U2, 16U4 and USB646 to mcu_selection.mk (#6566) 2019-09-05 14:50:43 -07:00
12812fa6a4 led fix (#6672) 2019-09-05 13:41:01 +10:00
6d191635d0 Add personal Doro67 multi keymap, fix bug in KBD6X keymap (#6674)
* Add missing void parameter declarations to *_light functions

* Add doro67/multi:konstantin keymap

* Allow FNLK to be canceled with Esc

* Function layer → Fn layer in keymap comments
2019-09-05 13:38:54 +10:00
df5b2d204b [Keyboard] Missed a JTAG disable (#6667) 2019-09-03 20:26:01 -07:00
7372ce6afd added ability to change unicode input method (#6666) 2019-09-04 09:03:16 +10:00
fa71c4c91e Fix battery level code in adafruit_ble.cpp (#6648)
* Fix battery level code in adafruit_ble.cpp

The code in tsk_core/protocol/lufa/adafluit_ble.cpp that polls the
battery level for the Adafruit feather BLE controller reads the
regulated voltage, not the raw voltage coming from the battery. To do
that, the Adafruit Feather docs say you should read from pin A9:
https://learn.adafruit.com/adafruit-feather-32u4-basic-proto/power-management#measuring-battery-4-9.
(See also
https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le/pinouts#logic-pins-2-9.)

I'm not sure why, but analogRead(9); doesn't read the correct pin.
Checking all available analog pins experimentally, it turns out that
analogRead(7); returns the correct value. So the code above should read:

    state.vbat = analogRead(7);

* Update tmk_core/protocol/lufa/adafruit_ble.cpp

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Remove old comment

* Fix linking error

* Remove `#ifdef` around `#include analog.h`.

* Really fix linking error
2019-09-04 04:29:23 +10:00
e6a6b1f122 [Docs] Update i2c_driver.md (#6665)
Fix missing arg of i2c_start
2019-09-03 10:09:58 -07:00
c522009816 [Keyboard] Doro67 cleanup (#6514)
Add spacing to LAYOUT macros, add layout comments, improve consistency, fix ISO layout bug

* Remove placeholder comments in regular.h and rgb.h

* Change K## to k## in multi.h and regular.h

* Add alignment whitespace in Doro67 LAYOUT macros

* Update multi default keymaps and add layout comments

* Update rgb default keymap and add layout comments

* Add RESET to Fn layer in multi default keymaps

* Replace KC_GESC with KC_ESC in rgb default keymap for consistency with other Doro keymaps

* Update regular default keymap and add layout comments

* WIP

* Replace odd F1, F2 with proper split LShift/Backspace keys in default_multi

* Minor fixes and tweaks in multi default keymaps

* Fix Enter and NUHS positions in multi LAYOUT_iso

* Return true in process_record_user in rgb default keymap

* Update Enter position in multi info.json

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

* Update labels in multi info.json to match the default keymaps
2019-09-03 09:05:29 -07:00
5c324ee104 [Keyboard] Add Tukey board (#6657) 2019-09-03 08:43:25 -07:00
d633cf3ccb [Keymap] Update personal userspace and keymaps (#6654)
* Enable Fn layer tap dances only if LAYER_FN is defined

* Update KBD6X keymap spacing to match LAYOUT spacing

* Add regular FNLK to userspace, update keymap comment labels

* Rename KC_BRK → BREAK, KC_SYSR → SYSRQ in userspace

* Change mousekey positions in KBD6X

* Disable Console in KBD6X to reduce firmware size

* Return false in process_record_* only when overriding existing keys

* Fix Caps light not working after LSFT_FN

* Refactor Fn/Caps light, fix sequencing issues
2019-09-03 08:42:05 -07:00
55bae0a5b4 [Keymap] Satan GH60 with command prompt animation, react to keypresses (#6636)
Co-Authored-By: fauxpark <fauxpark@gmail.com>
Signed-off-by: Benjamin Große <benjamin@midokura.com>
2019-09-03 08:35:43 -07:00
dab4967f1b Add Dip Switch as a core feature (#6140)
* Add Dip Switches as a core feature

* Add documentation for Dip Switch feature

* Update Preonic Rev3 to use new feature and remove custom matrix

* Apply suggestions from code review

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

* Remove custom matrix line completely

Rather than just disabling it

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* DIP changes

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Use better check for DIP Switch configuration

* Add to show features

* Add bitmask callback for dip switch

* Fix OLKB Boards dip switch config

* Update docs to include bitmask example

* Fix comments/documentation

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Fix issues with docs and use example from @tuzonghua

* Fix wording

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Fix example to use proper formatting

Bad, BAAAAAAD drashna!!!

* Handle dip switch initialization better
2019-09-03 08:34:31 -07:00
9f46606dff Update submodule check to include LUFA (#6661)
As LUFA is now a submodule, we should be checking it.
2019-09-03 17:56:02 +10:00
f2ea65db6b [keymap] ninjonas userspace and keymaps for hotdox, lily58, & pinky3 (#6649)
* [keyboard] introducing ninjonas userspace & keymaps for hotdox, lily58, and pinky3

* [fix(#6649)] removed M_EPRM and used builtin EEP_RST keycode as-per review.

* [chore(#6649)] forgot to update keymap legend on lily58
2019-09-02 07:40:01 -07:00
0e153781f0 [Keymap] Update keymap for alice and fix for ctrl and os swap (#6642)
* update map for alice and fix for via boards

* enable bootmagic
2019-09-02 07:36:00 -07:00
27b3f3141b Fix typo in Open Graph description for docs (#6641) 2019-09-02 07:35:02 -07:00
d653e55461 [Keyboard] add rgb led configuration for xd87 (#6635)
* add rgb led configuration for xd87

* Add RGB underglow to a separate keymap

* rename keymap and make small review changes
2019-09-02 07:33:04 -07:00
05d0e8c09e Add dfu-programmer to pacman -S (#6619)
* Add `dfu-programmer` to `pacman -S` (#6618)

`dfu-programmer` now resides at `extra/dfu-programmer` and is no longer
in the AUR

* Add `--needed` option to `pacman -S` for efficiency

* Fix

* Update util/linux_install.sh

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-09-02 07:32:14 -07:00
19e85a503c [Keyboard] Atreus: Flip the middle two keys when PCBDOWN is set. (#6616)
Flipping the columns isn't enough for the Atreus keyboard, since these
two keys are distinguished by row on the same column electrically.
2019-09-02 07:30:35 -07:00
5095a999b7 Fix msys2 not installing any packages because it can't find clang (#6655) 2019-09-02 10:09:09 -04:00
bf558e42fd Run dos2unix on whole repo (#6644) 2019-09-01 09:09:43 -07:00
3fae3076ce Always run util/travis_compiled_push.sh (#6640)
Specifically, the `util/travis_compiled_push.sh` runs a number of cleanup and deployment routines. This includes `dos2unix` that fixes the line endings for sanity's sake.   However, it only runs on successful builds.  That would be fine, except some builds WILL fail (community layouts, yay), which is a problem. 

This should change the behavior to always run the post compile checks. 

However, in the long run, we should break up this script into more parts.
2019-09-01 09:09:19 -07:00
4c4ee4a26b NIU Mini Settings update and Refactor (#6651)
* update codebase to four-space indent

* update codebase to use #pragma once

* refactor config.h

* change info.json to debug linting

* refactor readme

- file header
- update docs links

* minimize and lint rules.mk

* change features

- enable mousekeys and nkro

* use GPIO commands for Status LED

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* use IS_LED_ON macro

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* update compile/flash examples in readme

* :flash doesn't use QMK Toolbox
2019-09-01 17:54:13 +10:00
f59d076898 [Keymap] Add leaf60 and tada68 keymaps (#6645)
* Add leaf60 and tada68 keymaps

* Cleanup files for pull request

* Cleanup tada68 keymap
2019-08-31 11:20:10 -07:00
d12c024dde [Keymap] Combo keymap update - For planck and dz60rgb (#6643)
* update my planck layout

* update me planck layout

* For my purple Tofu60 with dz60rgb
2019-08-31 11:14:17 -07:00
2d688ad14e readability enhancements 2019-08-31 08:50:25 -07:00
1784d1bfac Add support for passing files at the command line 2019-08-31 08:50:25 -07:00
9547774962 CLI command to format C code 2019-08-31 08:50:25 -07:00
d076234fd1 [Keymap] Added personal keymap for DZ68RGB (#6623)
* added personal CTRL keymap

* added personal dz60rgb keymap

* enabled new rgb effect

* added space cadet shift

* media player track buttons now orange

* updated keymaps with rgb setting and visual HSV setting preview

* fixed source stuff?

* added support for underglow toggle (bugged to all hell)

* everything now behaves as expected when ti comes to RGB toggles, thank god

* removed ifdefs

* changed color of MAS_CRM

* uh, whitespace

* changed rgb positions and modifiers within RGB matrix thing for CTRL and DZ60RGB

* updated keymap to work kindof

* KEYMAP: changed list of rgb effects

* changed CTRL rgb defaults

* KEYMAP: new LED layout for ctrl

* fixed white LED position in indicator

* changed capslock tap timing

* Added new keymap - dz68rgb

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-08-30 17:52:35 -07:00
19a85015c2 [Keyboard] Added Vitamins Included Rev2 (#6593)
* Fixed pin for RGB

* Added support for second revision of vitamins included

* Added rev2 config and switched to #pragma once

* Switch to quantum.h pincontrol

* Fixed left-half check

* Moved revision agnostic code to main header file

* Moved common build options to main makefile

* Referred to rev2 documentation

* JTAG is dissabled in keyboard.c now

* moved EEHANDS to rev1 config

* moved rev2 to use split_common

* Updated default keymaps

* Changed handedness ifdef to allow user-overrides

* Add some space saving defines

* Changed to more sane I2C clock

* Removed rev2 check in matrix.c as rev2 uses split_common

* Removed rev2 check in rev1 only code

* Update debounce constant name

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

* Switch KEYMAP macro to LAYOUT

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

* Switch kc_keymap macro to layout_kc

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

* Switch kc_keymap macro to layout_kc

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

* Add legacy layout macro alias

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

* Update keyboards/vitamins_included/rev2/config.h

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

* Split readme into revision specific versions

* Updated src to allow LTO

* Renamed readmes to lower-case

* Switched my keyboards to FEED VID

* Fixed markdown lint errors

* fixed readme links

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

* Maintain keymap backwards compatibility

Co-Authored-By: Joel Challis <git@zvecr.com>
2019-08-30 17:52:02 -07:00
a2b855febb [Keyboard] add kbd67mkiirgb (#6605)
* add kbd67mkiirgb

* Update info.json

* Update readme.md

* Update rules.mk

* Update keyboards/kbdfans/kbd67mkiirgb/kbd67mkiirgb.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/kbdfans/kbd67mkiirgb/kbd67mkiirgb.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Delete kbd67mkiirgb.c.b

* Update keyboards/kbdfans/kbd67mkiirgb/config.h

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

* Update keyboards/kbdfans/kbd67mkiirgb/info.json

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

* Update keyboards/kbdfans/kbd67mkiirgb/keymaps/default/keymap.c

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

* Update keyboards/kbdfans/kbd67mkiirgb/keymaps/default/keymap.c

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

* Update keyboards/kbdfans/kbd67mkiirgb/kbd67mkiirgb.h

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

* Update keyboards/kbdfans/kbd67mkiirgb/info.json

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

* Update keyboards/kbdfans/kbd67mkiirgb/readme.md

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

* Update keyboards/kbdfans/kbd67mkiirgb/readme.md

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

* fix led positon
2019-08-30 17:51:05 -07:00
bbc5156781 [Keymap] Workman layout for Atreus keyboard (#6606) 2019-08-30 17:50:11 -07:00
42977d25fc [Keyboard] add Pancake Keyboard (#6610)
* Create readme.md

* Add files via upload

* Create readme.md

* Add files via upload

* Create readme.md

* Add files via upload

* Create readme.md

* Add files via upload

* Update keyboards/pancake/info.json

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

* Update keyboards/pancake/keymaps/default/keymap.c

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

* Update keyboards/pancake/keymaps/default/keymap.c

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

* Update keyboards/pancake/readme.md

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

* Update keyboards/pancake/keymaps/default/keymap.c

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

* Update keyboards/pancake/info.json

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

* Update keyboards/pancake/feather/rules.mk

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

* Update keyboards/pancake/promicro/rules.mk

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

* Update keyboards/pancake/keymaps/default/keymap.c

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

* Update rules.mk

* Update rules.mk

* Update pancake.h
2019-08-30 17:49:48 -07:00
edc8283572 Removed prescaler define from avr i2c, as it was impossible to use (#6617) 2019-08-30 17:47:11 -07:00
b7ddf64b54 [Keyboard] Add keyboard Reviung39 (#6620)
* add keyboards/reviung39

* fix reviung39/keymaps/default/

* [Keymap] add keymap default_s for reviung39 type-s

* [keymap] fix default and default_s

* [keymap] remove backup directory(keyboards/reviung39/backup/)

* [keymap] Update readme.md

* [keyboards] fix keyboards/reviung39/reviung39.h, rules.mk, /keymaps/default/keymap.c

* [keymap] fix /default_s/keymap.c

* Update readme.md

* Update readme.md

* fix rules.mk

* [keymaps] fix default/keymap.c
2019-08-30 17:46:31 -07:00
9340b70b7e [Keyboard] Assorted personal keymap/layout updates (#6621)
* Switch Quefrency back to I2C (#6161 fixes the lag)

* Update Quefrency keymap

* Add reset and EEPROM reset keybindings so these tasks can be performed
separately, rather than relying on Bootmagic Lite, which performs both
tasks at the same time.

* Move Caps Lock from Fn+Ctrl to Fn+Tab since Fn+Ctrl is sometimes used
as part of a more complex keybinding, whereas Fn+Tab is always safe.

* Update KBD67 keymap

* Add reset and EEPROM reset keybindings so these tasks can be performed
separately, rather than relying on Bootmagic Lite, which performs both
tasks at the same time.

* Move Caps Lock from Fn+Ctrl to Fn+Tab since Fn+Ctrl is sometimes used
as part of a more complex keybinding, whereas Fn+Tab is always safe.

* Move Menu to a layer tap on the Fn key since that's a more natural
location.

* Update 60% Tsangan HHKB layout

* Move Caps Lock from Fn+Ctrl to Fn+Tab since Fn+Ctrl is sometimes used
as part of a more complex keybinding, whereas Fn+Tab is always safe.

* Update 60% ANSI split backspace/right-shift layout

* Add reset and EEPROM reset keybindings so these tasks can be performed
separately, rather than relying on Bootmagic Lite, which performs both
tasks at the same time.

* Move Caps Lock from Fn+Ctrl to Fn+Tab since Fn+Ctrl is sometimes used
as part of a more complex keybinding, whereas Fn+Tab is always safe.
2019-08-30 17:45:49 -07:00
733ec614d8 [Keyboard] Support flashing DZ60 with :flash command (#6624) 2019-08-30 17:44:47 -07:00
075495a792 [Keyboard] Support flashing Instant60 from command line (#6625) 2019-08-30 17:44:28 -07:00
feb1742061 [Keyboard] Add option to use 4x12 layout for Nyquist (#6633)
* Add option to use 4x12 layout for Nyquist

* Add 4x12 Nyquist support to configurator

* Add height to 4x12 configurator layout

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

* Remove QWERTY keycode

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-30 17:41:22 -07:00
2e9a096c46 [Keymap] Personal ISO-ish keymap for HHKB (#6632)
* Personal ISO-ish keymap for HHKB

* Fix keymap image
2019-08-30 17:40:24 -07:00
06de8fd106 [Keyboard] Add Caravan keyboard (#6630)
* added caravan keyboard

* updates per PR review

* updated bootmagic setting

* updated LAYOUT

* updated imgur url
2019-08-30 17:39:35 -07:00
8de164e036 Fix Redefinition of OLED_TIMEOUT (#6628) 2019-08-30 16:55:47 -07:00
d217307747 consistency 2019-08-30 15:01:52 -07:00
1061c024d8 Add a note about clang-format to the changelog 2019-08-30 15:01:52 -07:00
ddb69d4d39 Merge point for 2019 Aug 30 Breaking Change 2019-08-30 15:01:52 -07:00
b624f32f94 clang-format changes 2019-08-30 15:01:52 -07:00
61af76a10d Hotfix: Reinstate the KC_DELT alias 2019-08-30 15:01:52 -07:00
39baa5e80d add lufa as a submodule 2019-08-30 15:01:52 -07:00
cf4575b94a Fix the LUFA lib to use a submodule instead of just files (#6245)
* 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-30 15:01:52 -07:00
75ee8df19e Update Atreus to current code conventions (#5849)
* Update atreus to current code conventions - add multi revision instead of defines

* Remove config.h duplication from user keymaps

* Add breaking change log

* Add missing pragma once
2019-08-30 15:01:52 -07:00
3619678b10 Migrate ACTION_BACKLIGHT_* to BL_* (#6299)
* Branch point for 2019 Aug 30 Breaking Change

* LUFA USB descriptor cleanup (#4871)

* Fix indentation

* Fix braces

* Expand descriptor headers

* Align descriptor elements

* Nicer formatting

* Tidy up preprocessor statements

* Remove VERSION_BCD redefine - LUFA_VERSION_INTEGER is currently 0x170418

* Tidy up comments

* Tweak ordering of  HID report elements (no functional changes)

* We don't need all of these newlines

* Move default USB_MAX_POWER_CONSUMPTION closer to where it makes sense

* Ask nicely

* Add some more comments

* Change indentation back to 4 spaces

* Add changelog entry

* Language Keymap extras backport from ZSA fork (#6198)

* Swedish extra keymap refactor

* Fix swedish $ sign definition (#81)

* Fix br abnt2 keymap compilation error

* Add PR changelog doc

* Update PR6198.md

* Enforce clang-format (#6293)

* Enforce clang-format on commit for core files

* forgot about tests

* Migrate ACTION_LAYER_MOMENTARYs to MO() (#5176)

* Migrate ACTION_LAYER_MOMENTARYs to MO()

* Add changelog entry

* Update docs/ChangeLog/20190830/PR5176.md

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

* Migrate ACTION_BACKLIGHT_* to BL_*

* Add changelog

* Update docs/ChangeLog/20190830/PR6299.md

Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-08-30 15:01:52 -07:00
267a85c885 Remove KC_DELT alias in favor of KC_DEL (#6327)
* Remove KC_DELT alias in favor of KC_DEL

* Add changelog
2019-08-30 15:01:52 -07:00
7ff57644e1 Fix vusb compiling after clang-format 2019-08-30 15:01:52 -07:00
beb320a5c6 Fix Windows formatting issues
Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-08-30 15:01:52 -07:00
5a2a650730 Update swedish based keymaps with newer keycodes 2019-08-30 15:01:52 -07:00
691be16b23 Have clang ignore the code in bootloader_size.c 2019-08-30 15:01:52 -07:00
210da974a0 Add new files to the list of files that are formatted. (#6296) 2019-08-30 15:01:52 -07:00
554e4bf25c Migrate ACTION_LAYER_MOMENTARYs to MO() (#5176)
* Migrate ACTION_LAYER_MOMENTARYs to MO()

* Add changelog entry

* Update docs/ChangeLog/20190830/PR5176.md

Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-08-30 15:01:52 -07:00
9e20478e6b Enforce clang-format (#6293)
* Enforce clang-format on commit for core files

* forgot about tests
2019-08-30 15:01:52 -07:00
51ee244906 Language Keymap extras backport from ZSA fork (#6198)
* Swedish extra keymap refactor

* Fix swedish $ sign definition (#81)

* Fix br abnt2 keymap compilation error

* Add PR changelog doc

* Update PR6198.md
2019-08-30 15:01:52 -07:00
ac16726895 LUFA USB descriptor cleanup (#4871)
* Fix indentation

* Fix braces

* Expand descriptor headers

* Align descriptor elements

* Nicer formatting

* Tidy up preprocessor statements

* Remove VERSION_BCD redefine - LUFA_VERSION_INTEGER is currently 0x170418

* Tidy up comments

* Tweak ordering of  HID report elements (no functional changes)

* We don't need all of these newlines

* Move default USB_MAX_POWER_CONSUMPTION closer to where it makes sense

* Ask nicely

* Add some more comments

* Change indentation back to 4 spaces

* Add changelog entry
2019-08-30 15:01:52 -07:00
21df614a8e Branch point for 2019 Aug 30 Breaking Change 2019-08-30 15:01:52 -07:00
c27aa60c50 Make the CLI Ψ capital (#6637) 2019-08-30 10:23:36 -07:00
931e9bdbe4 Decrement EECONFIG magic number
This will manually wipe the EEPROM. This is a hacky solution for when new ranges are added or moved around. 

A better (more complicated) solution would be to zero out everything, not just known ranges.  But for now, this is a hacky solution that will work.
2019-08-27 20:32:36 -07:00
5ef7367e6c Wonderland: README (#6613)
* Wonderland README

breaks

* Wonderland info.json

* Update keyboards/maartenwut/wonderland/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-27 16:22:20 -07:00
5c6c556933 [Keymap] default keymap fix for questionmark (redox, redox_w) (#6574)
* default keymap fix for questionmark

Added /? to the default position for a qwerty keyboard. Moved |\ to the left ctrl with the same behaviour as before.

* Small PR adjustments and Keypad optimization

* Update keymap.c

* Update keymap.c
2019-08-27 14:20:25 -07:00
d2ce12d15d pegasushoof Specify the bootloader to use :flash (#6614)
A support for newer :flash command to pegasus hoof
2019-08-26 11:08:18 -07:00
bc86eb2233 Fix Typo in :flash target for missing bootloader (#6615) 2019-08-26 10:16:46 -07:00
f2d9f912b1 Mars80 Bug: Physical/Electrical Matrix Mismatch (#6612) 2019-08-26 13:46:35 +01:00
0b89809ac4 [Keymap] Redox_w Use layer_state_set_user instead of matrix_scan_user (#6608)
* use layer_state_set_user

* fix
2019-08-25 12:50:29 -07:00
957070a6b5 Added OLED Display autoscroll during periods of OLED data inactivity (#6546)
* Added OLED Display autoscroll during periods of OLED data inactivity.

* Fixing compile errors

* Feedback from review
2019-08-25 12:37:55 -07:00
f22c5c17b6 Refactor qmk compile-json to qmk compile (#6592) 2019-08-25 11:58:24 -07:00
c289a4cb20 RGB Inidcator example for new van pcbs (#6544)
* RGB Inidcator example for new van pcbs

* simplify config.h

As per @drashna in CR
2019-08-25 08:43:47 -07:00
cbe1af47de Add new 60% Tsangan HHKB layout (#6607) 2019-08-25 08:40:32 -07:00
f6da00b85d [Keyboard] Maartenwut Wonderland PCB (#6492)
* Initial Commit

* ID

* Use current manu name

* Fix define DEBOUNCE

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Fix NUM Lock LED detection

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Fix CAPs LED detection

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Fix Scroll Lock LED detection

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Use correct convention for setting pins

* Move folder to maartenwut

 - enable velocikey

* Fix columns size

* Sync with homerowco

* Add Keebs keymap

* Best practices

* Latest keymap changes from homerowco
2019-08-24 23:44:20 -07:00
43b0309970 Add 2015 revision of Pegasus Hoof to QMK (#6595)
* Add 2015 revision of pegasus hoof to QMK

* Add different version strings

* Fix ansi tkl layout

 - temporary JIS mapping, I can't test this as I don't have the hardware

* Reverse engineer JIS layout macro for 2015 Pegasus Hoof

* Linting on 2013.h

* Add more resources to readme

* Update keyboards/bpiphany/pegasushoof/2013/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/bpiphany/pegasushoof/2015/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/bpiphany/pegasushoof/readme.md

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

* Update keyboards/bpiphany/pegasushoof/readme.md

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

* Try to use core debouncing code

* return changed

* Use helpers
2019-08-24 13:10:36 -07:00
caab1d0303 [Keyboard] New Keyboard: EVE Meteor (#6565)
* initial commit

* Add the correct pins and ordering

* create an appropriate keymap macro for the board

* add an appropriate LAYOUT macro

* add a keymap that fits the LAYOUT layout macro

* add QMK Configurator support

* add missing pin D7 and LAYOUT_all

* fix my mistake when I added an extra key to the electrical matrix instead of the physical one

* add qmk configurator support for LAYOUT_all

* Update keyboards/eve/meteor/readme.md

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

* Update keyboards/eve/meteor/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* use the default names so BMC still works

* remove mcu rules as per resolution of 6253
2019-08-24 09:44:04 -07:00
e243afe23e updates the coc 2019-08-24 12:43:39 -04:00
c9c33978ce [Keymap] a keymap to "transform" a jj40 info a simil Alpha28, to enjoy its simplicity and power (#6599) 2019-08-24 09:08:54 -07:00
2c8d8be718 [Keyboard] Add JNAO keyboard (#6598)
* Add JNAO keyboard

* Use layout macro for default_4x12

* Add bakingpy keymap

* Add info.json data

* Remove bakingpy keymap from jnao, add ortho_4x12 layout fetching

* Clear up default keymaps
2019-08-24 09:06:27 -07:00
70329b4fbb [Keymap] ISO keymap for TADA68 with programming in mind (#6597)
* Layout with better use of navigation keys

* Update keyboards/tada68/keymaps/onelivesleft/config.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-24 09:02:37 -07:00
2ef6bbbf5f [Keymap] Update to userspace kuchosauroand0 (#6596)
* added combos

* minor adjustments, added combos

* Add second encoder, add modifiers to encoders

Added a skeleton for the possibily having a second encoder.
Added 9 modifiers for the first rotary encoder:

- None
  General navigation. Page up/down
- SHIFT
  Fast navigation. Home/end
- CTRL
  Vertical navigation. Up/down
- CTRL+SHIFT
  Horizontal navigation. Left/right
- ALT
  Audio volume control.
- GUI
  Browser navigation(windows). Forward/backward
- ALT+SHIFT
  Form navigation. Tab up/down
- ALT+CTRL
  Media control. (Play|pause)/mute
- HYPER
  Media navigation. Next/prev track

Key codes are stored in `uint16_t encoder_actions[2][9]`

* Add second encoder, add modifiers to encoders

Added a skeleton for the possibily having a second encoder.
Added 9 modifiers for the first rotary encoder:

- None
  General navigation. Page up/down
- SHIFT
  Fast navigation. Home/end
- CTRL
  Vertical navigation. Up/down
- CTRL+SHIFT
  Horizontal navigation. Left/right
- ALT
  Audio volume control.
- GUI
  Browser navigation(windows). Forward/backward
- ALT+SHIFT
  Form navigation. Tab up/down
- ALT+CTRL
  Media control. (Play|pause)/mute
- HYPER
  Media navigation. Next/prev track

Key codes are stored in `uint16_t encoder_actions[2][9]`

* Clean up; added combos

Combos:
- CV: Copy
- XC: Cut
- ZV: Paste
- QP: KC_SLEEP

* Fix LEADER_DICTIONARY to be more useful

* Add documentation

* Minor fixes

* Raise TAPPING_TERM

* testing

* Rearrange modifiers

* Fix kc being stored in uint8 instead of uint16

* Update documentation

* Clean up

* Remove excess comments

* Put encoder_actions in progmem
2019-08-24 09:01:12 -07:00
51bcadf38c Add 'bootloadHID' flash target (#5587)
* Add 'bootloadHID' flash target

* Prep for flash target

* Add :flash support

* Align bootloader wait messages

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update template to suggest use of :flash
2019-08-24 08:35:11 -07:00
fb7c65dc34 Add Zadig 101 to docs (#6585)
* Add Zadig 101 to docs

* Add USBasp bootloader name

* Add links to the page

* Note the usual VIDs and PIDs for the bootloaders

* Add "List All Devices" note, just in case

* Talk about keyboard-specific bootloader procedures

* Send users to the new page in "Unknown Device for DFU Bootloader" section

* Halfkay bootloaders are also an exception here
2019-08-23 23:38:21 -07:00
064d9da93e Add Soft Serial Speed to Diverge3 keyboard config for compatibility (#5076) 2019-08-23 22:23:53 +01:00
e0f91f37c4 Added 4by3 keyboard (#6547)
* Added 4by3 keyboard

* Added DEVICE_VER and DESCRIPTION

* Removed F_CPU, F_USB, ARCH, and OPT_DEFS

* Add 3 new LAYOUT macros for orientations and fixes

* Apply suggestions from code review

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

* Added comments to 4by3 and changed info.json

* Update keyboards/4by3/4by3.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-08-23 14:18:37 -07:00
ae44ec9820 Align flashing behaviour of dfu-util (#6578)
* Align flashing retry logic of dfu-util

* Align bootloader wait messages

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-08-22 16:08:45 -07:00
1c805b3d00 Relocate pca9555 driver to core (#6563)
* Move pca9555 files to central location

* Get pca9555 boards compiling

* Slight alignment of rules.mk
2019-08-22 15:27:18 +01:00
a20e6aa022 Reduce compile size to fix various Travis CI errors (#6426)
Due to feature creep
2019-08-22 01:59:37 -07:00
b5ee6c200c Fixup Bootmagic code (#6386) 2019-08-22 00:22:32 -07:00
8a2e328a33 [Keyboard] Fix RGB_TOG cycle for Massdrop CTRL default keymap (#6056)
This includes the modifier keys in "keys only" mode, bringing the keymap
closer to what the off-the-shelf firmware does.
2019-08-21 17:47:45 -07:00
129e4d1b2f [Docs] Update how_keyboards_work.md (#6528)
* Update how_keyboards_work.md

bridged the gap between scancodes and keycodes, the doc didn't make the distinction and was ambiguous.

* Update docs/how_keyboards_work.md

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update docs/how_keyboards_work.md

fix typo

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-21 17:44:37 -07:00
fcf87370a8 [Keyboard] Update NovelPad (#6559)
* Update NovelPad

* Lowercase readme

* Update keyboards/novelpad/keymaps/default/keymap.c

Co-Authored-By: Joel Challis <git@zvecr.com>

* Remove default F_CPU, F_USB, ARCH, and OPT_DEFS - covered in mcu_selection.mk
2019-08-21 17:41:29 -07:00
63b96c34ce [Keyboard] new keyboard "angel17" (#6542)
* add angel17 keyboard

* fix rules.mk

* change BOOTLOADER

* set LAYOUT_numpad_5x4

* Update keyboards/angel17/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* fix LAYOUTS = numpad_5x4

* update info.json
2019-08-21 17:40:37 -07:00
94efa18c28 [Keyboard] Updates to ZSA boards (#6513)
* Update Layer functions to use layer_state_t in ZSA Boards

* Update Music Mask for ZSA boards

Fixes an issue with the board getting stuck on Adjust layer when activating music mode

* Add Support for SMART LED Toggle to Planck EZ

* Add support for SMART LED toggle in Ergodox EZ

* Ifdef swiss cheeze for Oryx Configurator

* Documentation and updates

* Add Oryx Keymap

* Add option to configure the layers for the Layer Indicator

* Update keymap with better examples

* Make sure eeprom is initialized before reading from it

* Force flush of LED matrix when suspending board

This fixes an issue where the LEDs don't fully clear sometimes when the host system goes to sleep

* Enable RGB Sleeping by default

* Add clarification about planck ez led layer config
2019-08-21 17:19:07 -07:00
1c5b0cbbeb AVR GPIO macro defines more readable (#5937)
* A little easier to read the definition of the GPIO control macro for AVR.

No change in build result.

* Changed to not use GNU statement expression extension.

No change in build result.

* Modified split_common/serial.c to use qmk_firmware standard GPIO control macro.

No change in build result.

* fix PE6 -> E6

* remove some space

* add some comment to config_common.h

* Changed split_common/serial.c to use a newer version of qmk_firmware standard GPIO control macro.
2019-08-21 17:10:47 -07:00
b62e160a89 Additional changes for Layer State typedef compatibility (#5906)
* Additional changes for Layer State typedef compatibility

* Replace biton32 with get_highest_layer in docs

* Change additional layer structure code

* Fix uGFX reference issue

* Remove dynamic_keymap check

* Where did all these extra spaces come from

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-08-21 17:07:49 -07:00
d534c72a54 Added keycodes for swapping and unswapping the Control and OS keys (#6110)
* Add MAGIC_SWAP_CONTROL_LGUI and MAGIC_UNSWAP_CONTROL_LGUI keycodes

Key codes to swap and unswap the control and windows/cmd keys

* Fix issues with pull request #6110

Renamed swap/unswap lctl and lgui key codes, added key codes to swap/unswap rctl and rgui, and moved new bool inside keycode_config.h struct to the end

* Move new keycodes to the end of the enum (#6110)

* add cases for swapped control and OS keys to mod_config (#6110)

* Add new keycodes to feature_bootmagic.md (#6110)

* Add R+L swap codes to keep in parity with AG_* codes

* Extend Magic range check to include new magic codes

* Update audio docs

* Combine 2 byte ranges into 1 word for EECONFG

Fix names for Keymap config EEPROM

* Update docs/feature_bootmagic.md

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

* Update docs/feature_bootmagic.md

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

* Update docs/feature_bootmagic.md

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

* Update docs/feature_bootmagic.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-21 17:07:08 -07:00
6a79b05cf0 [Keyboard] Tweak RGB Matrix timing for ZSA Boards (#6422)
* Optimize RGB Matrix rendering for Ergodox EZ

* Optimize RGB Matrix rendering for Planck EZ

* Update keyboards/planck/ez/config.h

Co-Authored-By: Joel Challis <git@zvecr.com>
2019-08-20 22:39:13 -07:00
f2c179de58 Remove superfluous JTAG disable code (#6445)
* Remove superfluous JTAG disable code

* 32A has differently named register

* Accidentally some operators

* 32A also has different JTAG pins

* Wrap disable_jtag() in an ifndef

* Document this new define

* Rename the define, it conflicts with a LUFA thing

Also, move the ifndef wrapping to the call in keyboard_setup()
2019-08-20 22:18:52 -07:00
977c316eb1 [Keymap] dumbpad updates, new keymap (#6481)
* removed some debug prints

* removed unnecessary files, tweaked some things

* rotary encoder button now connected into column 0, row 3

* tweaked keymap and moved encoder control into keymap

* tweaks

* added test keymap

* updated some things to make it easier to work with QMK configurator

* updates after merging latest master in

* fixed a few things

* removed test keymap and all related #ifdefs

* changed some dumbpad default keys, added KC_LOCK

* added image to readme

* added link to PCB github repo

* moved lock key to the rotary encoder pushbutton

* making suggested changes from @fauxpark in https://github.com/qmk/qmk_firmware/pull/6452

* adding bootmagic lite since i'm lazy and haven't soldered on the reset button...

* renamed  to

* using 7 underscores for KC_TRNS

* adding my layout (default is for wife)

* updated my own layout, tweaked default keymap to use cleaner switch for encoder control

* removed commented out import from imchipwood keymap, removed unnecessary comment from default layout

* added LED layer control

* flash the layer indicator LEDs at startup

* change layer_state_set_user to layer_state_set_kb

Co-Authored-By: Joel Challis <git@zvecr.com>

* in layer_state_set_kb, return layer_state_set_user

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* remove include of upper level config.h, add pragma once

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* changing default keymap slightly, added config.h for default layout

* change _delay_ms to wait_ms

* replaced locking numlock with numlock

* Update keyboards/dumbpad/dumbpad.c

change `keyboard_pre_init_user` to `keyboard_pre_init_kb`

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update keyboards/dumbpad/dumbpad.c

adding `keyboard_pre_init_user()` to `keyboard_pre_init_kb()`

Co-Authored-By: Joel Challis <git@zvecr.com>

* fixed some comments about the layer key (MO to TT) and the SUB layer rotary encoder control
2019-08-20 22:08:30 -07:00
367eac2229 [Keyboard] PCB Ruler updates (#6584)
* Move default keymap's rules to keyboard level

* Concatenate the two sets of rules

This sets CONSOLE_ENABLE to no, which was being set at the keymap level.

* Wrap the USB Device Description in quotes

Some preventative maintenance. The firmware for the_ruler can't be compiled without this change if `CONSOLE_ENABLE = yes` because this string has a comma, which gets picked up as two arguments by the Command code, instead of one as it should be.

* Linting

- remove firmware size impacts
- remove trailing white space
- visual alignment of rules

* Use QMK's pre-loaded default rules for atmega32u4

* Update readme

- markdown formatting
- update Hardware Availability link (Maple Computing's site has disappeared)
- update Docs links

* Update header files to use #pragma once
2019-08-20 21:57:45 -07:00
5fca6c0120 [Keymap] Add velocikey, move reset and align layout (#6569) 2019-08-20 21:33:06 -07:00
42f2ad96a3 [Keymap] mikethetiger's let's split eh? keymap (#6562)
* Added my Preonic keymap

* Update keyboards/preonic/keymaps/mikethetiger/keymap.c

Co-Authored-By: mikethetiger <30720424+mikethetiger@users.noreply.github.com>

* Update keyboards/preonic/keymaps/mikethetiger/keymap.c

Co-Authored-By: mikethetiger <30720424+mikethetiger@users.noreply.github.com>

* Added my Preonic keymap

* Added my Preonic keymap

* mikethetigers lets slpit eh keymap
2019-08-20 21:22:54 -07:00
a0f248c20e Implement NUMLOCK indicator light for XD96 (#6581) 2019-08-21 02:26:00 +01:00
9bb4e63a11 Remove old promicro_bootloader_jmp() declarations (#6444) 2019-08-21 02:05:08 +01:00
4003d077ce Add a universal flash command for cli (#6224)
* Add universal flash command

* Add bootloader info to I:C boards

* Add support for ATSAM

* Add messages for flash target

* Message cleanup

* Add USB ASP Flashing target

* Make usbasp target more universal

* Add phoney target for usbasp

* Clarify error message when bootloader isn't matched
2019-08-20 15:39:24 -07:00
91ee6a1dbb [Docs] Add RGB Matrix default mode define info (#6564) 2019-08-19 15:03:05 -07:00
92f9b6c3bd Add ATmega32U2 to mcu_selection.mk (#6561) 2019-08-17 14:29:41 -07:00
ddaf37ffa9 Reword a note about the MANUFACTURER and PRODUCT defines in hardware_avr.md (#6558) 2019-08-17 11:41:55 -07:00
683605a9dc Userspace kuchosauronad0 (#6541)
* initial commit

* Update layout. Tweak rules.mk

* initial userspace configuration for kuchosauronad0

* modified userspace for kuchosauronad0

* added OSL_UNI

* clean up

* clean up

* style

* style

* added more unicode

* fixed representation

* fixed representation

* added comments

* added comments, restructure

* accidently one line

* restructure

* restructure

* added git_lazy(void)

* fixed indenting and added missing symbols

* fixed indent

* fixed indent

* update

* change tapping_term to 150

* added UNICODEMAP_ENABLE block

* replace register with tap_code where possible

* formatting

* rearrange sequences

* clean up

* clean up

* added unicode layer

* disabled tap dance

* add files for encoder

* removed unnecessary include

* removed unnecessary stuff
2019-08-17 08:19:35 -07:00
c178bbf2e5 Illustrate the emoji layer (#6555)
Now the Emoji layer is easier to visualize.
2019-08-17 08:18:40 -07:00
802c575506 Remove backslashes from template keymap (#6548) 2019-08-17 00:29:00 -07:00
848f3713ad [Keymap] add niu_mini custom keymaps (#6552) 2019-08-16 17:56:15 -07:00
0c03811d6a [Keymap] add "ridingqwerty" user and keymap for atreus keyboard (#6533)
* add userspace and atreus keymap

* cleaning up notes/comments

* Update keyboards/atreus/keymaps/ridingqwerty/atreus.c

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update keyboards/atreus/keymaps/ridingqwerty/atreus.c

Co-Authored-By: Joel Challis <git@zvecr.com>

* Create readme.md

* remove reference to matrix_init_kb from atreus.c

* correct atreus.c

* remove unnecessary defines

* merge register/unregister sequence into single tapcode

* move 'LAYOUT to keymap.c; remove atreus.h

* remove TAPPING_TERM from keyboard-level config.h
2019-08-16 16:54:16 -07:00
36dd261d06 Add support for different encoder pinout for right half of split keyboard (#6521)
* Add support for different encoder pinouts for split keyboard

* Update documentation for new encoder pinout feature
2019-08-16 16:46:41 -07:00
61b5914a80 Fix Clueboard hotswap gen1 not compiling when LED Matrix is disabled (#6427)
* Fix Clueboard hotswap gen1 not compiling when LED Matrix is disabled

* Move keymap.json to default keymap folder

* Revert "Move keymap.json to default keymap folder"

This reverts commit 7f28df909d7e4dcc79ab0ff44fe264656b5dfa18.
2019-08-16 16:29:29 -07:00
9813a6f950 Add an alternative method for keyboard discovery to speed up build (#6073)
* Add an alternative method for keyboard discovery to speed up build

* Chain MAKEFLAGS for docker_build.sh

* Slight improvement to number of items sent to sort

* Remove debug line

* Fix line escape
2019-08-15 22:03:26 +01:00
fadb69e203 Refactor of lets_split_eh to enable RGB split animations (#6411) 2019-08-15 22:01:34 +01:00
ee8d9bd40a Remove duplicate test keyboards (#6539)
* Remove test keyboards now onekey and splittest have been extended

* Add f072 for testing
2019-08-15 06:57:43 -07:00
d578aaefcd [Keymap] Fix include following Wilba refactor (#6538) 2019-08-14 12:31:18 -07:00
75b28225db [Keymap] Cosmetic fix for default Wasdat keymaps (#6531) 2019-08-14 12:18:30 -07:00
5d23fb1e3a [Keymap] Xd75 bulbizarre keymap (#6525)
* Added Bulbizarre keymap for the XD75

* Fixed no newline at the end of file

* Update keyboards/xd75/keymaps/bulbizarre/readme.md

Co-Authored-By: MechMerlin <30334081+mechmerlin@users.noreply.github.com>

* Update led status check

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Remove unnecessary define

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-08-14 12:10:44 -07:00
d14ef52b80 [Keymap] Update gherkin to use gpio (#6520) 2019-08-14 12:08:01 -07:00
41482e02a6 [Keyboard] Align xd84 and xd96 with moon (#6465)
* Refactor xd84 to use LINK_TIME_OPTIMIZATION_ENABLE

* Refactor xd96 to use LINK_TIME_OPTIMIZATION_ENABLE

* Align xd84 and xd96 with moon

* Update keyboards/xd96/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/xd84/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-08-14 12:07:26 -07:00
547fbe769c Enable PWM Support for Planck EZ Indicator Lights (#6473)
* remove led layer code

* enable PWM on STM32F303

* Unusable PWM code

* Updated PWM Stuff?

* PWM Semi-working

* Both LEDs working at the same time

* Update names

* Add led level functions

* Add LED levels and persistent settings

* Revert change due to issues with timing related code

* Review feedback and minor cleanup
2019-08-13 10:28:12 -07:00
5004562441 [Keyboard] Add: Initial steamvan firmware code (#6501)
* Add: Initial steamvan firmware code

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update: Remove old macro commands, per reviewer comments

* Apply suggestions from code review

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

* Update: Remove redundant backlight struct

* Update: Replace preprocessor defines with enum
2019-08-13 10:26:54 -07:00
0ec0d29e9f [Keymap] Adding my userspace and keymaps (#6496)
* add Userspace and keymaps

* Adding keymaps for zeal60 and iris
* Created my own tap dance that toggles RGB Mode based on whether I toggled caps lock or not

* parent 578ed42a7f8f986147cad040d50d4ae1d24a32e2
author Seth Barberee <seth.barberee@gmail.com> 1565065903 -0500
committer Seth Barberee <seth.barberee@gmail.com> 1565065903 -0500

move to userspace

add zeal60

* update based on review

* move userspace to github name
2019-08-13 10:25:51 -07:00
d8d2a09674 Fix LT() crashing some ARM keyboards (#6529) 2019-08-13 10:23:14 -07:00
576b138c6e Add romac keymap (#6523) 2019-08-12 19:57:00 -07:00
38ad0d2673 Modified imcomplete keymap for kudox jis. (#6524) 2019-08-12 19:56:25 -07:00
ed65881565 update arrows on lower layer (#6517) 2019-08-10 16:08:53 -07:00
b93e1309e5 [Keyboard] Add meson keyboard (#6482)
* Add meson keyboard

* Apply suggestions from code review

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

* Added soft reset and layer 3

* bootmagic light

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-09 18:38:13 -07:00
9114d6ebe9 Update keymap (#6515)
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-08-09 17:20:43 -07:00
c0e6734d3f [Keymap] removes gamelayer, finally got rgb working (#5817)
* removes gamelayer, finally got rgb working

* lowercasing readme

* changed to layout_ortho_4x12

* rules.mk: Removed BACKLIGHT_CUSTOM_DRIVER
2019-08-08 14:17:49 -07:00
406f03bb0c Mask off TD() parameter properly (#6143)
* Mask off TD() parameter properly

* More parentheses
2019-08-08 14:15:34 -07:00
405dea01be Add some defaults for ATmega32A to mcu_selection.mk (#6253)
* Add some defaults for ATmega32A to mcu_selection.mk

* Remove boilerplate from templates

* Relax INTERRUPT_CONTROL_ENDPOINT and PROGRAM_CMD

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-08-08 14:09:54 -07:00
2f6c068e0d Extend allowed range of tappable keycodes to include modifiers (#5809)
* Extend allowed range of tappable keycodes to include modifiers

* Get rid of the magic numbers altogether

* Remove some more magic numbers

* Extract LM() functionality from ACT_LAYER_TAP

* Use ACTION() macro everywhere
2019-08-08 13:58:05 -07:00
2a534e87ac Rename QK_TMK(_MAX) to QK_BASIC (#6509) 2019-08-08 13:32:30 -07:00
x1
f3e73965f0 [Keymap] Add kudox japanese keymap (#6508)
* Add a JIS keymap for kudox.

* Remove unnecessary codes.
2019-08-08 13:30:21 -07:00
b4c03070de [Keymap] Fix rgb matrix effects on dshields keymaps. (#6505) 2019-08-08 13:21:54 -07:00
4d72aa428f Improve backlight PWM pin support (#6202)
* Improve backlight PWM pin support

* I accidentally an equals sign

* Another typo

* Order by pin number

* Throw an error if backlight pin is C4 or C5 on 16/32U4

* Use else for clarity

* Minor alignment adjustments
2019-08-08 13:12:12 -07:00
57540af102 Change "yu" to "you" in combo docs (#6510) 2019-08-08 18:10:16 +01:00
2c0c25d014 Move Alice to TGR Directory (#6502)
* git mv alice into the tgr directory

* update readme with new build instructions
2019-08-07 19:02:27 -07:00
8479dd65d4 [Keyboard] Southpole: add Configurator layout data (#6498) 2019-08-07 19:00:45 -07:00
3cb28bbe42 Use the older universal_newlines name instead of text (#6506) 2019-08-07 12:00:46 -07:00
74d7d232e3 added missing comment of RGB control keys planck/rev6 (#6503) 2019-08-07 08:06:42 -07:00
340c3abc28 Update gaming layout (#6504) 2019-08-07 05:56:03 -07:00
009d45d4d7 MIDI: Fix basic noteon: send correct velocity (#6476) 2019-08-06 11:26:28 -07:00
59d3b37130 Fix qmk_install.sh on Windows dropping to command prompt (#6488) 2019-08-06 11:20:53 -07:00
a6701c28d2 [Keymap] Jotix ortho_4x12_layout (#6497)
* jotix ortho_4x12_layout

* jotix ortho_4x12_layout

* kc_caps in raise layer
2019-08-06 10:50:28 -07:00
98b237a21b [Keyboard] New Keyboard: Booster (#6486)
* initial commit

* port over the kbfirmware json

* add numpad_5x4 LAYOUT support

* fix up layout macro to allow community layout support

* add a sparse readme on how to contact Percent Studio

* change .h to a .md file

* fix firmware file too large error

* Update keyboards/percent/booster/info.json

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

* Update keyboards/percent/booster/info.json

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

* Update keyboards/percent/booster/info.json

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

* Update keyboards/percent/booster/info.json

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

* Update keyboards/percent/booster/info.json

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

* Update keyboards/percent/booster/keymaps/default/keymap.c

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

* Update keyboards/percent/booster/keymaps/default/keymap.c

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

* Update keyboards/percent/booster/keymaps/default/keymap.c

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

* Update keyboards/percent/booster/keymaps/default/keymap.c

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

* Update keyboards/percent/booster/keymaps/default/keymap.c

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

* Update keyboards/percent/booster/keymaps/default/keymap.c

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-06 10:38:28 -07:00
07bdc8f4b7 [Keyboard] Added little fixes and bootmagic for gBoard keebs (#6477)
* Added little fixes and bootmagic

* Update keyboards/gergo/keymaps/oled/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* whacked out quantum_libs
2019-08-06 10:20:48 -07:00
ae934c389e [Keymap] hhkb:halfqwerty_jp (#6475) 2019-08-06 10:18:44 -07:00
6b27ebefc6 [Keyboard] Add cKeys' "The Dora" Board (#6469)
* Initial 4x5

* More board

* Update exboard

* Update

* Change name to thedora

* Update keyboards/ckeys/thedora/keymaps/default/keymap.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/ckeys/thedora/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Remove the slash

* Attempt at fixing moxygen line break issues

* Update keyboards/ckeys/thedora/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Add boilerplate

* Update keyboards/ckeys/thedora/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-08-06 10:17:59 -07:00
f54e47c79d [Keyboard] Fixed Suihankey info.json (#6466)
* fix info.json

* Update keyboards/suihankey/info.json
2019-08-06 10:17:00 -07:00
x1
9587fac72a [Keyboard] Add kudox keyboard (#6459)
* Add Kudox Keyboard profile.

* Modified info.json and image link on readme.

* Remove unnecessary codes.

* Set BootLoader caterina.

* Remove duplicated settings on rules.mk.

* Clean up config.h.

* Modified include header path.

* Modified info.json to adjust 4th row keys y position.

* Separate default keymap and my keymap.

* Modified RGB_LED_* settings on kudox/rev1/config.h.
2019-08-06 10:14:40 -07:00
x1
e5831d79c0 [Keyboard] Add kudox game keyboard (#6460)
* Add configurations for Kudox Game Keyboard rev1.

* Modified Kudox Game Keyboard readme and keymap.

* Remove unnecessary codes.

* Set BootLoader caterina.

* Remove wrong settings on rules.mk.

* Clean up config.h.

* Modified MATRIX_ROWS on kudox_game/rev1/config.h.

* Modified RGB_LED_NUM on kudox_game/rev1/config.h.
2019-08-06 09:16:55 -07:00
d967d3a6b5 Correct info.json data for Hnah40 handwired (#6489) 2019-08-06 09:15:48 -07:00
620fcf12e8 Update info.json - discipline (#6483)
* Update info.json

* Update readme.md

* Update keyboards/coseyfannitutti/discipline/info.json

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-06 08:35:29 -07:00
cacfaedb81 new keymap for projectkb alice (#6491)
* new keymap for projectkb alice

* update documentation for resetting PCB

* actually need a grave key more than a tilde

* move DFU_ARGS to top level

* cleanup unused keycodes and others

* align with typical ergo layouts.  move enter and keep function layer reachable
2019-08-06 08:33:56 -07:00
209b6baaa8 Move maartenwut's keyboards to one folder (#6484) 2019-08-05 20:12:06 -07:00
7f8922ae7b GH60 Refactor: Move Satan into GH60 directory (#6485)
* Move Satan into the GH60 directory to avoid the confusion of what PCB people have

* set bootmagic to lite

* rename gh60 file to revc
2019-08-04 23:06:33 -07:00
72f382fc02 Remove unused _BOOTLOADER defines 2019-08-04 20:46:57 -07:00
430c37024e [Keyboard] add keyboard-discipline (#6464)
* add keyboard-discipline

* move discipline to /coseyfannitutti

* Update readme.md

* Update keyboards/coseyfannitutti/discipline/discipline.h

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

* Update keyboards/coseyfannitutti/discipline/discipline.h

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

* Update keyboards/coseyfannitutti/discipline/info.json

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

* Update keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c

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

* Update keyboards/coseyfannitutti/discipline/info.json

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

* Update keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c

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

* Update keyboards/coseyfannitutti/discipline/keymaps/67_ansi/keymap.c

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

* Update keyboards/coseyfannitutti/discipline/keymaps/coseyfannitutti/keymap.c

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

* Update keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c

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

* Update keyboards/coseyfannitutti/discipline/keymaps/default/keymap.c

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

* Update keyboards/coseyfannitutti/discipline/readme.md

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

* Update keyboards/coseyfannitutti/discipline/rules.mk

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

* Update readme.md

* Update keyboards/coseyfannitutti/discipline/discipline.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-08-03 21:37:26 -07:00
f644db042c [Split] Add config option for DIRECT_PINS_RIGHT (#6479)
Adds support for different direct pin mappings on the halves of a split keyboard.
2019-08-03 21:26:02 -07:00
465acd4d09 [Keymap] Add some more commonly used symbols to melody96/zunger. (#6478) 2019-08-03 21:25:05 -07:00
9ae874e0c3 [Keyboard] WT75-A & WT75-B fixes for QMK Configurator (#6472)
* Fixed QMK Configurator layout

* Added WT60-D
2019-08-03 21:11:28 -07:00
0261bf3e30 [Keymap] update to dsanchezseco keymap (#6470)
* cleanup and start sound

* clean up adjust and ptrscrn
2019-08-03 21:10:34 -07:00
586bd92ea7 [Keymap] Fixed Tanuki RGB lighting (#6462) 2019-08-03 21:01:14 -07:00
d68d510473 Add iS0 Keypad (#6456)
* Start progress

* Build firmware

* Prepare for pullreq

* Add a keymap

* Update keyboards/illuminati/is0/rules.mk

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

* Update keyboards/illuminati/is0/info.json

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-01 10:03:07 -07:00
ac20e7e3f2 [Keymap] jotix ortho_4x12_layout (#6458)
* jotix ortho_4x12_layout

* jotix ortho_4x12_layout
2019-08-01 09:51:51 -07:00
a2d61d76fa [Keyboard] New Keyboard: KBDPad MKI (#6452)
* initial commit

* define pins used and matrix size

* update readme

* delete un needed files

* make an appropriate switch matrix

* create appropriate keymap

* one little typo

* add QMK Configurator support

* Update keyboards/kbdfans/kbdpad/mk1/info.json

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-08-01 09:39:03 -07:00
17eea779df [Keymap] Adds Keymap for Iris/blucky (#6449)
* Adds Keymap for Iris/blucky

* code review changes

* removed custom define

* removed mistyped character
2019-08-01 09:36:00 -07:00
f1cebc9d9d [Keymap] Fixing Sol Rev2 default keymap OLED rotation. (#6448) 2019-08-01 09:34:51 -07:00
9609ae60a6 [Keyboard] QWERTYYdox refactor (#6446)
* Delete null key

`__` key in keymap.c doesn't actually exist on the physical hardware.
Removed key from keymap.c and removed its argument from the layout macro.

* Delete unused keycode aliases

* Replace layer index definitions with an enum

* Replace redundant numpad keycodes with native aliases

* Use native layer change keycodes instead of aliases

* Visually align the keycodes

It makes the keymap pretty.

* Correct Configurator layout data

* Clean up header files

- convert to pragma once include guard
- remove redundant definitions
- remove commented code blocks

* Delete LAYOUT_kc macro

Was copied from ergotravel; not valid for this keyboard.

* Consolidate rev1 rules.mk settings to keyboard level

Previous codebase enabled Backlight at keyboard level then disabled it at revision level.

* Delete unused rules

* Consolidate config.h settings from keymap level to keyboard level

* Modernize keyboard's config.h file

Aligns the keyboard-level config.h file more closely with the current QMK template for AVR keyboards.
2019-08-01 09:33:13 -07:00
2a9856dff0 [Keymap] Adds keymap for muzfuz/lunar (#6432)
* Adds keymaps for muzfuz

* Remove unused keys from adjust layer

* Bring in line with current QMK standards.

* Adds Preonic and adjusted Planck keymaps

* Make changes per review request

* Lunar config

* Formatting

* Update keyboards/ai03/lunar/keymaps/muzfuz/readme.md

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Remove unneeded recipe
2019-08-01 09:21:20 -07:00
b567785345 [Docs] Add dfu-util and caterina udev examples (#6429) 2019-08-01 09:20:31 -07:00
9177c6fedd updates to akb/raine in ready for production units (#6457)
* Raine Update

* Update keymap and usb setting

* Update info.json

added wk support to info.json
2019-07-31 17:49:27 -07:00
13493d3a78 Removed print call to resolve #6364 (#6413)
* Change print to dprintf to avoid buffer overflow

* Add stdio header for dprintf

* Fix included headers
2019-07-31 06:11:40 -07:00
2f3807682d Fix typo for building Ergodox EZ keyboards (#6453) 2019-07-31 06:08:25 -07:00
4c4850f32a Add personal 1up60HSE layout (#6451) 2019-07-31 06:07:05 -07:00
48cc61b188 Update msiu's xd75 keymap README to be accurate (#6443) 2019-07-30 23:59:46 +01:00
45950bb3b6 [Keyboard] 2% Milk addition (#5796)
* Create README.md

* Update README.md

* Create info.json

* Create config.h

* Create rules.mk

* Create 2_milk.c

* Create 2_milk.h

* Create keymap.c

* Create README.md

* Create config.h

* Update info.json

* Update config.h

* Update rules.mk

* Update 2_milk.h

* Update 2_milk.c

* Delete config.h

* Update keymap.c

* Update rules.mk

* added pragma once

* Add files via upload

* Update keyboards/2_milk/rules.mk

Co-Authored-By: Rionlion100 <rionlion100@gmail.com>

* Update config.h

* changed default to OSU!

* Create README.md

* Update README.md

* Create keymap.c

* Update keymap.c

* Create README.md

* Create keymap.c

* Update keymap.c

* Update keymap.c

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* fixed pins for PCB revision

* fixed maybe

* Create README.md

* add mouse keymap

* added ExcessBread's keymap

* Update README.md

* Create keymap.c

* Create README.md

* Create keymap.c

* Update rules.mk

* Rename README.md to readme.md

* Rename README.md to readme.md

* Rename README.md to readme.md

* Rename README.md to readme.md

* Rename README.md to readme.md

* Rename README.md to readme.md

* Rename README.md to readme.md

* Update keyboards/2_milk/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/2_milk/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update info.json

* Update info.json

* Update info.json

* Update info.json

* Update info.json

* Add files via upload

* Update readme.md

* fix copyright

* Update 2_milk.c

* Update 2_milk.h

* Update rules.mk

* Update rules.mk

* Update config.h

* Update config.h

* Update feature_bluetooth.md

* Update feature_bluetooth.md

* Update readme.md
2019-07-30 15:24:11 -07:00
a8427447bc [Keymap] ErgoDox EZ Spanish Colemak (#6258)
* keyboard

* documentation

* address PR comments #1

* address PR comments #2
2019-07-30 01:13:08 -07:00
046fb11259 [Keymap] Added keymap folder matching username to rorschach; added readme to old keympa (#5970)
* Added keymap folder matching username; added readme to old keymap

* Update config.h
2019-07-30 00:22:44 -07:00
77a1c75cf6 [Keyboard] Add AMJ66 keyboard (#5945)
* Added nearly perfect config for AMJ66, only missing top right key.

* Correct the layout macro

* Add layout mock-up to amj66.h

* Update and comment out the backlight definitions in config.h

The backlight pin was found to be D4, but there appears to be a bug in QMK that affects this keyboard.

Commenting out for now.

* Try to make a sensible default keymap

* Add testing keymap for FSund

Include the keymap that was being used for testing.

Don't forget to refactor this later into an actually useful keymap.

* Suggestions by fauxpark

- uncomment the backlight configuration
- fix the default keymap
- remove commented MCU rule
- specify the bootloader
- make mental note to not try to write code at 3:30 in the morning

* Add LAYOUT_66_ansi and LAYOUT_66_iso macros

- include QMK Configurator data
- enable Community Layout support

* Add comments about layout variants to amj66.h

* Add #define BACKLIGHT_ON_STATE 1

Partial fix for backlight breathing.

- Requires #5983 to fix fully (confirmed by FSund and fauxpark)

Co-Authored-By: fauxpark <fauxpark@gmail.com>
Co-Authored-By: Filip Sund <filip.sund@gmail.com>

* DEBOUNCING_DELAY -> DEBOUNCE

* Move AMJ66 files into new AMJKeyboard directory

* Correct Manufacturer in USB Device Descriptor

* Remove comment regarding source fork

* Correct the readme

* Update default keymap to match the details given in its readme

* White-space edit fsund_test keymap

Makes its formatting more consistent with other 66% keymaps. No logic changes.

* Linting info.json

Debug-style linting (one key object per line) and minor edits to key labels.

* Remove fsund_test keymap

* Add FSund as a maintainer in info.json
2019-07-30 00:21:44 -07:00
5cf7dbedd2 [Keyboard] add 60% pcb for the smk 2nd switch(with mx mount) (#5928)
* add smk60 pcb

* remove useless keymap

* Update keyboards/smk60/rules.mk

add 60_iso layout

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* fixed 60_iso layout

* update header file macro
2019-07-30 00:19:54 -07:00
f2e0d38f17 [Keyboard] Assign unique vendor ID and product ID for hadron (#5184)
* assigned unique vander and product ID to hadron

* fix v2 compiled firmware size issue
2019-07-29 23:58:43 -07:00
c57994f09e [Keyboard] Add meishi2 Configurator support (#6442) 2019-07-29 22:54:37 -07:00
43f388166f [Keyboard] Fix maypad LAYOUT_ortho_5x4 Configurator support (#6440) 2019-07-29 22:54:09 -07:00
de107eb14e [Keyboard] Fix community support for hs60 (#6439) 2019-07-29 22:53:15 -07:00
d5ab675251 [Keyboard] Fix configurator support for shiro (#6436) 2019-07-29 22:51:01 -07:00
a699fd3d04 [Keyboard] Add configurator support for snampad (#6435) 2019-07-29 22:49:42 -07:00
207ebc42a9 [Keyboard] Correct name of community layout for ortho75 (#6434) 2019-07-29 22:42:39 -07:00
b28f1e6a29 [Keyboard] Add suihankey_rev1 keyboard and Fix default keymap (#6419)
* move alpha

* add suihankey rev1

* fix default keymap.

* remove split

* add split keymap

* move default_split keymap

* fix rev1 config.h

* fix split

* set BOOTMAGIC_ENABLE lite

* fix enum base
2019-07-29 22:24:07 -07:00
c806103f41 Update YouTube URL
The link was an outdated one to https://www.youtube.com/watch?v=7RH-1pAbjvw
The correct link appears to be https://www.youtube.com/watch?v=tx54jkRC9ZY which is shortened as in the file.
2019-07-29 10:12:22 -07:00
eafd38e2a1 [Keymap] Shift RGB layout keys to the right by one to be consistent with other keymap layouts (#6431)
* move rgb toggles by one key to be consistent with all other keyboard layouts I have

* also remove unnecessary audio stuff
2019-07-28 21:16:59 -07:00
e5bc50c03e [Keyboard] Leaf 60: Use correct key for 60_ansi layout on backspace (#6430) 2019-07-28 19:24:23 -07:00
1c5079a33c [Keyboard] Add dumbpad (#6425)
* removed some debug prints

* removed unnecessary files, tweaked some things

* rotary encoder button now connected into column 0, row 3

* tweaked keymap and moved encoder control into keymap

* tweaks

* added test keymap

* updated some things to make it easier to work with QMK configurator

* updates after merging latest master in

* fixed a few things

* removed test keymap and all related #ifdefs

* changed some dumbpad default keys, added KC_LOCK

* added image to readme

* added link to PCB github repo

* moved lock key to the rotary encoder pushbutton

* making suggested changes from @fauxpark in https://github.com/qmk/qmk_firmware/pull/6452

* adding bootmagic lite since i'm lazy and haven't soldered on the reset button...

* renamed  to

* using 7 underscores for KC_TRNS
2019-07-28 19:03:02 -07:00
c9424eb8d7 [Keyboard] Fix up and clean Corne Keyboard code (#6284)
* Fix corne  communication issues with LTO

* Fix up other issues with corne code

* Fix indentation

* Clang Format rev1 file for Corne
2019-07-28 10:56:35 -07:00
bbdc82dd36 [Keyboard] Add RGB Matrix config info to Corne Keyboard's readme (#6231) 2019-07-28 10:27:14 -07:00
ec3954577c (OLED) Added support for CR (#6399)
Currently OLED Dirver only supports LF (\n) character in a string to clear out the rest of the current line and advance to the next line for writing. This PR adds support for CR (\r) character as well to advance to the next line, however not clear out the rest of the current line. This is extremely useful when you want to display a multi-line logo using a single array without wiping out exiting lines and flagging the OLED as dirty unnecessarily.
2019-07-27 13:17:18 -07:00
48067c530c Add support for Choco60 (#6415) 2019-07-27 09:12:29 -07:00
57958ce88e [Keyboard] Add support for Cocoa40 (#6414) 2019-07-27 09:11:50 -07:00
dd6330b07c [Keyboard] Provide QMK Configurator API data for business_card (#6412)
- alpha and beta revisions
- deleted keyboards/business_card/info.json (made redundant by revision-specific files)
2019-07-26 23:20:42 -07:00
cd7bc03134 [Keymap] Personal keymap for the planck with muzak (#6402)
* personal keymap for the planck with sounds

* need that minus and underscore where I can see them

* remove unused block

* some, shall we call them, minor changes?

* I don't think this is required anymore
2019-07-26 23:18:55 -07:00
22a8992d1b Fix RGB Matrix Cycle Left-Right Animation (#6421)
One-line fix for a typo that could break build if DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT was defined but not DISABLE_RGB_MATRIX_CYCLE_ALL
2019-07-26 23:17:51 -07:00
2367e3e1fd [Keyboard] TGR Jane v2 (#6361)
* initial commit TGR Jane

* lighting support

* use the default keymap lifted from community layouts for LAYOUT_tkl_ansi

* add information regarding reset key, hardware supported, and hardware availability

* document that it supports v1.1 as well thanks to nickheller's confirmation

* update some verbage in the readme

* add QMK Configurator support

* establish switch matrix for three main layouts

* add community layout support

* readme fixes

* Update keyboards/tgr/jane/info.json

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

* Update keyboards/tgr/jane/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/tgr/jane/config.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-07-26 21:49:29 -07:00
0bd03150e5 Remove NO_BACKLIGHT_CLOCK (#6418) 2019-07-27 01:37:33 +01:00
feddc496ee [Keymap] Tzarc's Luddite keymap (#6416) 2019-07-25 23:44:51 -07:00
abb65857ff Add support for Choco60 2019-07-26 11:17:34 +09:00
36d3902504 [User] Update personal userspace and keymaps, add reactive underglow (#6410)
* Update MODERN_DOLCH_RED color

* Remove unused RAL_LAL tap dance

* Disable Space Cadet on all boards

* Rework SEND_STRING_CLEAN into CLEAN_MODS, fix DST_P_R/DST_N_A

* Disable unnecessary underglow animations

* Rearrange feature flags in rules.mk files

* Change custom colors from structs to defines

* Add some explicit initializers

* Add MODERN_DOLCH_CYAN color

* Add IS_LAYER_ON_STATE()/IS_LAYER_OFF_STATE() macros

* Add led_set_keymap() template function

* Change underglow color based on Caps/Fn state

* Preserve val when changing underglow colors

* Only trigger Fn light for Fn layer

* Refactor fn_light() and caps_light() slightly

* Add comments to fn_light() and caps_light()
2019-07-25 12:31:40 -07:00
f204ed67f2 [Keyboard] Set RGBLIGHT ENABLE for angel64 (#6405)
* set RGBLIGHT

* remove default keymap RGB enable

* set limit value

* Revert "set limit value"

This reverts commit 2374b2aa204f05f7bcea8ed65623b0c46a011aa2.
2019-07-25 12:30:15 -07:00
f3acaff65b [Keymap] Fix default layer display (#6398) 2019-07-25 11:57:28 -07:00
20c0533c4c [User] Xulkal Keymaps Update (#6392)
* Xulkal changes

Refactor rgb & encoder menu

Hadron Keymap

Refactor oled menu

* Fixing horizontal OLED data display

* Reverting changes to take to separate prs
2019-07-25 11:56:29 -07:00
a747953dfa [Docs] Add Sections and MO(layer)/TG(layer) Example (#6308)
* Add Sections and MO(layer)/TG(layer) Example

Major changes:
1. Added sub-section headings to the portion before the examples.
2. Added a new Example 6, that allows MO(layer) and TG(layer) functionality to be embedded within tap dance functions.

Minor Changes:
1. Edited some text to better fit with new sub-headings.

* Update feature_tap_dance.md

* Update feature_tap_dance.md
2019-07-25 11:53:19 -07:00
1ab008eabd 1up60hse: Add Layer Diagrams (#6408) 2019-07-25 07:55:53 -07:00
0a7222b703 [Keymap] Refactor the default keymap for crkbd and add a new keymap for me (#6404)
* Remap default keys

* Remove self defined keys

* Remove unnedessary breaks

* Unable read_keylogs

* Add a keymap for foostan

* Remove unnecessary spaces

* Remove "include" that it automatically including
2019-07-24 17:57:22 -07:00
4381dea621 QMK Configurator fix for ProjectKB Alice info.json (#6400)
File was referencing an incorrect layout macro name.
2019-07-23 22:31:24 -04:00
827f8ce1bc [Keyboard] Add QMK configurator JSON for Alice PCB (#6397) 2019-07-23 15:07:39 -07:00
207fde997f [Keyboard] Add ergodicity (#6396)
* Initial addition of Ergodicity

* Add QMK configurator JSON
2019-07-23 15:06:47 -07:00
b1691ba696 Fix MATRIX_X_PINS_RIGHT ARM compilation (#6395) 2019-07-23 09:11:37 -04:00
7ec583e5ef [Keymap] Jarred's Plaid keymap (#6049)
* Add my plaid keymap

* Move planck / plaid keymaps to common layout folder
2019-07-23 00:07:57 -07:00
c966da89da [Keymap] Added wsturgiss keymap for mechmini2 (#4917)
* basic layout v1.0

* changed KC_TRNS to _______

* most symbols are on double tap, except quote, that was cancer

* better formatting and set toggle for game layer

* added colors to layers to make knowing your current layer easy

* have an empty macro working

* enabled unicode

* moved stuff to my folder and removed edits from communal files

* cleanup

* removed the game layer.  Never used it

* made changes requested by drashna and vomindoraan

* got rid of some unnecessary code

* got very basic unicode on mac working

* added ctrl_esc

* more changes as requested by noroadsleft

* more leader additions, removed macros because leader stuff replaces that functionality

* removed an old macro I forgot to remove earlier

* final deletion at noroadsleft request

* changed a line to explicitly specify a purple color.
2019-07-22 23:59:12 -07:00
8060e52946 [Keyboard] Align Planck EZ config with ZSA/Ergodox config (#6371) 2019-07-22 23:28:25 -07:00
2e8cdb126e update docs based on fireworm's comments 2019-07-22 20:55:23 -07:00
3261c408e4 Add support for TAP_CODE_DELAY to Hold-Tap keys (#5400)
* Add support for TAP_CODE_DELAY to Hold-Tap keys

* Better handling for tap code delay and caps version
2019-07-22 20:23:57 -07:00
d41961c9ed [Keymap] Drashna's Feature madness (#6128)
* Fix my Tap Dance issues after I broke them

* Cleanup and organization of userspace documentation

As well as some additional cleanup of functions due to review of documentation.

* Enable Tapdance on Glow and remove more animations

* Revert to Eager PR debouncing

* Add better check for startup animation

* Move where RGB Matrix defines are listed

* Limit RGB Matrix max val

* Update keyboard for Iris Rev 3 conflicts

* Enable encoder support on planck ez

* Remove is_master check from corne\'s OLED code

* Overhaul OLED screens for my Corne

* One last removal

* Show RGB valu On both sides

* Updates for OLED display info

* Fix compile issues for rgb config

* Disabled Space Cadet for all drashna keymaps

* Fix OLED Screen configs

* Minor OLED Tweaks

* Revert some Iris changes

* Fix song include

* Handle MAKE macro for the Corne boards better

* Add super hacky-hack for eeconfig initialization

* Add audio support for Fractal since Elite Cs support it

* Add defines for keycode steps

* Add White layout

* Update Corne RGB info

* Add fun effects to layer indication for RGB Matrix enabled boards

* Use proper define for product name detection

* Update formatting

* Use custom timeout mechanism for OLED timeout

* Fix up OLED screen HSV code for new HSV structure

* Better handle turning off RGB Matrix when sleeping

* Disable MultiSplash Animation

* Change Iris back to using serial

* Why was RGB disabled?!?!?!

* Limit val in rgb_matrix_layer_helper function

* Remove EECONFIG setting for RGB matrix
2019-07-22 20:22:33 -07:00
840b9090a0 Adding personal keymaps (#6384)
* initial commit

* migrated the actual keymap to this keyboard

* added the actual Tanuki keymap

* Added QMK DFU bootloader support

* TuCZnak's keymaps - final

* Update keyboards/tanuki/keymaps/tucznak/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/ut472/keymaps/tucznak/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Apply suggestions from code review

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-07-22 16:32:47 -07:00
40b0ddd425 Sol Rev 2 Keyboard (#6389)
* Basic Rev 2 implementation

* Updated LED defines and added Extra encoder support

* Fixed rgb pin assignment

* Physically accurate LED positions

* Single Color Band scrolling left to right effects

* Spirals, Pinwheels, and Documentation....Oh My!

* Spiral effect band thickness adjustments

* Fixing animation spin directions

* Full hand LED positions

* Basic Rev 2 implementation

Updated LED defines and added Extra encoder support

Fixed rgb pin assignment

Physically accurate LED positions

Full hand LED positions

Moving rev2 folder

* RGB Center Point LED position update

* Fixing led config commas

* Fixing led config commas

* fix enter key

* fix enter

* Small changes to default

* update default

* typo fix

* update default

* Fixing defines & led config, turned full hand & extra encoders into rules.mk feature

* Refactored rules.mk to have a post_rules.mk

* Forgot to offset the matrix to led map due to the edge led additions

* Updated LED flags and fixed my keymap

* Update keymap.c

include speed controls for RGB

* Fixing more rules.mk and adding keymap like encoders functionality

* Sol Rev 2 Implementation

* Minor fixes

* Keymap fixes

* Fix Colemak, add lock keys
2019-07-22 10:43:52 -07:00
17ff9cf554 New Keyboard: ZJ68 (#6378)
* added zj68 keyboard

* Suggested changes

* Suggested changes

* Suggested changes

* Requested changes

* Update keyboards/zj68/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-07-22 10:17:11 -07:00
d3ebf903c9 [Keyboard] Add Unikorn 60 tsangan_hhkb layout (#6390)
* fix default keymap to not have Q in the 1 position.

* add tsangan hhkb layout

* add a tsangan default keymap

* clean up the default keymap

* add qmk configurator support for new layout
2019-07-22 02:20:20 -07:00
f1c89280d5 [Keymap] Update keymap for keebio/quefrency 65% version (#6388)
* minor keymap changes

* minor keymap changes update readme

* update rules.mk

* add rgb

* add add arrows in hjkl

* removed backslashes

* fix missing comma

* spacing fix

* minor cleanup

* add r layer

* impl navigation layer

* moved backspace nearby

* updated readme
2019-07-22 02:14:43 -07:00
4602361095 [Keymap] Switch Iris keymap from workman to colemak (#6385)
* via support and colemak layout

* figures tap and hold parts don't work vith via enabled - so those are commented out for now
2019-07-22 02:13:38 -07:00
28f53462d0 [Keyboard] Backport two fixes from TMK: usb-usb converter (#6383)
* usb_usb: Order of init prevents uneeded bus reset
7c228967a4 (diff-deed77fb597e3a0019ce59fc1d09e260)

* usb_usb: Fix startup block bug
c2ce617a36 (diff-deed77fb597e3a0019ce59fc1d09e260)
2019-07-22 02:07:28 -07:00
4532caf5f2 [Keyboard] KBP V60 Type R Added ISO default (#6372)
* [Layout] KBP V60 Type R ISO default

* Remove ifdef

* Apply suggestions from code review

@noroadsleft I've accepted your suggestions. Tried locally any everything works as expected.

Thanks again - this if my first keyboard and first time looking at/ using/ contributing to qmk so I appreciate the feedback 👍

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-07-22 02:06:06 -07:00
e08e6c11e3 [Keyboard] Fix QMK Configurator bug with Wilba Tech Zeal60 LAYOUT_60_all (#6387)
info.json file had the wrong name for the JSON key; the macro that is normally named LAYOUT_all by convention is named LAYOUT_60_all on the Zeal60.

Bug flagged by drashna for flight505 on QMK Discord.
2019-07-22 02:03:19 -07:00
bffbb4b42d Refactoring wilba.tech PCBs, updating Rama Works U80-A (#6272)
* Added WT65-B, WT75-B, minor fixes

* Update keyboards/wilba_tech/wt65_b/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Update keyboards/wilba_tech/wt65_b/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update keyboards/wilba_tech/wt75_b/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Change DEBOUNCING_DELAY to DEBOUNCE

* Change DEBOUNCING_DELAY to DEBOUNCE

* Move Zeal60/Zeal65 files to keyboards/wilba_tech

* Change DEBOUNCING_DELAY to DEBOUNCE

* Refactoring zeal60 code to wilba_tech

* Moved Rama Works PCBs to wilba_tech

* Rename Rama Works files

* Cleanup info.json

* Cleanup readme.md

* Cleanup USB device strings

* U80-A RGB matrix, IS31FL3731 driver changes

* Fixed #include from keyboards/zeal60
2019-07-21 07:46:22 -04:00
d686c0ea43 [Keyboard] Snagpad Configurator bugfix and readme refactor (#6381)
* Update snagpad.h

White-space changes only. Making this file easier to read.

* Update info.json

Refactor:

- add labels
- debug linting (one key object per line)
- reorder keys for LAYOUT_numpad_5x4 (fixes QMK Configurator assigning keys to incorrect positions)

* Update readme.md

Refactor to conform to QMK template.

Updated link to The Board Podcast (old link was Error 404).
2019-07-20 13:49:28 -07:00
b3cdc7ef70 [Keyboard] Update space65.c to fix caps lock LED (#6375) 2019-07-20 13:37:42 -07:00
cf2ffadbcd [Keymap] Add Colemak to existing fc660c keymap (#6374)
* consistent enums

* add colemak to another layer for fun

* update readme

* consistent enums

* add colemak to another layer for fun

* update readme
2019-07-20 13:36:14 -07:00
0da743d80b [Keyboard] Refactor handwired/splittest to support multiple boards (#6373)
* Refactor splittest to support multiple dev boards

* Refactor splittest to support multiple dev boards - revert change to number of RGB led

* Refactor splittest to support multiple dev boards - update docs

* Refactor splittest to support multiple dev boards - correct docs

* Refactor splittest to support multiple dev boards - update teensy master logic
2019-07-20 13:35:30 -07:00
7afae46ea6 [Keyboard] Grid 600 Type 05 "PRESS" Cover Module (#6368)
* add grid600 type 5 press cover module

* Update keyboards/grid600/press/keymaps/default/keymap.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* remove unused custom keycode enum
2019-07-20 13:30:38 -07:00
c644299820 [Keyboard] leds in default keymap (#6357) 2019-07-20 13:25:20 -07:00
a2e91ebec9 Update IS_COMMAND definitions to use MOD_MASK_SHIFT (#6348)
* Update IS_COMMAND definition in templates to use MOD_MASK_SHIFT

* Update IS_COMMAND in docs

* Update IS_COMMAND default definition in tmk_core

* Update table in Command docs based on suggestion

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-07-20 13:21:40 -07:00
a40dbf94e8 Merge pull request #6264 from zvecr/split_master_check
Allow board to override split keyboard master check
2019-07-20 15:13:01 -04:00
1c0a7ad6c2 Fix Numbrero Handwired make example in readme (#6379)
Fix Numbrero Handwired make example in readme
2019-07-20 15:09:13 -04:00
6b1db7da23 Fix Numbrero Handwired make example in readme 2019-07-20 11:06:18 -07:00
001a6c24ae [Docs] Clarify Zadig usage in FAQ Docs (#6360)
* Rewrite Zadig section to be more clear

* Wordsmithing

Co-Authored-By: MechMerlin <30334081+mechmerlin@users.noreply.github.com>
2019-07-19 13:23:16 -07:00
b1fc3f35c6 Melody96 Configurator updates and minor refactoring (#6365)
* Add Configurator layout data for LAYOUT_hotswap

* Add LAYOUT_std60_split_num0

Requested by 李小安#9728 on QMK Discord.

Standard 60% ANSI layout for the alphanumeric region, with a split-0 Numpad.

Includes a sample keymap.

* Update Docs links on readme

* Change melody96.h to use #pragma once include guard

* Change config.h to use #pragma once include guard

* Add readme for default_std60_split_num0 keymap
2019-07-19 10:39:20 -07:00
e040028f1b Change xprintf() calls in rgblight.c to dprintf() (#6363) 2019-07-19 08:47:04 -07:00
d417b0cc7d Tidy up ALF X1.1 (#6367)
* Tidy up ALF X1.1

* Correct x positions

* 4 spaces

* Remove a stray TRNS key
2019-07-18 22:05:25 -07:00
b12b26946d simple readme fix 2019-07-18 21:16:30 -07:00
918fb7f8da Print Screen and Pause placement swap (#5981)
* Update x11.h

The original json file that was given by the designer was incorrect.  The Print Screen and Pause button is swapped.

* Update space65.c

Fixing the Caps Lock LED.

* Revert "Update space65.c"

This reverts commit 1f5de1abaefadd2e54259999a29bab501da5f67a.
2019-07-18 20:04:01 -07:00
455f15528c Jotix (#6355)
* add unicode_map

* add unicode_map

* numpad change
2019-07-18 19:27:09 -07:00
00c6892b3f [Keyboard] Add 6macro keyboard (#6362)
* Initial commit for 6macro firmware

* Updated layout documentation

* Removed unused commented code
2019-07-18 12:31:40 -07:00
171f7c561b Add more layouts for the ergodash (#6336) 2019-07-18 07:45:48 -07:00
5b4187ad1b Correct backlight on state docs (#6358)
* Correct backlight on state docs

* Reword to make it less confusing
2019-07-18 07:45:00 -07:00
d5b01bd34b Add prime_e keymap (#6350) 2019-07-18 06:55:31 -07:00
1650ba00f1 Allow userspace the opportunity to handle keycodes 2019-07-17 12:38:08 -07:00
f9d47ebe2f cleanup and start sound (#6353) 2019-07-17 09:24:49 -07:00
3895b4b868 Extend maximum number of backlight levels to 31 (#6351) 2019-07-16 21:58:29 -07:00
a8647f0d27 Add model01 keymap. Change kinesis keeymap. 2019-07-16 15:02:48 -07:00
6c7d173ad7 Remove unnecessary IS_COMMAND definitions from a couple of boards 2019-07-16 14:18:26 -07:00
65906f679d Use led_set_kb instead of led_set_user in melody96.c 2019-07-16 14:13:08 -07:00
6af77551c6 Remove more commented out MCUs 2019-07-16 13:47:43 -07:00
4747d974aa [Keyboard] Add keyboard Naked48 (#6330)
* Add Naked48

*  Comment reflected
2019-07-16 09:39:39 -07:00
e5d2cb8f98 Fix Preprocessor check for Leader Keys 2019-07-16 09:27:33 -07:00
f6c7e11426 Remove the need to specify NUM_OF_ENCODERS for the Encoder feature (#6328)
* Remove the need to set NUM_OF_ENCODERS

Instead, calculate the size of the array, and use that instead

* Add hack for split common support

* Remove NUM_OF_ENCODERS from keyboard config

Can be reverted, if needed
2019-07-16 01:40:54 -07:00
97a3f806c4 [Keymap] Fix advanced keymap readme and macro function (#6342) 2019-07-16 01:37:35 -07:00
c44fc68297 Allow Combo feature to be enabled/disabled live (#6318)
* Add ability to enable/disable combos

* Update documentation for Combo feature

* Change keycodes for appeasement

* Simplify combo_toggle function

* Update names

* Update combo docs to use tables
2019-07-16 01:37:19 -07:00
5fa0a274ea Align ARM i2c_readReg with AVR (#6314)
* Align arm i2c_readReg with avr

* Align arm i2c_readReg with avr - fix cannonkeys
2019-07-16 01:36:23 -07:00
4e375aa1f5 Add ARM I2Cv1 support to i2c_master (#6262)
* Add ARM I2Cv1 support to i2c_master

* Add I2Cv1 docs
2019-07-16 01:30:53 -07:00
f859375284 Expand bootloader target to support most AVR boards (#6255)
* 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-16 01:28:23 -07:00
f6651424a0 Make Caps Lock delay more reasonable (#6199)
* Make Caps Lock delay more reasonable

* Update documentation

* Update docs/config_options.md

Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>

* Update docs/config_options.md

Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
2019-07-16 01:21:52 -07:00
29e9caa82b Configure Vagrant to use qmk_base_container (#6194)
* Initial conversion of vagrant to use qmkfm/base_container

* Fix vagrant when using docker provider

* Workaround for VirtualBox VM restarts

* Generalise Vagrant docs slightly and add FAQ
2019-07-16 01:20:34 -07:00
a32f7e1a25 Store backlight breathing state in EEPROM (#6105)
* Store backlight breathing state in EEPROM

* Reduce backlight_config.level from 6 bits to 4 (max 15 "on" levels)

* Error out if BACKLIGHT_LEVELS is > 15

* Remove mention of default backlight pin in rules.mk template

* Remove pointless comment
2019-07-16 00:56:36 -07:00
e2dfb787da Adding rgb matrix speed into eeprom storage. (#5965)
Zeroing out spd in eeconfig_init_quantum

Switched to block read & update

Update tmk_core/common/eeconfig.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

Fixing init compile error

Update eeconfig.c

Dead / Missing API cleanup

alignment
2019-07-16 00:40:43 -07:00
72df7b4c19 shell.nix: Downgrade gcc-arm-embedded (#5913)
Temporary fix for https://github.com/qmk/qmk_firmware/issues/5868
2019-07-16 00:35:15 -07:00
1209fb8643 Enable Mousekeys on Corne Keyboard by default (#5893)
* Enable Mousekeys on Corne Keyboard by default

For Tessachka and Configurator support

* ENable for default image too

* Remove most of rules.mk for default keymap

* make sure rgblight is enabled by default

from default keymap
2019-07-16 00:28:02 -07:00
ba42a5ae68 Remove commented out MCUs in rules.mk (#5884) 2019-07-16 00:26:38 -07:00
09f5767072 Add out of bound check for Leader Key sequence array (#5840)
* Add out of bound check for Leader Key sequence array

* A shot at advanced C stuff for Leader Key optimization

* Revert most changes

* Change default back

* Include string.h if compiling for ARM

* Use sizeof instead of a number
2019-07-15 23:56:34 -07:00
ed6a872911 Add sendstring LUTs for French keymap (#5830) 2019-07-15 23:28:39 -07:00
311d625c56 [Docs] Add dedicated page for Split Keyboard information (#5802)
* [Docs] Add dedicated page for Split Keyboard information

* Apply suggestions from code review

Co-Authored-By: drashna <drashna@live.com>

* Fix Typos

Co-Authored-By: drashna <drashna@live.com>

* Fix some formatting issues

* Add Additional RGB info

* Fix Bulletted formatting

* Apply suggestions from code review

Co-Authored-By: drashna <drashna@live.com>

* Fix line wrapping

* Additional fixes and expansion

* Reword warning/note

Co-Authored-By: drashna <drashna@live.com>

* add i2c/serial coexistance info

* i2c markdown

* Change i2c wiring text

Co-Authored-By: drashna <drashna@live.com>
2019-07-15 23:23:32 -07:00
a71c461d03 Skip unsupported firmware check message in silent mode (#5765) 2019-07-15 23:21:00 -07:00
a5ecf14608 Sendstring LUT improvements (#5727)
* Align sendstring LUTs to 9 characters wide

* Replace 0 with XXXXXXX

* Use decimal 128 for LUT size

* Align heading comments

* Add ASCII table comments

* Add missing AltGr LUTs and adjust keycode LUTs accordingly

* Use pragma once

* Correct a couple more keycodes

* Capitalise "BÉPO"

* Also clean up the default tables

* Tidy up Belgian and Norman LUTs
2019-07-15 23:15:07 -07:00
26bbf6a66a Remove lock LED example in quantum.c (#5636)
* Use GPIO helper defines in backlighting

* While I'm here, fix up the lock LED example too

* Remove the example altogether, it's already documented
2019-07-15 23:05:07 -07:00
f14629ed1c Remove/migrate action_get_macro()s from default keymaps (#5625)
* Remove/migrate action_get_macro()s from default keymaps

* Leave these breaks alone
2019-07-15 23:04:02 -07:00
2a231457bd Add user-overridable callback for cancelling UCIS input (#5564)
* Add user-overridable callback for cancelling UCIS input

To clean up things from qk_ucis_start_user() for instance.

* restore lost newline to quantum/process_keycode/process_ucis.c

Co-Authored-By: shinmai <aapo.saaristo@gmail.com>
2019-07-15 22:53:04 -07:00
0f95c0865c add 'objs-size' target into tmk_core/avr.mk (#5490) 2019-07-15 22:45:31 -07:00
3538955778 Usbasploader bootloader option addition (#6304)
* Added USBasp bootloader option for USBasploader

* author comment

* ifdef fix :)

* Add usbasp target

* Update docs/flashing.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update docs/flashing.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update docs/flashing.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-07-15 19:11:59 -07:00
7d557a0514 Fix compiling json files. (#6340) 2019-07-15 15:12:35 -07:00
a25dd58bc5 QMK CLI and JSON keymap support (#6176)
* 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-07-15 12:14:27 -07:00
7ba82cb5b7 bface refactor (#6333)
* remove custom matrix support

* remove custom i2c and led driver

* minor cleanups

* update readme
2019-07-15 10:38:26 -07:00
a200f194d1 [Keyboard] Add support for XD004 macro keyboard (#6337)
* Add support for XD004

Also applying the following suggested edits:

Add hardware availability link in readme
Co-Authored-By: Drashna Jaelre <drashna@live.com>

Enable lite bootmagic
Co-Authored-By: Drashna Jaelre <drashna@live.com>

Remove commented out MCU
Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Add more ellaborate keymap

Correcting usage of tap_code_16 for modified key, thanks to @drashna

* Add information about bootloader type

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-07-15 10:35:05 -07:00
b2fb0ceeef [Keyboard] add macro pad "Shiro" (#6338)
* add keyboard new macro pad "Kuro"

* change main readme.md

* remove not used code from default/keymap.c

* Remove unnecessary code

* Supports info.json

* removed back slash and not used functions.

* update at product link. add japanese messages.
2019-07-15 10:33:18 -07:00
ff0cb0cf9d Add GPL3 header to avr i2c files (#6332)
* Add GPL3 header to avr i2c files

* Add for i2c_slave as well

* Fix formatting of license header
2019-07-15 10:32:13 -07:00
cbcf888dc0 [Keyboard] new keyboard "angel64" (#6313)
* set template

* set Duplex Matrix

* fix layout

* set default keymap

* fix indent

* remove muhen

* Update keyboards/angel64/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-07-15 10:13:07 -07:00
d8253b83e8 Update docker util script and travis to use new base container 2019-07-14 21:01:38 -07:00
0a03f7cff7 Update docker util script and travis to use new base container 2019-07-14 21:01:38 -07:00
21fc6be41b [Keymap] Fix Comment Styling (#6324) 2019-07-14 19:32:40 -07:00
989c2094f8 [Keymap] [bface] My custom layout (#6322) 2019-07-14 19:32:08 -07:00
fd48f687b1 [Keyboard] Added IVY macropad (#6211)
* Added initial files for the Adron  3-key macro pad

* Refactor of "adron_pad" to "ivy", cleaned up the readme and removed un-needed keymap as well.

* Made suggested changes to commit for PR

* Removed unneeded define block from SUBPROJECT_rev1 as it is redundant (Thanks drashna ;) )
2019-07-14 18:26:45 -07:00
f8e4921491 update readme 2019-07-14 18:14:00 -07:00
66b63f66a9 minor cleanups 2019-07-14 18:11:26 -07:00
77a7e3c91f remove custom i2c and led driver 2019-07-14 18:11:16 -07:00
b8c5efa555 remove custom matrix support 2019-07-14 18:00:09 -07:00
4211252117 [Docs] Fix indented subheading on faq_debug.md (#6320) 2019-07-13 13:33:44 -07:00
0694decfa1 [Keymap] switch backspace and backslash, updated readme (#6323) 2019-07-13 13:12:36 -07:00
da1f05fbc1 [Keymap] Add workman to my iris keymap (#6319)
* add workman to my iris keymap

* updates for readme.md

* remove redundant paths

* switch up and down
2019-07-12 23:37:48 -07:00
cf215487ba Switching rgb_config_t to use HSV struct 2019-07-12 07:39:35 -07:00
e717dcaa09 [Keyboard] fixed pins for numpad_5x4 layout (#6311) 2019-07-12 06:17:47 -07:00
38fdf7a2d2 [Keymap] Add missing tap dance action and fix RGB hues in personal keymaps (#6312)
* Add missing TD_RSF_RCT tap dance

* Use standard QMK HSV and RGB structs, fix Godspeed colors

* Move PROGMEM after the type in RGB intervals

* Add MODERN_DOLCH_RED color, use it on KBD6X

* Use 255 instead of RGBLIGHT_LIMIT_VAL in color definitions

* Remove IS_COMMAND override on Whitefox
2019-07-12 06:16:28 -07:00
663ca6ba9d Documentation: Newbs Flashing: Hightlight that sudo may be needed (#6300)
* Hightlight that sudo may be needed

Also added "dfu-programmer: no device present" in so that anyone searching for that particular error can hopefully find the page.

* Use new style of indicating a warning

* Indicate that the FAQ should be read instead of blindly using sudo
2019-07-12 05:42:21 -07:00
05990c9bda Small fix to allow board to override split keyboard master check 2019-07-05 18:45:57 +01:00
4545 changed files with 105197 additions and 462339 deletions

View File

@ -16,6 +16,10 @@ insert_final_newline = true
trim_trailing_whitespace = false
indent_size = 4
[{qmk,*.py}]
charset = utf-8
max_line_length = 200
# Make these match what we have in .gitattributes
[*.mk]
end_of_line = lf

5
.gitignore vendored
View File

@ -25,7 +25,7 @@ quantum/version.h
CMakeLists.txt
cmake-build-debug
doxygen/
.DS_STORE
.DS_Store
/util/wsl_downloaded
/util/win_downloaded
/keyboards/*/Makefile
@ -70,3 +70,6 @@ util/Win_Check_Output.txt
secrets.tar
id_rsa_*
/.vs
# python things
__pycache__

3
.gitmodules vendored
View File

@ -11,3 +11,6 @@
[submodule "lib/googletest"]
path = lib/googletest
url = https://github.com/google/googletest
[submodule "lib/lufa"]
path = lib/lufa
url = https://github.com/qmk/lufa

View File

@ -13,8 +13,6 @@ env:
- MAKEFLAGS="-j3 --output-sync"
services:
- docker
before_install:
- docker build -t qmkfm/qmk_firmware .
install:
- npm install -g moxygen
script:
@ -29,7 +27,7 @@ addons:
- diffutils
- dos2unix
- doxygen
after_success:
after_script:
bash util/travis_compiled_push.sh
notifications:
webhooks:

View File

@ -1,6 +1,11 @@
// Suggested extensions
{
"recommendations": [
"EditorConfig.EditorConfig"
"EditorConfig.EditorConfig",
"xaver.clang-format",
"ms-vscode.cpptools",
"bierner.github-markdown-preview",
"donjayamanne.git-extension-pack",
"CoenraadS.bracket-pair-colorizer-2"
]
}

12
.vscode/settings.json vendored
View File

@ -8,10 +8,12 @@
"**/*.hex": true
},
"files.associations": {
"*.h": "c",
"*.c": "c",
"*.cpp": "cpp",
"*.hpp": "cpp",
"xstddef": "c"
"*.h": "c",
"*.c": "c",
"*.cpp": "cpp",
"*.hpp": "cpp",
"xstddef": "c",
"type_traits": "c",
"utility": "c"
}
}

View File

@ -8,8 +8,17 @@ Our users, contributors, and collaborators are expected to treat each other with
* The use of sexualized language or imagery
* Unwelcome advances, sexual or otherwise
* Deliberate intimidation, stalking, or following
* Insults or derogatory comments, or personal or political attacks
* Publishing others private information without explicit permission
* Sustained disruption of talks or other events
* Other conduct which could reasonably be considered inappropriate in a professional setting
* Advocating for, or encouraging, any of the above behaviour
If someone is violating this Code of Conduct you may email hello@qmk.fm to bring your concern to the Members. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.
# Reporting
If someone is violating this Code of Conduct, please email hello@qmk.fm or reach out to one of the Collaborators to bring it to our attention. All complaints will be reviewed and investigated.
QMK will seek to use the least punitive means available to resolve an issue. If the circumstances require asking an offender to leave, we will do that.
Reports will be taken and kept in strict confidence. You will not be required to confront an offender directly.

View File

@ -1,26 +1,4 @@
FROM debian:9
RUN apt-get update && apt-get install --no-install-recommends -y \
avr-libc \
avrdude \
binutils-arm-none-eabi \
binutils-avr \
build-essential \
dfu-programmer \
dfu-util \
gcc \
gcc-avr \
git \
libnewlib-arm-none-eabi \
software-properties-common \
unzip \
wget \
zip \
&& rm -rf /var/lib/apt/lists/*
# upgrade gcc-arm-none-eabi from the default 5.4.1 to 6.3.1 due to ARM runtime issues
RUN wget -q https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 -O - | \
tar xj --strip-components=1 -C /
FROM qmkfm/base_container
VOLUME /qmk_firmware
WORKDIR /qmk_firmware

View File

@ -20,7 +20,10 @@ endif
override SILENT := false
ifndef SUB_IS_SILENT
QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
ifndef SKIP_GIT
QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
endif
ifneq ($(QMK_VERSION),)
$(info QMK Firmware $(QMK_VERSION))
endif
@ -94,6 +97,7 @@ $(eval $(call NEXT_PATH_ELEMENT))
# endif
define GET_KEYBOARDS
ifndef ALT_GET_KEYBOARDS
All_RULES_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk))
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/rules.mk))
@ -105,6 +109,9 @@ define GET_KEYBOARDS
KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/keymaps/*/rules.mk))
KEYBOARDS := $$(sort $$(filter-out $$(KEYMAPS_MK), $$(All_RULES_MK)))
else
KEYBOARDS := $(shell find keyboards/ -type f -iname "rules.mk" | grep -v keymaps | sed 's!keyboards/\(.*\)/rules.mk!\1!' | sort | uniq)
endif
endef
$(eval $(call GET_KEYBOARDS))
@ -364,6 +371,9 @@ define PARSE_KEYBOARD
# The same if all was specified
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
$$(eval $$(call PARSE_ALL_KEYMAPS))
# List all keymaps for the given keyboard
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,list-keymaps),true)
$$(eval $$(call LIST_ALL_KEYMAPS))
# Try to match the specified keyamp with the list of known keymaps
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
$$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
@ -400,6 +410,16 @@ endef
# endif
# endef
# Prints a list of all known keymaps for the given keyboard
define LIST_ALL_KEYMAPS
COMMAND_true_LIST_KEYMAPS := \
printf "$$(KEYMAPS)\n";
COMMAND_false_LIST_KEYMAPS := \
printf "$$(MSG_AVAILABLE_KEYMAPS)\n"; \
printf "$$(KEYMAPS)\n";
COMMANDS += LIST_KEYMAPS
endef
# $1 Keymap
# This is the meat of compiling a keyboard, when entering this, everything is known
# keyboard, subproject, and keymap
@ -541,6 +561,7 @@ ifndef SKIP_GIT
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 1 --init lib/chibios; fi
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --depth 1 --init lib/chibios-contrib; fi
if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --depth 1 --init lib/ugfx; fi
if [ ! -e lib/lufa ]; then git submodule sync lib/lufa && git submodule update --depth 1 --init lib/lufa; fi
git submodule status --recursive 2>/dev/null | \
while IFS= read -r x; do \
case "$$x" in \

31
Vagrantfile vendored
View File

@ -52,26 +52,37 @@ Vagrant.configure(2) do |config|
end
# Docker provider pulls from hub.docker.com respecting docker.image if
# config.vm.box is nil. Note that this bind-mounts from the current dir to
# config.vm.box is nil. In this case, we adhoc build util/vagrant/Dockerfile.
# Note that this bind-mounts from the current dir to
# /vagrant in the guest, so unless your UID is 1000 to match vagrant in the
# image, you'll need to: chmod -R a+rw .
config.vm.provider "docker" do |docker, override|
override.vm.box = nil
docker.image = "jesselang/debian-vagrant:stretch"
docker.build_dir = "util/vagrant"
docker.has_ssh = true
end
# This script ensures the required packages for AVR programming are installed
# It also ensures the system always gets the latest updates when powered on
# If this causes issues you can run a 'vagrant destroy' and then
# add a # before ,run: (or change "always" to "once") and run 'vagrant up' to get a working
# non-updated box and then attempt to troubleshoot or open a Github issue
config.vm.provision "shell", inline: "/vagrant/util/qmk_install.sh", run: "always"
# Unless we are running the docker container directly
# 1. run container detached on vm
# 2. attach on 'vagrant ssh'
["virtualbox", "vmware_workstation", "vmware_fusion"].each do |type|
config.vm.provider type do |virt, override|
override.vm.provision "docker" do |d|
d.run "qmkfm/base_container",
cmd: "tail -f /dev/null",
args: "--privileged -v /dev:/dev -v '/vagrant:/vagrant'"
end
override.vm.provision "shell", inline: <<-SHELL
echo 'docker restart qmkfm-base_container && exec docker exec -it qmkfm-base_container /bin/bash -l' >> ~vagrant/.bashrc
SHELL
end
end
config.vm.post_up_message = <<-EOT
Log into the VM using 'vagrant ssh'. QMK directory synchronized with host is
located at /vagrant
Log into the environment using 'vagrant ssh'. QMK directory synchronized with
host is located at /vagrant
To compile the .hex files use make command inside this directory, e.g.
cd /vagrant
make <keyboard>:default

83
bin/qmk Executable file
View File

@ -0,0 +1,83 @@
#!/usr/bin/env python3
"""CLI wrapper for running QMK commands.
"""
import os
import subprocess
import sys
from importlib.util import find_spec
from time import strftime
# Add the QMK python libs to our path
script_dir = os.path.dirname(os.path.realpath(__file__))
qmk_dir = os.path.abspath(os.path.join(script_dir, '..'))
python_lib_dir = os.path.abspath(os.path.join(qmk_dir, 'lib', 'python'))
sys.path.append(python_lib_dir)
# Make sure our modules have been setup
with open(os.path.join(qmk_dir, 'requirements.txt'), 'r') as fd:
for line in fd.readlines():
line = line.strip().replace('<', '=').replace('>', '=')
if line[0] == '#':
continue
if '#' in line:
line = line.split('#')[0]
module = line.split('=')[0] if '=' in line else line
if not find_spec(module):
print('Could not find module %s!', module)
print('Please run `pip3 install -r requirements.txt` to install the python dependencies.')
exit(255)
# Figure out our version
# TODO(skullydazed/anyone): Find a method that doesn't involve git. This is slow in docker and on windows.
command = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags']
result = subprocess.run(command, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
if result.returncode == 0:
os.environ['QMK_VERSION'] = result.stdout.strip()
else:
os.environ['QMK_VERSION'] = 'nogit-' + strftime('%Y-%m-%d-%H:%M:%S') + '-dirty'
# Setup the CLI
import milc
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
@milc.cli.entrypoint('QMK Helper Script')
def qmk_main(cli):
"""The function that gets run when no subcommand is provided.
"""
cli.print_help()
def main():
"""Setup our environment and then call the CLI entrypoint.
"""
# Change to the root of our checkout
os.environ['ORIG_CWD'] = os.getcwd()
os.chdir(qmk_dir)
# Import the subcommands
import qmk.cli
# Execute
return_code = milc.cli()
if return_code is False:
exit(1)
elif return_code is not True and isinstance(return_code, int):
if return_code < 0 or return_code > 255:
milc.cli.log.error('Invalid return_code: %d', return_code)
exit(255)
exit(return_code)
exit(0)
if __name__ == '__main__':
main()

View File

@ -19,12 +19,14 @@
#
# Sets the bootloader defined in the keyboard's/keymap's rules.mk
# Current options:
# atmel-dfu
# lufa-dfu
# qmk-dfu
# halfkay
# caterina
# bootloadHID
#
# halfkay PJRC Teensy
# caterina Pro Micro (Sparkfun/generic)
# atmel-dfu Atmel factory DFU
# lufa-dfu LUFA DFU
# qmk-dfu QMK DFU (LUFA + blinkenlight)
# bootloadHID HIDBootFlash compatible (ATmega32A)
# USBasp USBaspLoader (ATmega328P)
#
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
# you add any possible configuration to this list
@ -32,40 +34,40 @@
ifeq ($(strip $(BOOTLOADER)), atmel-dfu)
OPT_DEFS += -DBOOTLOADER_ATMEL_DFU
OPT_DEFS += -DBOOTLOADER_DFU
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 4096
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 8192
BOOTLOADER_SIZE = 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), lufa-dfu)
OPT_DEFS += -DBOOTLOADER_LUFA_DFU
OPT_DEFS += -DBOOTLOADER_DFU
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 4096
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 8192
BOOTLOADER_SIZE = 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
OPT_DEFS += -DBOOTLOADER_QMK_DFU
OPT_DEFS += -DBOOTLOADER_DFU
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 4096
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 8192
BOOTLOADER_SIZE = 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), halfkay)
OPT_DEFS += -DBOOTLOADER_HALFKAY
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 512
BOOTLOADER_SIZE = 512
endif
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 1024
BOOTLOADER_SIZE = 1024
endif
endif
ifeq ($(strip $(BOOTLOADER)), caterina)
@ -76,6 +78,10 @@ ifeq ($(strip $(BOOTLOADER)), bootloadHID)
OPT_DEFS += -DBOOTLOADER_BOOTLOADHID
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), USBasp)
OPT_DEFS += -DBOOTLOADER_USBASP
BOOTLOADER_SIZE = 4096
endif
ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))

27
build_json.mk Normal file
View File

@ -0,0 +1,27 @@
# Look for a json keymap file
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
endif
# Generate the keymap.c
ifneq ("$(KEYMAP_JSON)","")
_ = $(shell test -e $(KEYMAP_C) || bin/qmk json-keymap $(KEYMAP_JSON) -o $(KEYMAP_C))
endif

View File

@ -98,31 +98,38 @@ MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
else ifneq ($(LAYOUTS),)
include build_layout.mk
else
$(error Could not find keymap)
# this state should never be reached
# Check for keymap.json first, so we can regenerate keymap.c
include build_json.mk
ifeq ("$(wildcard $(KEYMAP_PATH))", "")
# Look through the possible keymap folders until we find a matching keymap.c
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
else ifneq ($(LAYOUTS),)
# If we haven't found a keymap yet fall back to community layouts
include build_layout.mk
else
$(error Could not find keymap)
# this state should never be reached
endif
endif
ifeq ($(strip $(CTPC)), yes)
@ -313,7 +320,6 @@ ifneq ("$(wildcard $(USER_PATH)/config.h)","")
CONFIG_H += $(USER_PATH)/config.h
endif
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
@ -323,7 +329,7 @@ ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H += $(KEYMAP_PATH)/config.h
endif
# # project specific files
# project specific files
SRC += $(KEYBOARD_SRC) \
$(KEYMAP_C) \
$(QUANTUM_SRC)
@ -392,6 +398,7 @@ $(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
all: build check-size
build: elf cpfirmware
check-size: build
objs-size: build
include show_options.mk
include $(TMK_PATH)/rules.mk

View File

@ -267,20 +267,21 @@ ifeq ($(strip $(ENCODER_ENABLE)), yes)
OPT_DEFS += -DENCODER_ENABLE
endif
ifeq ($(strip $(HAPTIC_ENABLE)), DRV2605L)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
HAPTIC_ENABLE ?= no
ifneq ($(strip $(HAPTIC_ENABLE)),no)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
OPT_DEFS += -DHAPTIC_ENABLE
endif
ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), )
SRC += DRV2605L.c
QUANTUM_LIB_SRC += i2c_master.c
OPT_DEFS += -DHAPTIC_ENABLE
OPT_DEFS += -DDRV2605L
endif
ifeq ($(strip $(HAPTIC_ENABLE)), SOLENOID)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), )
SRC += solenoid.c
OPT_DEFS += -DHAPTIC_ENABLE
OPT_DEFS += -DSOLENOID_ENABLE
endif
@ -358,3 +359,9 @@ ifeq ($(strip $(SPACE_CADET_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
OPT_DEFS += -DSPACE_CADET_ENABLE
endif
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dip_switch.c
OPT_DEFS += -DDIP_SWITCH_ENABLE
endif

View File

@ -0,0 +1,53 @@
# QMK Breaking Change - 2019 Aug 30
Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.
This document marks the inaugural Breaking Change merge. A list of changes follows.
## Core code formatting with clang-format
* All core files (`drivers/`, `quantum/`, `tests/`, and `tmk_core/`) have been formatted with clang-format
* A travis process to reformat PR's on merge has been instituted
* You can use the new CLI command `qmk cformat` to format before submitting your PR if you wish.
## LUFA USB descriptor cleanup
* Some code cleanups related to the USB HID descriptors on AVR keyboards, to make them easier to read and understand
* More information: see https://github.com/qmk/qmk_firmware/pull/4871
* No behaviour changes anticipated and no keymaps modified
## Migrating `ACTION_LAYER_MOMENTARY()` entries in `fn_actions` to `MO()` keycodes
* `fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()`
* The end result of removing this obsolete feature should result in a decent reduction in firmware size and code complexity
* All keymaps affected are recommended to switch away from `fn_actions` in favour of the [custom keycode](https://docs.qmk.fm/#/custom_quantum_functions) and [macro](https://docs.qmk.fm/#/feature_macros) features
## Update Atreus to current code conventions
* Duplicate include guards have bypassed the expected header processing behavior
* All keymaps affected are recommended to remove duplication of `<keyboard>/config.h` to `<keyboard>/keymaps/<user>/config.h` and only provide overrides at the keymap level
## Backport changes to keymap language files from ZSA fork
* Fixes an issue in the `keymap_br_abnt2.h` file that includes the wrong source (`keymap_common.h` instead of `keymap.h`)
* Updates the `keymap_swedish.h` file to be specific to swedish, and not just "nordic" in general.
* Any keymaps using this will need to remove `NO_*` and replace it with `SE_*`.
## Update repo to use LUFA as a git submodule
* `/lib/LUFA` removed from the repo
* LUFA set as a submodule, pointing to qmk/lufa
* This should allow more flexibility with LUFA, and allow us to keep the sub-module up to date, a lot more easily. It was ~2 years out of date with no easy path to fix that. This prevents that from being an issue in the future
## Migrating `ACTION_BACKLIGHT_*()` entries in `fn_actions` to `BL_` keycodes
* `fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()`
* All keymaps using these actions have had the relevant `KC_FN*` keys replaced with the equivalent `BL_*` keys
* If you currently use `KC_FN*` you will need to replace `fn_actions` with the [custom keycode](https://docs.qmk.fm/#/custom_quantum_functions) and [macro](https://docs.qmk.fm/#/feature_macros) features
## Remove `KC_DELT` alias in favor of `KC_DEL`
* `KC_DELT` was a redundant, undocumented alias for `KC_DELETE`
* It has been removed and all its uses replaced with the more common `KC_DEL` alias
* Around 90 keymaps (mostly for ErgoDox boards) have been modified as a result

View File

@ -8,15 +8,21 @@
* [QMK Basics](README.md)
* [QMK Introduction](getting_started_introduction.md)
* [QMK CLI](cli.md)
* [QMK CLI Config](cli_configuration.md)
* [Contributing to QMK](contributing.md)
* [How to Use Github](getting_started_github.md)
* [Getting Help](getting_started_getting_help.md)
* [Breaking Changes](breaking_changes.md)
* [2019 Aug 30](ChangeLog/20190830.md)
* [FAQ](faq.md)
* [General FAQ](faq_general.md)
* [Build/Compile QMK](faq_build.md)
* [Debugging/Troubleshooting QMK](faq_debug.md)
* [Keymap](faq_keymap.md)
* [Driver Installation with Zadig](driver_installation_zadig.md)
* Detailed Guides
* [Install Build Tools](getting_started_build_tools.md)
@ -34,6 +40,8 @@
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* [Config Options](config_options.md)
* [Keycodes](keycodes.md)
* [Coding Conventions - C](coding_conventions_c.md)
* [Coding Conventions - Python](coding_conventions_python.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Glossary](reference_glossary.md)
@ -41,6 +49,7 @@
* [Useful Functions](ref_functions.md)
* [Configurator Support](reference_configurator_support.md)
* [info.json Format](reference_info_json.md)
* [Python CLI Development](cli_development.md)
* [Features](features.md)
* [Basic Keycodes](keycodes_basic.md)
@ -55,6 +64,7 @@
* [Combos](feature_combo.md)
* [Command](feature_command.md)
* [Debounce API](feature_debounce_type.md)
* [DIP Switch](feature_dip_switch.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Encoders](feature_encoders.md)
* [Grave Escape](feature_grave_esc.md)
@ -73,6 +83,7 @@
* [RGB Lighting](feature_rgblight.md)
* [RGB Matrix](feature_rgb_matrix.md)
* [Space Cadet](feature_space_cadet.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)

107
docs/breaking_changes.md Normal file
View File

@ -0,0 +1,107 @@
# Breaking Changes
This document describes QMK's Breaking Change process. A Breaking Change is any change which modifies how QMK behaves in a way that in incompatible or potentially dangerous. We limit these changes so that users can have confidence that updating their QMK tree will not break their keymaps.
The breaking change period is when we will merge PR's that change QMK in dangerous or unexpected ways. There is a built-in period of testing so we are confident that any problems caused are rare or unable to be predicted.
## What has been included in past Breaking Changes?
* [2019 Aug 30](ChangeLog/20190830.md)
## When is the next Breaking Change?
The next Breaking Change is scheduled for Nov 29.
### Important Dates
* [x] 2019 Sep 21 - `future` is created. It will be rebased weekly.
* [ ] 2019 Nov 01 - `future` closed to new PR's.
* [ ] 2019 Nov 01 - Call for testers.
* [ ] 2019 Nov 27 - `master` is locked, no PR's merged.
* [ ] 2019 Nov 29 - Merge `future` to `master`.
* [ ] 2019 Nov 30 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
To see a list of breaking change candidates you can look at the [`breaking_change` label](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+label%3Abreaking_change+is%3Apr). New changes might be added between now and when `future` is closed, and a PR with that label applied is not guaranteed to be merged.
If you want your breaking change to be included in this round you need to create a PR with the `breaking_change` label and have it accepted before `future` closes. After `future` closes no new breaking changes will be accepted.
Criteria for acceptance:
* PR is complete and ready to merge
* PR has a ChangeLog
# Checklists
This section documents various processes we use when running the Breaking Changes process.
## Rebase `future` from `master`
This is run every Friday while `future` is open.
Process:
```
cd qmk_firmware
git checkout master
git pull --ff-only
git checkout future
git rebase master
git push --force
```
## Creating the `future` branch
This happens immediately after the previous `future` branch is merged.
* `qmk_firmware` git commands
* [ ] `git checkout master`
* [ ] `git pull --ff-only`
* [ ] `git checkout -b future`
* [ ] Edit `readme.md`
* [ ] Add a big notice at the top that this is a testing branch.
* [ ] Include a link to this document
* [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
* [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
* [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
* [ ] `git push origin future`
* [ ] `git push --tags`
## 4 Weeks Before Merge
* `future` is now closed to new PR's, only fixes for current PR's may be merged
* Post call for testers
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
## 1 Week Before Merge
* Announce that master will be closed from <2 Days Before> to <Day of Merge>
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
## 2 Days Before Merge
* Announce that master is closed for 2 days
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
## Day Of Merge
* `qmk_firmware` git commands
* [ ] `git checkout future`
* [ ] `git pull --ff-only`
* [ ] `git rebase origin/master`
* [ ] Edit `readme.md`
* [ ] Remove the notes about `future`
* [ ] Roll up the ChangeLog into one file.
* [ ] `git commit -m 'Merge point for <DATE> Breaking Change'`
* [ ] `git push origin future`
* Github Actions
* [ ] Create a PR for `future`
* [ ] Make sure travis comes back clean
* [ ] Merge `future` PR

146
docs/cli.md Normal file
View File

@ -0,0 +1,146 @@
# QMK CLI
This page describes how to setup and use the QMK CLI.
# Overview
The QMK CLI makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more.
* [Global CLI](#global-cli)
* [Local CLI](#local-cli)
* [CLI Commands](#cli-commands)
# Requirements
The CLI requires Python 3.5 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt).
# Global CLI
QMK provides an installable CLI that can be used to setup your QMK build environment, work with QMK, and which makes working with multiple copies of `qmk_firmware` easier. We recommend installing and updating this periodically.
## Install Using Homebrew (macOS, some Linux)
If you have installed [Homebrew](https://brew.sh) you can tap and install QMK:
```
brew tap qmk/qmk
brew install qmk
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
```
## Install Using easy_install or pip
If your system is not listed above you can install QMK manually. First ensure that you have python 3.5 (or later) installed and have installed pip. Then install QMK with this command:
```
pip3 install qmk
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
```
## Packaging For Other Operating Systems
We are looking for people to create and maintain a `qmk` package for more operating systems. If you would like to create a package for your OS please follow these guidelines:
* Follow best practices for your OS when they conflict with these guidelines
* Documment why in a comment when you do deviate
* Install using a virtualenv
* Instruct the user to set the environment variable `QMK_HOME` to have the firmware source checked out somewhere other than `~/qmk_firmware`.
# Local CLI
If you do not want to use the global CLI there is a local CLI bundled with `qmk_firmware`. You can find it in `qmk_firmware/bin/qmk`. You can run the `qmk` command from any directory and it will always operate on that copy of `qmk_firmware`.
**Example**:
```
$ ~/qmk_firmware/bin/qmk hello
Ψ Hello, World!
```
## Local CLI Limitations
There are some limitations to the local CLI compared to the global CLI:
* The local CLI does not support `qmk setup` or `qmk clone`
* The local CLI always operates on the same `qmk_firmware` tree, even if you have multiple repositories cloned.
* The local CLI does not run in a virtualenv, so it's possible that dependencies will conflict
# CLI Commands
## `qmk compile`
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm> or compile keymaps in the repo.
**Usage for Configurator Exports**:
```
qmk compile <configuratorExport.json>
```
**Usage for Keymaps**:
```
qmk compile -kb <keyboard_name> -km <keymap_name>
```
## `qmk cformat`
This command formats C code using clang-format. Run it with no arguments to format all core code, or pass filenames on the command line to run it on specific files.
**Usage**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
## `qmk config`
This command lets you configure the behavior of QMK. For the full `qmk config` documentation see [CLI Configuration](cli_configuration.md).
**Usage**:
```
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
```
## `qmk doctor`
This command examines your environment and alerts you to potential build or flash problems.
**Usage**:
```
qmk doctor
```
## `qmk new-keymap`
This command creates a new keymap based on a keyboard's existing default keymap.
**Usage**:
```
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk pyformat`
This command formats python code in `qmk_firmware`.
**Usage**:
```
qmk pyformat
```
## `qmk pytest`
This command runs the python test suite. If you make changes to python code you should ensure this runs successfully.
**Usage**:
```
qmk pytest
```

121
docs/cli_configuration.md Normal file
View File

@ -0,0 +1,121 @@
# QMK CLI Configuration
This document explains how `qmk config` works.
# Introduction
Configuration for QMK CLI is a key/value system. Each key consists of a subcommand and an argument name separated by a period. This allows for a straightforward and direct translation between config keys and the arguments they set.
## Simple Example
As an example let's look at the command `qmk compile --keyboard clueboard/66/rev4 --keymap default`.
There are two command line arguments that could be read from configuration instead:
* `compile.keyboard`
* `compile.keymap`
Let's set these now:
```
$ qmk config compile.keyboard=clueboard/66/rev4 compile.keymap=default
compile.keyboard: None -> clueboard/66/rev4
compile.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
Now I can run `qmk compile` without specifying my keyboard and keymap each time.
## Setting User Defaults
Sometimes you want to share a setting between multiple commands. For example, multiple commands take the argument `--keyboard`. Rather than setting this value for every command you can set a user value which will be used by any command that takes that argument.
Example:
```
$ qmk config user.keyboard=clueboard/66/rev4 user.keymap=default
user.keyboard: None -> clueboard/66/rev4
user.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
# CLI Documentation (`qmk config`)
The `qmk config` command is used to interact with the underlying configuration. When run with no argument it shows the current configuration. When arguments are supplied they are assumed to be configuration tokens, which are strings containing no spaces with the following form:
<subcommand|general|default>[.<key>][=<value>]
## Setting Configuration Values
You can set configuration values by putting an equal sign (=) into your config key. The key must always be the full `<section>.<key>` form.
Example:
```
$ qmk config default.keymap=default
default.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
## Reading Configuration Values
You can read configuration values for the entire configuration, a single key, or for an entire section. You can also specify multiple keys to display more than one value.
### Entire Configuration Example
qmk config
### Whole Section Example
qmk config compile
### Single Key Example
qmk config compile.keyboard
### Multiple Keys Example
qmk config user compile.keyboard compile.keymap
## Deleting Configuration Values
You can delete a configuration value by setting it to the special string `None`.
Example:
```
$ qmk config default.keymap=None
default.keymap: default -> None
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
## Multiple Operations
You can combine multiple read and write operations into a single command. They will be executed and displayed in order:
```
$ qmk config compile default.keymap=default compile.keymap=None
compile.keymap=skully
compile.keyboard=clueboard/66_hotswap/gen1
default.keymap: None -> default
compile.keymap: skully -> None
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
# User Configuration Options
| Key | Default Value | Description |
|-----|---------------|-------------|
| user.keyboard | None | The keyboard path (Example: `clueboard/66/rev4`) |
| user.keymap | None | The keymap name (Example: `default`) |
| user.name | None | The user's github username. |
# All Configuration Options
| Key | Default Value | Description |
|-----|---------------|-------------|
| compile.keyboard | None | The keyboard path (Example: `clueboard/66/rev4`) |
| compile.keymap | None | The keymap name (Example: `default`) |
| hello.name | None | The name to greet when run. |
| new_keyboard.keyboard | None | The keyboard path (Example: `clueboard/66/rev4`) |
| new_keyboard.keymap | None | The keymap name (Example: `default`) |

175
docs/cli_development.md Normal file
View File

@ -0,0 +1,175 @@
# QMK CLI Development
This document has useful information for developers wishing to write new `qmk` subcommands.
# Overview
The QMK CLI operates using the subcommand pattern made famous by git. The main `qmk` script is simply there to setup the environment and pick the correct entrypoint to run. Each subcommand is a self-contained module with an entrypoint (decorated by `@cli.subcommand()`) that performs some action and returns a shell returncode, or None.
# Subcommands
[MILC](https://github.com/clueboard/milc) is the CLI framework `qmk` uses to handle argument parsing, configuration, logging, and many other features. It lets you focus on writing your tool without wasting your time writing glue code.
Subcommands in the local CLI are always found in `qmk_firmware/lib/python/qmk/cli`.
Let's start by looking at an example subcommand. This is `lib/python/qmk/cli/hello.py`:
```python
"""QMK Python Hello World
This is an example QMK CLI script.
"""
from milc import cli
@cli.argument('-n', '--name', default='World', help='Name to greet.')
@cli.subcommand('QMK Hello World.')
def hello(cli):
"""Log a friendly greeting.
"""
cli.log.info('Hello, %s!', cli.config.hello.name)
```
First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function.
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.5/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
# User Interaction
MILC and the QMK CLI have several nice tools for interacting with the user. Using these standard tools will allow you to colorize your text for easier interactions, and allow the user to control when and how that information is displayed and stored.
## Printing Text
There are two main methods for outputting text in a subcommand- `cli.log` and `cli.echo()`. They operate in similar ways but you should prefer to use `cli.log.info()` for most general purpose printing.
You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below.
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.5/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
You should never use the format operator (`%`) directly, always pass values as arguments.
### Logging (`cli.log`)
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.5/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
The default log level is `INFO`. If the user runs `qmk -v <subcommand>` the default log level will be set to `DEBUG`.
| Function | Emoji |
|----------|-------|
| cli.log.critical | `{bg_red}{fg_white}¬_¬{style_reset_all}` |
| cli.log.error | `{fg_red}☒{style_reset_all}` |
| cli.log.warning | `{fg_yellow}⚠{style_reset_all}` |
| cli.log.info | `{fg_blue}Ψ{style_reset_all}` |
| cli.log.debug | `{fg_cyan}☐{style_reset_all}` |
| cli.log.notset | `{style_reset_all}¯\\_(o_o)_/¯` |
### Printing (`cli.echo`)
Sometimes you simply need to print text outside of the log system. This is appropriate if you are outputting fixed data or writing out something that should never be logged. Most of the time you should prefer `cli.log.info()` over `cli.echo`.
### Colorizing Text
You can colorize the output of your text by including color tokens within text. Use color to highlight, not to convey information. Remember that the user can disable color, and your subcommand should still be usable if they do.
You should generally avoid setting the background color, unless it's integral to what you are doing. Remember that users have a lot of preferences when it comes to their terminal color, so you should pick colors that work well against both black and white backgrounds.
Colors prefixed with 'fg' will affect the foreground (text) color. Colors prefixed with 'bg' will affect the background color.
| Color | Background | Extended Background | Foreground | Extended Foreground|
|-------|------------|---------------------|------------|--------------------|
| Black | {bg_black} | {bg_lightblack_ex} | {fg_black} | {fg_lightblack_ex} |
| Blue | {bg_blue} | {bg_lightblue_ex} | {fg_blue} | {fg_lightblue_ex} |
| Cyan | {bg_cyan} | {bg_lightcyan_ex} | {fg_cyan} | {fg_lightcyan_ex} |
| Green | {bg_green} | {bg_lightgreen_ex} | {fg_green} | {fg_lightgreen_ex} |
| Magenta | {bg_magenta} | {bg_lightmagenta_ex} | {fg_magenta} | {fg_lightmagenta_ex} |
| Red | {bg_red} | {bg_lightred_ex} | {fg_red} | {fg_lightred_ex} |
| White | {bg_white} | {bg_lightwhite_ex} | {fg_white} | {fg_lightwhite_ex} |
| Yellow | {bg_yellow} | {bg_lightyellow_ex} | {fg_yellow} | {fg_lightyellow_ex} |
There are also control sequences that can be used to change the behavior of
ANSI output:
| Control Sequences | Description |
|-------------------|-------------|
| {style_bright} | Make the text brighter |
| {style_dim} | Make the text dimmer |
| {style_normal} | Make the text normal (neither `{style_bright}` nor `{style_dim}`) |
| {style_reset_all} | Reset all text attributes to default. (This is automatically added to the end of every string.) |
| {bg_reset} | Reset the background color to the user's default |
| {fg_reset} | Reset the foreground color to the user's default |
# Arguments and Configuration
QMK handles the details of argument parsing and configuration for you. When you add a new argument it is automatically incorporated into the config tree based on your subcommand's name and the long name of the argument. You can access this configuration in `cli.config`, using either attribute-style access (`cli.config.<subcommand>.<argument>`) or dictionary-style access (`cli.config['<subcommand>']['<argument>']`).
Under the hood QMK uses [ConfigParser](https://docs.python.org/3/library/configparser.html) to store configurations. This gives us an easy and straightforward way to represent the configuration in a human-editable way. We have wrapped access to this configuration to provide some nicities that ConfigParser does not normally have.
## Reading Configuration Values
You can interact with `cli.config` in all the ways you'd normally expect. For example the `qmk compile` command gets the keyboard name from `cli.config.compile.keyboard`. It does not need to know whether that value came from the command line, an environment variable, or the configuration file.
Iteration is also supported:
```
for section in cli.config:
for key in cli.config[section]:
cli.log.info('%s.%s: %s', section, key, cli.config[section][key])
```
## Setting Configuration Values
You can set configuration values in the usual ways.
Dictionary style:
```
cli.config['<section>']['<key>'] = <value>
```
Attribute style:
```
cli.config.<section>.<key> = <value>
```
## Deleting Configuration Values
You can delete configuration values in the usual ways.
Dictionary style:
```
del(cli.config['<section>']['<key>'])
```
Attribute style:
```
del(cli.config.<section>.<key>)
```
## Writing The Configuration File
The configuration is not written out when it is changed. Most commands do not need to do this. We prefer to have the user change their configuration deliberitely using `qmk config`.
You can use `cli.save_config()` to write out the configuration.
## Excluding Arguments From Configuration
Some arguments should not be propagated to the configuration file. These can be excluded by adding `arg_only=True` when creating the argument.
Example:
```
@cli.argument('-o', '--output', arg_only=True, help='File to write to')
@cli.argument('filename', arg_only=True, help='Configurator JSON file')
@cli.subcommand('Create a keymap.c from a QMK Configurator export.')
def json_keymap(cli):
pass
```
You will only be able to access these arguments using `cli.args`. For example:
```
cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.output)
```

View File

@ -0,0 +1,58 @@
# Coding Conventions (C)
Most of our style is pretty easy to pick up on, but right now it's not entirely consistent. You should match the style of the code surrounding your change, but if that code is inconsistent or unclear use the following guidelines:
* We indent using four (4) spaces (soft tabs)
* We use a modified One True Brace Style
* Opening Brace: At the end of the same line as the statement that opens the block
* Closing Brace: Lined up with the first character of the statement that opens the block
* Else If: Place the closing brace at the beginning of the line and the next opening brace at the end of the same line.
* Optional Braces: Always include optional braces.
* Good: if (condition) { return false; }
* Bad: if (condition) return false;
* We encourage use of C style comments: `/* */`
* Think of them as a story describing the feature
* Use them liberally to explain why particular decisions were made.
* Do not write obvious comments
* If you not sure if a comment is obvious, go ahead and include it.
* In general we don't wrap lines, they can be as long as needed. If you do choose to wrap lines please do not wrap any wider than 76 columns.
* We use `#pragma once` at the start of header files rather than old-style include guards (`#ifndef THIS_FILE_H`, `#define THIS_FILE_H`, ..., `#endif`)
* We accept both forms of preprocessor if's: `#ifdef DEFINED` and `#if defined(DEFINED)`
* If you are not sure which to prefer use the `#if defined(DEFINED)` form.
* Do not change existing code from one style to the other, except when moving to a multiple condition `#if`.
* Do not put whitespace between `#` and `if`.
* When deciding how (or if) to indent directives keep these points in mind:
* Readability is more important than consistency.
* Follow the file's existing style. If the file is mixed follow the style that makes sense for the section you are modifying.
* When choosing to indent you can follow the indention level of the surrounding C code, or preprocessor directives can have their own indent level. Choose the style that best communicates the intent of your code.
Here is an example for easy reference:
```c
/* Enums for foo */
enum foo_state {
FOO_BAR,
FOO_BAZ,
};
/* Returns a value */
int foo(void) {
if (some_condition) {
return FOO_BAR;
} else {
return -1;
}
}
```
# Auto-formatting with clang-format
[Clang-format](https://clang.llvm.org/docs/ClangFormat.html) is part of LLVM and can automatically format your code for you, because ain't nobody got time to do it manually. We supply a configuration file for it that applies most of the coding conventions listed above. It will only change whitespace and newlines, so you will still have to remember to include optional braces yourself.
Use the [full LLVM installer](http://llvm.org/builds/) to get clang-format on Windows, or use `sudo apt install clang-format` on Ubuntu.
If you run it from the command-line, pass `-style=file` as an option and it will automatically find the .clang-format configuration file in the QMK root directory.
If you use VSCode, the standard C/C++ plugin supports clang-format, alternatively there is a [separate extension](https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.ClangFormat) for it.
Some things (like LAYOUT macros) are destroyed by clang-format, so either don't run it on those files, or wrap the sensitive code in `// clang-format off` and `// clang-format on`.

File diff suppressed because it is too large Load Diff

View File

@ -76,7 +76,7 @@ This is a C header file that is one of the first things included, and will persi
* `#define B7_AUDIO`
* enables audio on pin B7 (duophony is enables if one of B[5-7]\_AUDIO is enabled along with one of C[4-6]\_AUDIO)
* `#define BACKLIGHT_PIN B7`
* pin of the backlight - `B5`, `B6`, `B7` and `C6` (and `D4` on ATmega32A) use hardware PWM, others use software implementation
* pin of the backlight
* `#define BACKLIGHT_LEVELS 3`
* number of levels your backlight will have (maximum 15 excluding off)
* `#define BACKLIGHT_BREATHING`
@ -89,10 +89,12 @@ This is a C header file that is one of the first things included, and will persi
* mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
* `#define LOCKING_RESYNC_ENABLE`
* tries to keep switch state consistent with keyboard LED state
* `#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))`
* `#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)`
* key combination that allows the use of magic commands (useful for debugging)
* `#define USB_MAX_POWER_CONSUMPTION`
* `#define USB_MAX_POWER_CONSUMPTION 500`
* sets the maximum power (in mA) over USB for the device (default: 500)
* `#define USB_POLLING_INTERVAL_MS 10`
* sets the USB polling rate in milliseconds for the keyboard, mouse, and shared (NKRO/media keys) interfaces
* `#define F_SCL 100000L`
* sets the I2C clock rate speed for keyboards using I2C. The default is `400000L`, except for keyboards using `split_common`, where the default is `100000L`.
@ -171,8 +173,8 @@ If you define these options you will enable the associated feature, which may in
* how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined.
* `#define TAP_CODE_DELAY 100`
* Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
* `#define TAP_HOLD_CAPS_DELAY 200`
* Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 200ms if not defined.
* `#define TAP_HOLD_CAPS_DELAY 80`
* Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
## RGB Light Configuration
@ -248,6 +250,9 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define MATRIX_COL_PINS_RIGHT { <col pins> }`
* If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns.
* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
* If you want to specify a different direct pinout for the right half than the left half, you can define `DIRECT_PINS_RIGHT`. Currently, the size of `DIRECT_PINS` must be the same as `DIRECT_PINS_RIGHT`.
* `#define RGBLED_SPLIT { 6, 6 }`
* See [RGB Light Configuration](#rgb-light-configuration)
@ -289,6 +294,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* `halfkay`
* `caterina`
* `bootloadHID`
* `USBasp`
## Feature Options

View File

@ -54,62 +54,10 @@ Never made an open source contribution before? Wondering how contributions work
# Coding Conventions
Most of our style is pretty easy to pick up on, but right now it's not entirely consistent. You should match the style of the code surrounding your change, but if that code is inconsistent or unclear use the following guidelines:
Most of our style is pretty easy to pick up on. If you are familiar with either C or Python you should not have too much trouble with our local styles.
* We indent using four (4) spaces (soft tabs)
* We use a modified One True Brace Style
* Opening Brace: At the end of the same line as the statement that opens the block
* Closing Brace: Lined up with the first character of the statement that opens the block
* Else If: Place the closing brace at the beginning of the line and the next opening brace at the end of the same line.
* Optional Braces: Always include optional braces.
* Good: if (condition) { return false; }
* Bad: if (condition) return false;
* We encourage use of C style comments: `/* */`
* Think of them as a story describing the feature
* Use them liberally to explain why particular decisions were made.
* Do not write obvious comments
* If you not sure if a comment is obvious, go ahead and include it.
* In general we don't wrap lines, they can be as long as needed. If you do choose to wrap lines please do not wrap any wider than 76 columns.
* We use `#pragma once` at the start of header files rather than old-style include guards (`#ifndef THIS_FILE_H`, `#define THIS_FILE_H`, ..., `#endif`)
* We accept both forms of preprocessor if's: `#ifdef DEFINED` and `#if defined(DEFINED)`
* If you are not sure which to prefer use the `#if defined(DEFINED)` form.
* Do not change existing code from one style to the other, except when moving to a multiple condition `#if`.
* Do not put whitespace between `#` and `if`.
* When deciding how (or if) to indent directives keep these points in mind:
* Readability is more important than consistency.
* Follow the file's existing style. If the file is mixed follow the style that makes sense for the section you are modifying.
* When choosing to indent you can follow the indention level of the surrounding C code, or preprocessor directives can have their own indent level. Choose the style that best communicates the intent of your code.
Here is an example for easy reference:
```c
/* Enums for foo */
enum foo_state {
FOO_BAR,
FOO_BAZ,
};
/* Returns a value */
int foo(void) {
if (some_condition) {
return FOO_BAR;
} else {
return -1;
}
}
```
# Auto-formatting with clang-format
[Clang-format](https://clang.llvm.org/docs/ClangFormat.html) is part of LLVM and can automatically format your code for you, because ain't nobody got time to do it manually. We supply a configuration file for it that applies most of the coding conventions listed above. It will only change whitespace and newlines, so you will still have to remember to include optional braces yourself.
Use the [full LLVM installer](http://llvm.org/builds/) to get clang-format on Windows, or use `sudo apt install clang-format` on Ubuntu.
If you run it from the command-line, pass `-style=file` as an option and it will automatically find the .clang-format configuration file in the QMK root directory.
If you use VSCode, the standard C/C++ plugin supports clang-format, alternatively there is a [separate extension](https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.ClangFormat) for it.
Some things (like LAYOUT macros) are destroyed by clang-format, so either don't run it on those files, or wrap the sensitive code in `// clang-format off` and `// clang-format on`.
* [Coding Conventions - C](coding_conventions_c.md)
* [Coding Conventions - Python](coding_conventions_python.md)
# General Guidelines

View File

@ -297,8 +297,8 @@ This runs code every time that the layers get changed. This can be useful for l
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example
```c
uint32_t layer_state_set_user(uint32_t state) {
switch (biton32(state)) {
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case _RAISE:
rgblight_setrgb (0x00, 0x00, 0xFF);
break;
@ -320,8 +320,8 @@ uint32_t layer_state_set_user(uint32_t state) {
```
### `layer_state_set_*` Function Documentation
* Keyboard/Revision: `uint32_t layer_state_set_kb(uint32_t state)`
* Keymap: `uint32_t layer_state_set_user(uint32_t state)`
* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)`
* Keymap: `layer_state_t layer_state_set_user(layer_state_t state)`
The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status)
@ -377,8 +377,8 @@ void keyboard_post_init_user(void) {
The above function will use the EEPROM config immediately after reading it, to set the default layer's RGB color. The "raw" value of it is converted in a usable structure based on the "union" that you created above.
```c
uint32_t layer_state_set_user(uint32_t state) {
switch (biton32(state)) {
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case _RAISE:
if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); }
break;

View File

@ -0,0 +1,46 @@
# Bootloader Driver Installation with Zadig
QMK presents itself to the host as a regular HID keyboard device, and as such requires no special drivers. However, in order to flash your keyboard on Windows, the bootloader device that appears when you reset the board often *does*.
There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the Halfkay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with Msys2 or WSL, the `qmk_install.sh` script will have asked if you want it to install the drivers for you.
## Installation
Put your keyboard into bootloader mode, either by hitting the `RESET` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic](feature_bootmagic.md) docs for more details). Some boards use [Command](feature_command.md) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](feature_bootmagic.md#bootmagic-lite) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
Alternatively, hold `BOOT` while inserting the USB cable.
Zadig will automatically detect the bootloader device. You may sometimes need to check **Options → List All Devices**.
- For keyboards with Atmel AVR MCUs, the bootloader will be named something similar to `ATm32U4DFU`, and have a Vendor ID of `03EB`.
- USBasp bootloaders will appear as `USBasp`, with a VID/PID of `16C0:05DC`.
- AVR keyboards flashed with the QMK-DFU bootloader will be named `<keyboard name> Bootloader` and will also have the VID `03EB`.
- For most ARM keyboards, it will be called `STM32 BOOTLOADER`, and have a VID/PID of `0483:DF11`.
!> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case!
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. For flashing a USBaspLoader device via command line with msys2, the `libusbk` driver is recommended, otherwise `libusb-win32` will work fine if you are using QMK Toolbox for flashing.
![Zadig with a bootloader driver correctly installed](https://i.imgur.com/b8VgXzx.png)
Finally, unplug and replug the keyboard to make sure the new driver has been loaded. If you are using the QMK Toolbox to flash, exit and restart it too, as it can sometimes fail to recognize the driver change.
## Recovering from Installation to Wrong Device
If you find that you can no longer type with the keyboard, you may have installed the driver onto the keyboard itself instead of the bootloader. You can easily confirm this in Zadig - a healthy keyboard has the `HidUsb` driver installed on all of its interfaces:
![A healthy keyboard as seen by Zadig](https://i.imgur.com/Hx0E5kC.png)
Open the Device Manager and look for a device that looks like your keyboard.
![The board with the wrong driver installed, in Device Manager](https://i.imgur.com/L3wvX8f.png)
Right-click it and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first.
![The Device Uninstall dialog, with the "delete driver" checkbox ticked](https://i.imgur.com/aEs2RuA.png)
Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again!

View File

@ -19,7 +19,11 @@ Note that running `make` with `sudo` is generally ***not*** a good idea, and you
### Linux `udev` Rules
On Linux, you'll need proper privileges to access the MCU. You can either use
`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`.
`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`. Once added run the following:
```console
sudo udevadm control --reload-rules
sudo udevadm trigger
```
**/etc/udev/rules.d/50-atmel-dfu.rules:**
```
@ -43,22 +47,39 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666"
```
**/etc/udev/rules.d/55-catalina.rules:**
```
# ModemManager should ignore the following devices
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"
```
**Note:** ModemManager filtering only works when not in strict mode, the following commands can update that settings:
```console
sudo sed -i 's/--filter-policy=strict/--filter-policy=default/' /lib/systemd/system/ModemManager.service
sudo systemctl daemon-reload
sudo systemctl restart ModemManager
```
**/etc/udev/rules.d/56-dfu-util.rules:**
```
# stm32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="0666"
# Generic stm32
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666"
```
### Serial device is not detected in bootloader mode on Linux
Make sure your kernel has appropriate support for your device. If your device uses USB ACM, such as
Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices may require `USB_SERIAL` and any of its sub options.
## Unknown Device for DFU Bootloader
If you're using Windows to flash your keyboard, and you are running into issues, check the Device Manager. If you see an "Unknown Device" when the keyboard is in "bootloader mode", then you may have a driver issue.
Issues encountered when flashing keyboards on Windows are most often due to having the wrong drivers installed for the bootloader, or none at all.
Re-running the installation script for MSYS2 may help (eg run `./util/qmk_install.sh` from MSYS2/WSL) or reinstalling the QMK Toolbox may fix the issue.
If that doesn't work, then you may need to grab the [Zadig Utility](https://zadig.akeo.ie/). Download this, find the device in question, and select the `WinUSB` option, and hit "Reinstall driver". Once you've done that, try flashing your board, again. If that doesn't work, try all of the options, until one works.
?> There isn't a best option for which driver should be used here. Some options work better on some systems than others. libUSB and WinUSB seem to be the best options here.
If the bootloader doesn't show up in the list for devices, you may need to enable the "List all devices" option in the `Options` menu, and then find the bootloader in question.
Re-running the QMK installation script (`./util/qmk_install.sh` from the `qmk_firmware` directory in MSYS2 or WSL) or reinstalling the QMK Toolbox may fix the issue. Alternatively, you can download and run the [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) package manually.
If that doesn't work, then you may need to download and run Zadig. See [Bootloader Driver Installation with Zadig](driver_installation_zadig.md) for more detailed information.
## WINAVR is Obsolete
It is no longer recommended and may cause some problem.

View File

@ -87,6 +87,7 @@ Size after:
- EEPROM has around a 100000 write cycle. You shouldn't rewrite the
firmware repeatedly and continually; that'll burn the EEPROM
eventually.
## NKRO Doesn't work
First you have to compile firmware with this build option `NKRO_ENABLE` in **Makefile**.
@ -183,22 +184,15 @@ Pressing any key during sleep should wake host.
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
## Enabling JTAG
## Using PF4-7 Pins of USB AVR?
You need to set JTD bit of MCUCR yourself to use PF4-7 as GPIO. Those pins are configured to serve JTAG function by default. MCUs like ATMega*U* or AT90USB* are affected with this.
By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc.
If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function.
If you would like to keep JTAG enabled, just add the following to your `config.h`:
See this code.
```c
#define NO_JTAG_DISABLE
```
// JTAG disable for PORT F. write JTD bit twice within four cycles.
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
```
https://github.com/tmk/tmk_keyboard/blob/master/keyboard/hbkb/matrix.c#L67
And read **26.5.1 MCU Control Register MCUCR** of ATMega32U4 datasheet.
## Adding LED Indicators of Lock Keys
You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post.

View File

@ -21,6 +21,8 @@ STARTUP_SONG // plays when the keyboard starts up (audio.c)
GOODBYE_SONG // plays when you press the RESET key (quantum.c)
AG_NORM_SONG // plays when you press AG_NORM (quantum.c)
AG_SWAP_SONG // plays when you press AG_SWAP (quantum.c)
CG_NORM_SONG // plays when you press CG_NORM (quantum.c)
CG_SWAP_SONG // plays when you press CG_SWAP (quantum.c)
MUSIC_ON_SONG // plays when music mode is activated (process_music.c)
MUSIC_OFF_SONG // plays when music mode is deactivated (process_music.c)
CHROMATIC_SONG // plays when the chromatic music mode is selected (process_music.c)

Some files were not shown because too many files have changed in this diff Show More