Compare commits

..

189 Commits

Author SHA1 Message Date
76378d74f5 ARM split - detect USB to select master/slave (#6424)
* Initial split refactor to allow usb master detection

* Add split USB detect docs

* Add SPLIT_USB_DETECT demo mode limitation

* fix rebase issues

* clang-format
2019-10-11 23:25:43 -04:00
64c075ed2c Fix CONVERT_TO_PROTON_C_RXLED pins (#7007) 2019-10-11 12:11:47 +01:00
094aa7c24b added new layout and Olivierko keymap for dz60 (#6996)
* - added new layout for dz60
- created personal keymap using new layout

* - changes based on pr feedback from @noroadsleft

* - further readme formatting

* Apply suggestions from code review

applied changes based on review feedback

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

* - readme formatting

* Apply suggestions from code review

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-11 08:52:16 +11:00
918f13a4ac Fix/projectkb/alice/right spacebar layout size from 2.25 to 2.7… (#6984)
* Added KBD6X Vimwarrior HHKB TOFU Personal Layout

* Added Readme.md for Vimwarrior HHKB Tofu Keymap

* Added DZ60 Vimwarrior WKL Tofu Keymap

* Update Rename keymaps to devinceble_hhkb_tofu and devinceble_wkl_tofu

* Update rules.mk Added BOOTLOADER config.

* [Keymap] Added devinceble keymap for TADA68

* Fix projectkb/alice Right Spacebar Size to 2.75 not a bug though but confusing

* Update Right Alt for Layout Fix
2019-10-11 08:48:03 +11:00
5156a7e05c fix DZ60 info.json (#7000) 2019-10-10 07:58:38 -07:00
ed1bf3afa2 Prevent clang-format messing up placeholder tokens within keyboard templates (#6790)
* Use .template file extension for keyboard template files

* Filter out .template files completely before passing to clang-format

* Undo file extension stuff; just ignore quantum/template dir
2019-10-10 11:48:37 +01:00
528ddb7987 [Keyboard] Added new layout for DZ60 and keymap (#6854)
* Added new layout

Added my preferred layout

* Added my keymap

* Update info.json

Added LAYOUT_60_stand_stag_all

* Update README.md

Removed image from the keymap I based this layout from.

* Update keyboards/dz60/keymaps/iso_vim_arrow_split_rs/keymap.c

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

* Update keyboards/dz60/keymaps/iso_vim_arrow_split_rs/keymap.c

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

* Update keyboards/dz60/info.json

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

* Update keyboards/dz60/dz60.h

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

* Update keyboards/dz60/info.json

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

* Update keyboards/dz60/keymaps/iso_vim_arrow_split_rs/keymap.c

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

* Update keyboards/dz60/dz60.h

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

* Update rules.mk

Removed verbose rules.mk
2019-10-09 15:55:27 -07:00
da3ff89fac [Docs] French translation - Breaking Changes section (#6966)
* Translated breaking_changes.md in French

* Translated ChangeLog/20190830.md to French

* Update docs/fr-FR/breaking_changes.md

Co-Authored-By: Max Rumpf <max.rumpf1998@gmail.com>

* Fix comments from @zekth

Co-Authored-By: Vincent LE GOFF <g_n_s@hotmail.fr>
2019-10-09 15:45:41 -07:00
e58343596a Keyboard/ergodox debounce (#6994)
* Set default debounce to 30

Lower debounce causes issues, and even 15 isn't lowe enough for the EZ

* Cleanup ergodox ez matrix
2019-10-09 23:23:57 +01:00
4e23c700f1 [Keymap] Adding garyjzhao's Iris keymap (#6980)
* Added Gary's user files

* Added Gary's Iris Keymap files

* Added Gary's Iris Keymap files

* updated readme

* removed comments

* Cleaned up code even more
2019-10-09 12:05:31 -07:00
531ff70e0d [Keyboard] Satisfaction75 Configurator support (info.json) (#6833)
* add configurator support for rev1 s75

* add configurator support for prototype

* Update keyboards/cannonkeys/satisfaction75/prototype/info.json

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

* Update keyboards/cannonkeys/satisfaction75/rev1/info.json

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

* Update keyboards/cannonkeys/satisfaction75/rev1/info.json

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

* Update keyboards/cannonkeys/satisfaction75/rev1/info.json

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

* Update keyboards/cannonkeys/satisfaction75/rev1/info.json

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

* Update keyboards/cannonkeys/satisfaction75/rev1/info.json

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

* fixup layouts

* Update keyboards/cannonkeys/satisfaction75/rev1/info.json

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

* Update keyboards/cannonkeys/satisfaction75/rev1/info.json

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-09 11:03:33 -07:00
3cb216f381 [Keyboard] New Keyboard: Exent (#6985)
* initial commit

* thank you mr keebs for making this easy. Added 65_ansi macro made from mrkeebs kle2qmk tool.

* split backspace requires an additional row

* change k43 to k42

* add in split space bar support for LAYOUT_all

* add QMK Configurator support

* make default keymap more usable

* update readme

* Update keyboards/exent/info.json

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

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

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

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

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

* Update keyboards/exent/rules.mk

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-09 10:23:38 -07:00
23cac6a606 [Keymap] Feature/keymap/tada68 (#6983)
* Added KBD6X Vimwarrior HHKB TOFU Personal Layout

* Added Readme.md for Vimwarrior HHKB Tofu Keymap

* Added DZ60 Vimwarrior WKL Tofu Keymap

* Update Rename keymaps to devinceble_hhkb_tofu and devinceble_wkl_tofu

* Update rules.mk Added BOOTLOADER config.

* [Keymap] Added devinceble keymap for TADA68

* Update Reduce down rules.mk to just MOUSEKEY_ENABLE
2019-10-09 09:58:39 -07:00
1f2ad80c16 Gray Studio Space65 Configurator Layout fix (#6987)
- LAYOUT_65_ansi_blocker data was actually LAYOUT's data.
- added actual LAYOUT_65_ansi_blocker data
2019-10-09 07:09:57 -07:00
db3d4a92ae Kingly Keys Little Foot Configurator layout fix (#6988)
* fix Kingly Keys Little Foot info.json

Was missing a closing curly bracket.

* clean up the indenting

White-space-only change.
2019-10-09 06:48:29 -07:00
8da25dd6e3 [Docs] removed unneeded line of code in Tap Dance documentation (#6981) 2019-10-08 22:01:56 -07:00
8991d9ab3a [Docs] Fix missing link in readme (#6958) 2019-10-08 21:59:11 -07:00
1c07d4e7ef [Docs] Clean up docs/newbs_flashing.md (#6973)
* [Docs] Clean up docs/newbs_flashing.md

See #6930

* Fix typo
2019-10-08 21:55:44 -07:00
0ea4e86175 [Docs] French translation of QMK Basics (#6925)
* Adds the files that will be translated

* Start translate cli_configuration.md in French

* Translated cli.md in French

* Translated getting_started_getting_help.md in French

* /getting_started_github.md

* Translated first part of contributing.md in French

* Finish translation of contributing.md

* Translated the getting_started_introduction.md in French

* Corrected issues from @zekth review

Co-Authored-By: Vincent LE GOFF <g_n_s@hotmail.fr>
2019-10-08 13:27:45 -07:00
4335b97a07 Reorder Raw HID interface to match what the USB spec expects (#6801) 2019-10-08 11:47:37 -07:00
89fe8d2d87 [Keymap] Adding my keymaps for Preonic and XD75 (#6874)
* Added my keymaps

* Update to readmes

* Update keyboards/preonic/keymaps/pitty/config.h

Thanks!

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

* Update keyboards/preonic/keymaps/pitty/config.h

Thanks!

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

* Update keyboards/preonic/keymaps/pitty/config.h

Thanks!

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

* Update config.h

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

Thanks!

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

* Removed copyrighted material

* Update keyboards/xd75/keymaps/pitty/keymap.c

Thanks!

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

* Update config.h

* Update config.h

* Update config.h

* Update keymap.c

* Update keymap.c

* Update config.h

* Update keymap.c

* Update keyboards/preonic/keymaps/pitty/config.h

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

* Update keyboards/preonic/keymaps/pitty/config.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-08 11:26:17 -07:00
9fe7b406cb [Keyboard] Move existing boards to Kingly_Keys and add more boards (#6879)
* try to fix and orginize to Kingly_Keys subfolder and add various keyboard support

* fixed layout nomenclature and rules.mk pref

* modified readme for smd_milk

* fixed layout name in little_foot.h

* Update keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c

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

* Update keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c

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

* Update keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c

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

* remove old stand-alone keyboard folders

* Fixed missing comma in littlefoot keymap

* remove OLED code in romac_plus.c

* Update rules.mk

* Update readme.md

* Apply suggestions from code review

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

* Update rules.mk

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update keymap.c

* fix little_foot.h layouts, delete smd_milk readme.md

* Fix ALpha Edits

* Fix ALpha Edits p.2

* update little_foot.h

* fix little_foot.h p.2

* Update keyboards/kingly_keys/little_foot/little_foot.h

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

* Update keyboards/kingly_keys/little_foot/keymaps/default/keymap.c

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

* Update keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c

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

* Update keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c

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

* Update keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c

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

* Update keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c

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

* Update keyboards/kingly_keys/romac_plus/keymaps/default/keymap.c

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

* Modify config.h for cleaned up PCB.
2019-10-08 11:24:20 -07:00
19584b92c5 [Keymap] keymaps for planck and crkbd (#6895)
* using similar keymaps (with vim in mind) for planck and crkbd

* changed to rgb matrix and lower max brightness to prevent unresponsiveness

* readme and default rgb mode

* disable all the not wanted effects and activate the framebuffer ones

* changed effects

* changed custom keycodes to defines

* fixed comment
2019-10-08 11:16:38 -07:00
2707652c98 [Docs] CLI command to serve docs locally (#6956)
* CLI command to serve docs locally

* Document it

* Default port

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

* Apply suggestions from code review

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

* Update docs/cli.md
2019-10-08 11:06:26 -07:00
e7d95701bf [Docs] French translation of Complete Newbs Guide (#6901)
* Translated _summary.md + newbs.md

* Translated news_best_practices.md in French

* Translated newbs_building_firmware_configurator.md in French

* Translated the file newbs_building_firmware.md in French

* Translated page newbs_flashing.md in French

* Translated the page newbs_getting_started.md in French

* Translated the page newbs_learn_more_resources.md in French

* Translated the page newbs_testing_debugging.md in French

* Change translation of split from 'séparé' to 'scindé'

* Adding the lang file for gitbook and some others tranme other translation

* Correcting typos after Gimly's review

* Some others sections on the summary

* Fix first comments from @zekth

* Fix some issues from @4sStylZ

* Fix other issues from @4sStylZ

* Fix weird phrase

* Replaced all uses of  'téléverser' by 'flash'

* Replaced all planches by board

* Fix other PR comments

* Fix comment
2019-10-08 10:45:34 -07:00
5e43f87956 [Keyboard] RGB updates on NK65 and HS60 (#6795)
* RGB update commit

* Convert caps lock indicator check to IS_LED_ON

* ISSI3733 minor change
2019-10-08 09:03:51 -07:00
d00326ecb3 [Keymap] modify ergodox_ez / dvorak_42_key layout (#6832)
* add macros for windows 10 workspace switching

* change debounce settings

* add comment

* remove debounce
2019-10-08 08:43:54 -07:00
49fdd386b2 [Docs] Clean up docs/newbs_building_firmware.md (#6930)
* Clean up the blocks in the second section so that macOS & Windows are in the same block with the command

* As suggested by fauxpark
2019-10-07 20:08:05 -07:00
e2ec5790b7 [Docs] updated and cleaned up documentation for Tap Dance (#6949) 2019-10-07 19:28:48 -07:00
8fe15fa17a [Keymap] Overly greedy community keymap build userspace (#6969)
- this fixes breakage in instant60 pcb sorry @upas
2019-10-07 19:23:59 -07:00
403c139b34 [Docs] Add AVR and ARM examples to GPIO Commands (#6942)
* [Docs] Add AVR and ARM examples to GPIO Commands

Add examples for reference for people not as well versed in microcontroller coding, such as myself.

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-07 19:08:14 -07:00
dc5876a8e6 [Keymap] katana60: Fix = key in default keymap (#6941)
The top-right key should be = and not the shifted pseudo-key +. This
matches the sample layout from the picture in the readme [0].

[0]: https://i.imgur.com/xVkODOu.jpg
2019-10-07 17:18:18 -07:00
93767540e1 [Keymap] Add new TADA68 keymap (#6938)
* Add new TADA68 keymap

* Remove unnecessary backlashes

* Change from MacOS specific to generic volume keycodes
2019-10-07 17:15:59 -07:00
5bb3fe7a35 Remove unanswered/unnecessary FAQ item
As discussed in #6957, closes #6957
2019-10-07 15:43:42 -07:00
3e22af92ee [Docs] Add an important note about modifying user code (#6959)
* Add an important note about modifying user code

* Update docs/contributing.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-07 14:50:10 -07:00
2c51d14223 [Keyboard] Cannon Keys Satisfaction75: Fix buffer sizes for sprintfs. (#6954)
sprintf always adds a NULL terminator at the end of the buffer it works on.
A few places made just enough space for the resulting string, but not the terminator.
So this just adds one to the buffer size to make room for it.
2019-10-07 14:35:28 -07:00
6bed239486 [Keymap] Community layout for hhkb (#6961) 2019-10-07 13:31:11 -07:00
c2709a7ca4 [Keymap] Clean up / adjust khord let's split keymap (#6951)
Remove unneeded lines and change right side mouse buttons on raise layer back to media control
2019-10-07 12:35:37 -07:00
26fe4e44d5 [Keymap] Fix talljoe-gherkin keymap typo (#6950) 2019-10-07 11:57:35 -07:00
b5b057ad95 [Keymap] MF68 keymap LED pins fixed (#6946)
* fixing LED pins to accurately use the Pro Micro LEDs

* fixing trailing whitespace
2019-10-07 11:42:12 -07:00
f04e58dad6 [CLI] Add qmk list_keyboards (#6927)
`list_keyboards` replicates the `make list-keyboards` by globbing for all paths
that include `rules.mk` and then removing the paths that include `keymaps`.

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

Resolves #6911
2019-10-07 11:32:30 -07:00
d9b056486b [Keymap] Move brightness controls one key over (#6945)
I forgot to count the extra ISO-only key next to left shift when
initially adding these brightness controls.
2019-10-07 11:17:08 -07:00
2881f53dd4 [Keymap] updating ninjonas userspace (#6903)
* [refactor] updating ninjonas layout blocks and standardized LOWER & ADJUST

* [feat] added new macro M_TERM to open MacOS terminal app

* [feat] introducing mod-tap functionality on keymap

* [fix] fixing oled turning on when it feels like it. thanks @drashna for helping

* [feat] updating OLED to rotate logo 180 degrees

* [feat] updating keymaps to reflect VSCode frequent habits

* [refactor] converting crkbd modifier keys to layer blocks

* [fix(#6903)] converting _delay_ms to wait_ms on launching terminal macro
2019-10-07 10:42:03 -07:00
d0ef139749 [Docs] Typo fix for feature_hd44780.md (#6917)
* Typo fix

Fixed a typo.

* Update feature_hd44780.md

* Update feature_hd44780.md
2019-10-06 16:39:23 -07:00
60cd12f8a4 Dimple: Fix Caps Lock LED behaviour (#6936)
* Dimple: Fix Caps Lock LED behaviour

* Dimple: fix helper functions and cleanup unnecessary code
2019-10-07 05:15:17 +11:00
c73d6f6ac8 [Docs] Removed dead link (#6922)
Removed an old link and fixed a typo
2019-10-06 07:56:35 -07:00
f73f71db9c [Keymap] Add new Cyclops keymap (#6923) 2019-10-06 07:44:02 -07:00
345d3cc046 [Keymap] dactyl_left (#6775)
* [keymap] dactyl_left

Special layout for the left side of the ergodox dactyl.

* [keymap] dactyl_left

Special layout for the left side of the ergodox dactyl.

* Updated readme.md

* Update keyboards/handwired/dactyl_left/readme.md

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

* Update keyboards/handwired/dactyl_left/readme.md

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

* Update keyboards/handwired/dactyl_left/info.json

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

* Update keyboards/handwired/dactyl_left/info.json

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

* Update keyboards/handwired/dactyl_left/info.json

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

* Addressing changes for PR

removed layers.json and 15-24 from rules.mk

* Updating keymap for better a default

Hopefully this works as a starting point
2019-10-05 23:58:23 -07:00
78f01eef2e Use keymap instead of username variable for qmk new_keymap (#6885)
Username is not defined and this causes `qmk new_keymap` to error.  This
appears to have originated from a partial update in
https://github.com/qmk/qmk_firmware/pull/6708/files#diff-d5208bcbc79aa428556a743b6ff41086.  This change completes the migration from `username` to `keymap`
2019-10-05 23:41:15 -07:00
f3f7f941dc [Keyboard] Whitefox Aria Layout Support (#6915)
* [Keyboard] Add Whitefox Aria Layout

* [Keyboard] Add Whitefox Aria to info.json

* [Keyboard] Apply Whitefox.h Suggestions from Review

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2019-10-05 19:59:16 -07:00
60267fe2ca [Keyboard] Add Phoebe, a keyboard by Maxr1998 (#6870)
* Add Phoebe, a keyboard by Maxr1998

* Improve include-guard

* Remove unused functions

* Remove unused extern

* Add image

* Some more fixes
2019-10-05 16:44:22 -07:00
18a0e6fedc [Keymap] Add HHKB-based keymap for DZ60 (#6907)
* Created personal keymap for dz60 hhkb layout.

* Renamed directory joooosh to joooosh_hhkb... Removed redundant KC_TRNS alias #define... Updated to use KC_TRNS alias defined in QMK_KEYBOARD_H.
2019-10-05 16:24:31 -07:00
8cf1491d04 [Keyboard] Add keyboard Reviung34 (#6847) 2019-10-05 16:10:27 -07:00
c23581d985 [Keymap] Initial personal keymap for Lily58 (#6908)
* Initial Lily58 keymap

* Still not sure if these thumb key placements are optimal or not. I
might want to move space (enter) one key to the left (right),
respectively.

* Also unsure how I feel about Esc on a mod tap key with Ctrl... might
move it back to its own key and relocate the = key.

* Missing bindings for Print Screen, Scroll Lock, Pause/Break.

* Make Lily58 layout support operation without numrow

* Move some Lily58 modifiers around

* Move nav keys to more consistent locations

* Rebinding shift on Raise is stupid

* Don't stomp Ctrl on the Lower layer

* Tweak bottom row a little bit
2019-10-05 12:40:08 -07:00
03c132b331 [Keymap] finally committing my updates (#6904) 2019-10-05 12:22:52 -07:00
3e20697a33 removed deprecated option for Travis (#6896) 2019-10-05 12:04:46 -07:00
b91874454d [Keymap] dz60 Iso de 5x1u split right shift (#6889)
* add ISO-DE layout with 5x1u and split right shift

* cleaning up

* renamed readme.md and layout. added underglow

* change layout name in info.json

* rename readme.md

* renamed layout in comment. added rgb keys to visualisation

* change Layout name in dz60.h visualization
2019-10-05 11:56:11 -07:00
e02383fa1f [Keymap] Added KBD6X Vimwarrior HHKB TOFU Personal Keymap (#6878)
* Added KBD6X Vimwarrior HHKB TOFU Personal Layout

* Added Readme.md for Vimwarrior HHKB Tofu Keymap

* Added DZ60 Vimwarrior WKL Tofu Keymap

* Update Rename keymaps to devinceble_hhkb_tofu and devinceble_wkl_tofu

* Update rules.mk Added BOOTLOADER config.
2019-10-05 11:17:36 -07:00
e8b65d0170 Cleanup rules.mk for 32U4 keyboards, A-F (#6804)
* Cleanup rules.mk for 32U4 keyboards, A-F

* Put back stuff in VIA keymaps
2019-10-05 11:09:35 -07:00
19b60c273a [Keyboard] Add OSA keyboard (#6849)
* initial commit

restart of osa development

* minor changes

Minor changes
mostly changing naming and comment out rgb modes

* initial commit

restart of osa development

* minor changes

Minor changes
mostly changing naming and comment out rgb modes

* more minor changes

comment out some functions
correct some spelling errors
change some of the descriptive text

* Minor Changes

Minor changers per PR requests

* Minor Changes

Minor changes per PR suggestions

* Major Changes

Per PR suggestion from noroadsleft:

- changed macro to LAYOUT_all in info.json, dualsplit/keymap.c and ocm/keymap.c, and osa.h

- added osa.h macros for other layouts per suggestion and used suggested naming

-  changed naming of layout macros to correspond to macros and naming in default/keymap.c, dualsplit/keymap.c, ocm/keymap.c, splitbs/keymap.c, and splitrs/keymap.c

- removed duplicate layers from all keymaps and edited per suggestions

- compiled each keymap to check for and correct any potential errors. all compiled with no errors

* Minor Change

- fixed imgur image link in readme.md to be correct format

* Minor Changes

changes to macro layouts in osa.h
changes to dualsplit/keymap.c - added arrows to layer 1

* Changes

- Made changes to info.json to match osa.h
- changes to osa.c enabling indicator LEDs
- changed "dualsplit" directory name to "all" to match keymap naming in osa.h, info.json, and keymap.c
- minor changes to all/keymap.c

* Update keyboards/sck/osa/rules.mk

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

* Update keyboards/sck/osa/readme.md

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

* Changes to info.json

- revert to info.json from version in b3b49c3 per requested changes
2019-10-05 10:44:55 -07:00
dbce3f648b Budget96 Production PCB Fix (#6900)
* production version of the PCB has the top two right most keys swapped around. There are only 6 protos in existence and one of them is mine so we can just do this.

* update readme by adding backticks
2019-10-06 04:19:49 +11:00
38aefaf78e ARM - Initial backlight support (#6487)
* Move AVR backlight to own file, add borrowed ARM implementation

* Tiny fix for backlight custom logic

* Remove duplicate board from rebase

* Fix f303 onekey example

* clang-format

* clang-format

* Remove backlight keymap debug

* Initial pass of ARM backlight docs

* Initial pass of ARM backlight docs - resolve todos

* fix rules validation logic

* Add f072 warning

* Add f072 warning

* tidy up breathing in backlight keymap

* tidy up breathing in backlight keymap

* add missing break to backlight keymap
2019-10-05 16:57:00 +01:00
60b2a9a5ea [Keyboard] Preliminary Support for Duck Orion V3 (#6892)
* initial commit

* fixup init_rows and read_rows routine

* fixup matrix based on Marcus's tracing info

* add a temporary keymap

* add notes

* use a standard tkl ansi keymap

* turn on that last column

* backslash and backspace row left to fix

* reorg from backslash to pgdn

* got the matrix done but the backspace location at K4N is still suspect

* add reset info into readme

* add qmk configurator support

* add community layout support

* remove uneeded keymap readme

* add a new column just for the reset switch

* change copyright dates

* add cautionary message to readme as we don't know about the lighting condition yet

* Update keyboards/duck/orion/v3/v3.c

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

* Update keyboards/duck/orion/v3/v3.c

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

* Update keyboards/duck/orion/v3/v3.c

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

* change bootloader comments
2019-10-04 22:06:57 -07:00
hvp
537623c9db [Keymap] Added my version of the alpha28 layout. Usable. (#6862)
* Added my version of the alpha28 layout. Usable.

* Added enum. Test ok
2019-10-04 22:04:08 -07:00
ec053c8283 [Keyboard] Percent Skog Lite (#6882)
* initial commit of skog_lite

* add layout macro from misterkeeb's tool

* add default keymap

* add pins used

* rgb support

* add tkl ansi community support

* update readmes

* add new layouts and configurator support
2019-10-04 22:03:10 -07:00
c5ffd182c8 [Keymap] update my keymap for Infinity Ergodox (#6864)
* 🎉 Building simple flasher

* 🎉 Flashing works

* 🎨 Cleaning up

* 🐛 Being more specific with board identity

* 🐛 Flashing correct keymap

* 🎉 Adding keymap

*  Updating keymap

* 🚨 RGB

*  Revert "🚨 RGB"

This reverts commit 9ceabfb267f8daedaad929231229c703abc12ec4.

*  Improvements to flasher

*  Layout tweaks

* 💄 Messing around with LCD

* 💄 Enabling LCD backlight matching

* 🔧 Updating layout

* 🐛 Fixing console logging

* 🎨 Cleaning up indentation

* 🔧 Adding editorconfig

*  Adding game layer

* 💄 Changing numpad layout

* 🔥 redoing entire layout

It's now more similar to the Planck default layout

*  add workman and dvorak layouts

* 🐛 fix numpad

* 🐛 fix layer orders

* 🐛 fix layer toggling

* 🐛 fix tri-layer switching

* 🐛 fix LCD colors for adjustment layers

* 🔥 remove old flasher project

* 🔥 remove simple_visualizer

* 💄 update LCD colors

* 📝 fix layout comments

* 💄  swapping 2u buttons

* 🔥🔧 removing editorconfig

* 🚨 using 2 spaces

* 📝 add README

*  Revert "💄 Enabling LCD backlight matching"

This reverts commit 51577903dfdc9fea5d33e9ab8cfa9b854e7ae19e.

*  Revert "💄 Messing around with LCD"

This reverts commit fdd9acdae514a3e0e4a7153225053680744980e5.

* 🐛 fix thumb inconsistency in QWERTY

* 🐛 fix media keys

*  add F# shortcuts to vertical 1.5u buttons

*  hold enter for RShift

*  hold for numpad

* 🎨 remove unnecessary breaks

* 🎨 reoganizing layers

*  add Colmak layer

* 🚧🔧 add basic config

*  use more standard numpad layout

* 💄 change layer orders

*  add caps lock on adjust layer

* 🔥 disable space cadet

* 📝 update README

* 🔨 use userspace config

* 🎨 clean up a bit

* 🐛 undefine tapping toggle from base config

* 🔨 rename LED functions

* 💩 someone commited Windows line endings

*  left hand thumb is space

* ♻️ extract layers def to new file

* 🔥 remove unnecessary hooks

* 💄 set LCD text and color by layer

* 💄 update keymap

removing layer buttons that I don't really use

*  set backlight to full brightness on boot

* 🔥 remove unnecessary includes
2019-10-04 20:32:52 -07:00
93bce83255 [Keymap] 🗺️ Adds massdrop/alt/favorable-mutation keymap (#6893)
Features:

* Tap space for space, hold for cmd
* Tap caps lock for esc, hold for ctrl
* Dedicated key for entering default mode of yabai window manager
* Who needs arrow keys, anyways???
* Method for clearing all stuck-down mods
2019-10-04 12:56:01 -07:00
b0b433f3cf [Keyboard] Match dactyl-manufom 4x5 layout in doc to actual (#6867)
* Match doc layout to actual

Raise and Lower were swapped, and there is no "10" button :)

* Make mouse button 2 really 2, not a clone of MB1
2019-10-04 12:00:14 -07:00
3e6f7bc6bf [Keyboard] Add Stella keyboard (#6848)
* Add Stella keyboard

Tenkeyless keyboard for VGS Community

* Update keymap.c

* update
2019-10-04 11:55:54 -07:00
f166a22c98 [Keyboard] Add image for Pulse 4k (#6869) 2019-10-04 11:22:30 -07:00
41b9be560d Wrap util.h functions in extern "C" (#6762) 2019-10-04 09:24:47 +10:00
4f01c8623f Clean up default crkbd keymap (#6887)
* Put spacing into CRKBD keymap

* Change KC_NO to XXXXXXX

This makes it easier to see at a glance that the key does nothing
2019-10-03 12:34:00 -07:00
9067dc817a Fix qmk doctor 'bytes-like object is required' on linux
This fixes the following issue related to encoding on linux systems. Add
`universal_newlines=True` to subprocess.

<class 'TypeError'>
☒ a bytes-like object is required, not 'str'
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/milc.py", line 564, in __call__
    return self.__call__()
  File "/usr/local/lib/python3.7/site-packages/milc.py", line 569, in __call__
    return self._entrypoint(self)
  File "$HOME/qmk_firmware/lib/python/qmk/cli/doctor.py", line 56, in doctor
    for line in mm_check.stdout.split('\n'):
TypeError: a bytes-like object is required, not 'str'
2019-10-03 10:27:20 -07:00
afb93b7f48 Fix quantum keymapextra italian (#6779)
* remove IT_PIPE duplicate and add IT_GRAD

IT_PIPE was declared 2 times, ones as ° and once as |. I changed the first declaration and called it IT_GRAD. I even fixed the definition because the ° in Italian is obtained with LSFT(IT_AACC)

* rename IT_GRAD to IT_DEGR

* add    missing plus_and_minus

* fix missing IT_ACUT definition

* change KC_LALT(KC_LSFT to LALT(LSFT

* Fix alignment

* remove leftover

* fix issue generated with chars while pushing

* fix typo

* fix LCBR and RCBR

* fix euro symbol

* fix RBRC

* change IT_LESS form KC_NUBS to KC_GRAVE

* add IT_TILDE and change IT_GRAV to IT_GRAVE

* add missing legends for accented vowels

* format for readability

* revert to commit befor I edit it

* initial commit

* edited to be easier to compare to _ansi.h

* remove keymap_italian_osx_iso.h and rename with edits keymap_italian_osx_ansi.h to keymap_italian_osx.h

I found out there were no difference at all

* fix missing #endif

* rename quantum/keymap_extras/keymap_italian_osx.h to quantum/keymap_extras/keymap_italian_ansi.h

Now this file is a clone of the keymap_italian.h that appears to be working only for ISO keyboards. It also contains a few improvements for IT_PIPE (defined two times) and IT_ACUT (missing definition). Additionally it redefines LCBR and RCBR to LSFT(IT_LBRC) and LSFT(IT_RBRC)

* rename file

* redefines IT_BKSL and IT_PIPE based on KC_BKSL

* add new osx_iso and osx_ansi version for italian.h and align BKSL to BSLS, fix double definition of PIPE
2019-10-03 10:27:01 +10:00
99f5d6c56d Update personal userspace and keymaps (#6876)
* Align bottom row in KBD6X keymap to match LAYOUT macro

* Remove TAP_HOLD_CAPS_DELAY override in userspace

* Change default USB polling rate to 1000 Hz

* Move media controls to nav cluster on Wasdat

* Add dz60:konstantin_b keymap
2019-10-03 09:46:27 +10:00
de386e5972 Fixed typos in documentation (#6871)
* Fixed typos in documentation

* Update docs/arm_debugging.md

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

* Update docs/arm_debugging.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-02 16:41:32 -04:00
482ec79e59 [Keymap] Add personal CRKBD keymap (#6843)
* Add personal keymap

* Additional readme note

* Fix typo's in readme

* Additional layer key info in readme

* Update keyboards/crkbd/keymaps/rpbaptist/config.h

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

* Update keyboards/crkbd/keymaps/rpbaptist/rules.mk

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

* Update keyboards/crkbd/keymaps/rpbaptist/keymap.c

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

* Remove redundant config

* Remove disabling of NO_ACTION_MACRO and NO_ACTION_FUNCTION

* Remove layer keycode macros

* Use layer_state_t instead of uint32_t

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

* Use get_highest_layer instead of biton32

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

* OLED_ROTATION_90 instead of 180

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

* Use get_highest_layer instead of biton32

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

* Use get_highest_layer instead of biton32

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

* Revert "OLED_ROTATION_90 instead of 180"

This reverts commit f14a4353ab6719c6e4e8974a4d17f8b91940de56.

It messed up the logo on slave

* Use IS_LED_ON function to check LED status

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-10-02 09:39:43 -07:00
fa8359fa1a [Keymap] Add antonlindstrom iris keymap (#6853)
This adds a keymap for the Iris keymap for antonlindstrom. The
keymap is based on the swedish keymap and thus contains the åäö
characters.
2019-10-02 22:11:39 +10:00
0c5b3826d1 [Keyboard] Add Owlet60 Keyboard to qmk_firmware/keyboards/handwired (#6803)
* first commit, skeleton code, not sure if working

* Owlet 60 working firmware, json not sure

* use json from kle to qmk converter

* deleted temporary text from owlet60.h

* owlet60 working oled and led firmware

* moved owlet60 to handwired

* updated readme.md

* Revert "owlet60 working oled and led firmware"

This reverts commit 27f9465aabd62d9ee445b477a02af348160532c1.

* Revert "moved owlet60 to handwired"

This reverts commit 9b8e8344fc303ddc4dcc3b023d4e9d05b89d5800.

* revert changes, moved owlet60 to handwired, updated copyright blurb

* fixed readme.md

* removed duplicate items

* resolve merge artifact

* Update keyboards/handwired/owlet60/readme.md

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

* check out merge artifacts with qmk master

* Update keyboards/handwired/owlet60/matrix.c

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

* Update keyboards/handwired/owlet60/matrix.c

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

* Update keyboards/handwired/owlet60/matrix.c

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

* Update keyboards/handwired/owlet60/matrix.c

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

* removed redundant rule on oled_testing/rules.mk, refactored mux switching code on matrix.c
2019-10-01 21:26:39 -07:00
da5b4ec733 editing fn layer and minimizing the Caps layer (#6850) 2019-10-01 12:50:54 -07:00
68072e931a Expose zh-cn docs, delete bad zh docs, add docs for adding translations (#6855)
* expose zh-cn docs, delete bad zh docs, add docs for adding translations

* Update docs/translating.md

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

* Update docs/translating.md

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

* update for python 3
2019-10-01 13:51:23 -04:00
c7b28bffc1 [Keyboard] Add Wraith keyboard (#6810)
* start wraith firmware

* completed initial setup

* added amber keymap to wraith

* fixed LEDs, wrote readme files

* reverted bootloader type after troubleshooting

* decapitalised files and directory as per qmk standards

* Update Wraith keyboard folder

- Add timer keymap with documentation
- Remove boilerplate in rules.mk, ready for pull request
- Update info.json with ISO and ANSI layouts, ready for QMK Configurator

* Add Wraith image to readme.md

* Fix Wraith keyboard's QMK Configurator support

- Update info.json
- Add layout macros in wraith.h
- Update keymap.c files to use LAYOUT_all
- Fix readme formatting
2019-09-30 18:34:12 -07:00
c47fa31a00 Port drivers.txt changes from the Toolbox (#6786) 2019-09-30 17:45:44 -07:00
edf8552970 [Keyboard] Signum 3 0 enable kinetic speed (#6740)
* Enable kinetic speed

* Update keymap
2019-09-30 12:28:51 -07:00
ab3fba2cdf [Keyboard][Fix] budget96 RGB light-switches (#6840)
Adding code to make the RGB switching work. Taken from the singa (singa.c).

Signed-off-by: Simon R <me@dieideeistgut.de>
2019-09-30 10:59:34 -07:00
c6c7aec85d [Keymap] update hecomi/kakunpc keymap (#6839)
* update hecomi alpha/kakunpc keymap

* remove unused define.
2019-09-30 10:57:01 -07:00
8c1b8cf3a3 [Keymap] Adds Egstad Preonic Profile (#6837)
* setup local build config, created npm build script to speed things up

* removed some profiles and gutted readme

* began configuring default and lower layout

* lower: fixed right arrow and added music toggle

* began configuring default and lower layout

* changed startup song

* updated comment typos

* I did that thing where i basically refactored everything :)

* Converted 2U key to 1U's

* Reorganized and tidied up

* Reorganized and tidied up

* space now changes layers

* updated numbpad

* updated readme

* removed unwanted files

* addressed change requests
2019-09-30 10:55:02 -07:00
cffe671a61 [Keymap] Updating crkbd RGB keymap implementation & ninjonas userspace updates (#6834)
* [keymap] Updating crkbd RGB implementation & ninjonas userspace updates

* [chore] adding process_record_oled method to process_records.h
2019-09-30 10:50:27 -07:00
f418efcaf5 [Keymap] correct keebs keymap for wonderland (#6838) 2019-09-29 18:49:59 -07:00
714cf021a4 [Keyboard] support tkl_iso community layout (#6778)
* support tkl_iso community layout

* fix comments from review

* fix review comments

* LAYOUT is an alias for LAYOUT_all
* add keymap default_iso
* revert changes to default keymap
2019-09-29 15:33:48 -07:00
5d41db6308 correct default keymap for wonderland (#6835)
tested
2019-09-28 19:10:02 -07:00
20a16d29fe [Keyboard] update angel17 (#6831) 2019-09-28 11:59:33 -07:00
17794e0b25 ARM split - Add support for dfu-util EE_HANDS flashing (#6543)
* Initial stab at some fake dfu-util-split-left behaviour

* Apply suggestions from code review

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

* Clang format fixes

* Fake eeprom init for both left and right hand
2019-09-27 21:33:55 +01:00
92cb0b6f2f [Keymap] Personal xd75 keymap "Odyssey" (#6830) 2019-09-27 06:58:05 -07:00
9496d11b06 [Keyboard] cKeys theDora: Configurator fix (#6828)
Make the layout actually match the orientation.
2019-09-27 06:56:28 -07:00
0f7be8b458 [Keymap] Use 75_ansi and community layout for xd84 (#6821)
* Use 75_ansi and community layout for xd84

 - work around flash issues by disabling most of the animations

* Remove rules.mk
2019-09-26 10:12:49 -07:00
178ceba735 Minor link fix in Clueboard README (#6823)
Small change to fix the README link to go to the actual 66_hotswap instead of just the 66%.
2019-09-26 07:37:26 -07:00
d143ddc062 [Keymap] Port personal keymap to 60_tsangan_hhkb (#6820)
* Port personal keymap to 60_tsangan_hhkb

 - add 60_tsangan_hhkb layout to plain60
 - Fix bug in split rs in plain60
 - use community and user based layout for 60_tsangan_hhkb
   - set up audio for plain60 only

* Add LAYOUT_60_ansi_split_bs_rshift
2019-09-25 21:35:54 -07:00
b3d41d9d6d [Keyboard] Reviung39: Configurator layout support (#6819) 2019-09-25 21:34:37 -07:00
e6d8a6111b [Keyboard] Added QMK-DFU config to Vitamins Included rev2 (#6818) 2019-09-25 21:34:01 -07:00
297a7fe0d1 [Keymap] Add preonic/kjwon15 layout (#6812)
* Add my custom keymap

* Remove del key on left, Add pscr

* Move Audio MOD key to pass ctrl

* Change startup song

* Enable clicky sound

* Swap alt and gui

* Fix semitones

* Add mouse layer

* Change startup song

Additionally, fixup 5 halftones

* Add ctrl key to ctrl+click

* Move media keys to restore raise number keys

* Move mouse key layer switch

* Swap media keys as normal

* Fix music map

* Move mouse speed limit to correct position

* Move prtscr

* Align keycodes

* Add ctrl/esc, swap smart space keys

* Change colemak, dvorak into custom layout

* Fix pure mode (left space)

* Fix mouse mode interrupt

* Add Middle mouse click

* Add Lefthand mouse scroll

* Temporarily disable mouse speed

* Rename custom layout to kjwon15

* Change readme

* Apply suggestions from code review

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

* Apply suggestions from code review

* Apply suggestions from code review

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

* Update from default keymap's function
2019-09-25 21:32:14 -07:00
ff854565ce [Keymap] ninjonas keymap for crkbd & ninjonas userspace updates (#6797)
* [keymap(crkbd)] introducing crkbd keymap on ninjonas profile

* [keymap(crkbd)] introducing crkbd keymap on ninjonas profile

* [refactor(crkbd)] reducing file size by selecting RGB animations

* [refactor(crkbd)] added shiftit key

* [refactor(crkbd)] added shiftit key

* [chore(crkbd)] adding SLEEP_LED_ENABLE on rules.mk

* [refactor(crkbd)] added keylog & removed static rainbow RGB

* [feat(crkbd)] introduced em-dash '—' keymap

* [feat(crkbd)] added screenshot functionality

* [refactor(lily58,pinky3)] moving media keys

* [refactor(lily58)] Added emdash key

* [chore] removing NUMBERS & FUNCTIONS layers as they're useless

* [chore] removing NUMBERS & FUNCTIONS layers as they're useless

* [chore(crkbd,lily48)] Updating README.md

* [feat] added K_LAPP & K_RAPP to mimic command + tab

* [feat] added K_LAPP & K_RAPP to mimic command + tab

* [fix(#6797)] resolving changes requested by @drashna

* [fix(#6797)] first cut on using QMK OLED Driver

* [fix(#6797)] cleaning up rules.mk

* [fix(#6797)] making scrolling logo work

* [fix(#6797)] Using OLED Driver for Lily58

* [fix(#6797)] Moved OLED driver implementation to ninjonas userspace

* [fix(#6797)] Bringing back crkbd & lily58 logos

* [fix(#6797)] Turning off OLED based off @drashna's workaround in #5982

* [fix(#6797)] whoops! forgot to checkin crkbd/config.h

* [fix(#6797)] fixing issue with OLED randomly turning on

* [fix(#6797)] using default glcdfont.c for lily58 & crkbd

* [fix(#6797)] Using LINK_TIME_OPTIMIZATION_ENABLE rather than EXTRAFLAGS as per code review

* [fix(#6797)] updating M_MALL macro as per code review by @fauxpark
2019-09-25 21:28:06 -07:00
2a948e7771 [Keyboard] Add Crossed Keys/Keyhive Nightmare (#6796)
* initial draft of nightmare files

* fixed pins

* fixed MT keycodes

* updated READMEs

* updated title in main readme

* updated for split space

* added OPT_TAB

* fixed layer 1 keymap

* Add DEL to keymap

* Update Bootmagic pins

* Update Keymap

* Fix missing )

* Update Up arrow on keymap

* Add hosted image for Nightmare render

* Update info.json for Nightmare layout

* Resolve suggestions from drashna

* Add split space layout in nightmare.h and info.json
2019-09-25 14:20:20 -07:00
983c93fe81 [Keymap] Added two different Swedish layouts for the Niu Mini 40% and Preonic 50%. (#6793)
* added preonic keymap senseored

* added niu_mini/tobias

* Changed readme's to explain that these are swedish layouts

* Apply suggestions from code review

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

* Update keyboards/niu_mini/keymaps/tobias/keymap.c

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

* Made changes according to drashna's suggestions

* Changed to tap_code(KC_NLCK)

* Added #define RGBLIGHT_SLEEP

* Added #define RGBLIGHT_SLEEP

* Removed include config.h
2019-09-25 13:20:33 -07:00
dccafb64e6 [Keyboard] Subatomic refactor (#3194)
* Refactor: matrix

* New readme file

* Configurator support

* change info.json to debug linting

* use an enum to manage the layers

* readme cleanup

file header, docs links

* use #pragma once in keyboard header file

* use new-style OLKB layout macro naming scheme

* fix layout macro references in keymap.c

* correct Keyboard Maintainer
2019-09-25 13:17:29 -07:00
475f832b0f [Keyboard] Add Efreet keyboard (#6811)
* start wraith firmware

* completed initial setup

* added amber keymap to wraith

* fixed LEDs, wrote readme files

* reverted bootloader type after troubleshooting

* decapitalised files and directory as per qmk standards

* Update Wraith keyboard folder

- Add timer keymap with documentation
- Remove boilerplate in rules.mk, ready for pull request
- Update info.json with ISO and ANSI layouts, ready for QMK Configurator

* Add Efreet keyboard

* Remove unnecessary keyboard folders

* Enable community layout support for Efreet

- Rename LAYOUT macro to LAYOUT_ortho_4x12
- Add layout macro named LAYOUT_planck_mit
- Remove unnecessary magic key command, as we are using the default
- Fix readme.md formatting for GitHub

* Fix community layout support for Efreet

- Fix 2u spacebar keycodes in LAYOUT_planck_mit to denote absence of switch
- Turn on Community Layouts in rules.mk

* Update default keymap.c to use community layout
2019-09-25 13:06:57 -07:00
a76a79b827 [Keyboard] Rabbit68: Configurator layout support (#6809) 2019-09-25 13:00:27 -07:00
f8e4f7ea80 [Keymap] Add Z-layer to narze layouts (#6806)
* Revert raise/backspace mod tap to just backspace

* Add Dev layer

* Use Dev layer on holding z key

* Add Dev layer for Ergodox
2019-09-25 12:57:49 -07:00
0850a8cb63 65 ansi blocker everywhere (everywhere I can find) (#6805)
* e6.5 actually already had a 65_ansi_blocker LAYOUT macro, so just had to enable in rules.

* Add the 65_ansi_blocker LAYOUT macro and enable in rules.mk

* rename LAYOUT macro in .h and in the keymap.c as it was only a default keymap. Also enable in rules.mk

* rename but also had to define the existing LAYOUT macro as the new one to prevent breakage of existing keymaps

* add 65_ansi_blocker support for vinta

* forgot to update the info.json on these

* add new default layout 65_ansi_blocker support to alt

* add 65_ansi_blocker support

* undo changes
2019-09-25 12:55:27 -07:00
c61d7d7cb0 [Keyboard] Added support for ErgoDox with STM32 Microcontroller (#5398)
* Began Work On STM32 Ergodox
 Changes to be committed:
	new file:   keyboards/ergodox_stm32/config.h
	new file:   keyboards/ergodox_stm32/rules.mk

* test

* Now it compile. Not linking thou

* Screw this Linker. It links now!

* Blinkly Keyboard

* bootloader test code

* Working on matrix / i2c stuff

* Progress (LED Blink)

* Progress on MCP_23017 Status Flag

* [WIP]

* update

* Works! Remeber to change back the bootloader address when the new bootloadrer is ready.

* Time to go debug the i2c

* Finally, it now works with PCB Rev 1.0.2

* updated for rev.2 pcb

* minor compilation fix

* Why when debugger is enabled then everything works.

* Remeber to call init functions.

* Update arm i2c driver to support STM32F103 series device.

* fix include once header. Replaced with #pragma once.

* complication test
2019-09-25 11:52:17 -07:00
eac4ce972d [Keymap] update personal keymap (#6817) 2019-09-25 10:05:48 -07:00
00abe5d8ed [Keymap] Various enhancements for dshields user space and keymaps. (#6816)
- Add oneshot mod/layer unlocking
- Fix Planck rev 3 backlight breathing
- Fix Planck rev 6 build with arm gcc 9.2.0
- General code clean up
2019-09-25 09:21:07 -07:00
0f9e2659c9 [Keyboard] Add additional LAYOUT macros to Noxary 260 (#6815)
* add default LAYOUT_60_ansi

* add LAYOUT_60_hhkb support

* add tsangan_hhkb support

* add ISO support and rename LAYOUT to LAYOUT_all

* formatting

* add community layouts support

* remove unneeded code

* missed a LAYOUT rename

* add link time optimization to reduce firmware size for some people's keymaps
2019-09-25 09:18:09 -07:00
acec007dfa [Keymap] add keymap broswen for kbd75 (#6814) 2019-09-25 02:01:58 -07:00
6c37798aac [Keymap] New keymap for the DZ65RGB (#6792)
* new keymap for my chocolate tofu65 with dz65rgb

* consistent with a tada68 layout

* remove extra layer, add swap keycodes and mouse keycodes

* fix the tabs and spaces

* fix the left shift
2019-09-25 01:54:32 -07:00
df9388fb8a Bathroom Epiphanies Pegasus Hoof: add LAYOUT_tkl_jis data to QMK Configurator (#6802)
* Bathroom Epiphanies Pegasus Hoof: add LAYOUT_tkl_jis data

* use normal English labels
2019-09-24 11:36:23 -07:00
460da06ce4 [Keyboard] KBD67 Mk.II RGB info.json missing a column (#6807)
* looks like configurator layout was missing a column

* add a key count
2019-09-24 11:26:17 -07:00
494fc51812 Merlin's Community Layout Updates (#6798)
* readme updates for 60_ansi and split variations

* add new community layout for mechmerlin for the new default layout 65_ansi_blocker

* change path now that kbd67 has been updated

* fix up spacing
2019-09-24 11:01:40 -07:00
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
1091 changed files with 37187 additions and 14500 deletions

2
.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

View File

@ -1,6 +1,5 @@
os: linux
dist: trusty
sudo: required
group: edge
language: c
branches:

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

@ -371,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)))
@ -407,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

92
bin/qmk
View File

@ -4,10 +4,8 @@
import os
import subprocess
import sys
from glob import glob
from time import strftime
from importlib import import_module
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__))
@ -15,12 +13,8 @@ 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)
# Change to the root of our checkout
os.environ['ORIG_CWD'] = os.getcwd()
os.chdir(qmk_dir)
# Make sure our modules have been setup
with open('requirements.txt', 'r') as fd:
with open(os.path.join(qmk_dir, 'requirements.txt'), 'r') as fd:
for line in fd.readlines():
line = line.strip().replace('<', '=').replace('>', '=')
@ -32,72 +26,58 @@ with open('requirements.txt', 'r') as fd:
module = line.split('=')[0] if '=' in line else line
if not find_spec(module):
print('Your QMK build environment is not fully setup!\n')
print('Please run `./util/qmk_install.sh` to setup QMK.')
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.PIPE)
result = subprocess.run(command, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
if result.returncode == 0:
os.environ['QMK_VERSION'] = 'QMK ' + result.stdout.strip()
os.environ['QMK_VERSION'] = result.stdout.strip()
else:
os.environ['QMK_VERSION'] = 'QMK ' + strftime('%Y-%m-%d-%H:%M:%S')
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}'
# If we were invoked as `qmk <cmd>` massage sys.argv into `qmk-<cmd>`.
# This means we can't accept arguments to the qmk script itself.
script_name = os.path.basename(sys.argv[0])
if script_name == 'qmk':
if len(sys.argv) == 1:
milc.cli.log.error('No subcommand specified!\n')
if len(sys.argv) == 1 or sys.argv[1] in ['-h', '--help']:
milc.cli.echo('usage: qmk <subcommand> [...]')
milc.cli.echo('\nsubcommands:')
subcommands = glob(os.path.join(qmk_dir, 'bin', 'qmk-*'))
for subcommand in sorted(subcommands):
subcommand = os.path.basename(subcommand).split('-', 1)[1]
milc.cli.echo('\t%s', subcommand)
milc.cli.echo('\nqmk <subcommand> --help for more information')
exit(1)
@milc.cli.entrypoint('QMK Helper Script')
def qmk_main(cli):
"""The function that gets run when no subcommand is provided.
"""
cli.print_help()
if sys.argv[1] in ['-V', '--version']:
milc.cli.echo(os.environ['QMK_VERSION'])
exit(0)
sys.argv[0] = script_name = '-'.join((script_name, sys.argv[1]))
del sys.argv[1]
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)
# Look for which module to import
if script_name == 'qmk':
milc.cli.print_help()
exit(0)
elif not script_name.startswith('qmk-'):
milc.cli.log.error('Invalid symlink, must start with "qmk-": %s', script_name)
else:
subcommand = script_name.replace('-', '.').replace('_', '.').split('.')
subcommand.insert(1, 'cli')
subcommand = '.'.join(subcommand)
# Import the subcommands
import qmk.cli
try:
import_module(subcommand)
except ModuleNotFoundError as e:
if e.__class__.__name__ != subcommand:
raise
milc.cli.log.error('Invalid subcommand! Could not import %s.', subcommand)
exit(1)
if __name__ == '__main__':
# Execute
return_code = milc.cli()
if return_code is False:
exit(1)
elif return_code is not True and isinstance(return_code, int) and return_code < 256:
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)
else:
exit(0)
exit(0)
if __name__ == '__main__':
main()

View File

@ -1 +0,0 @@
qmk

View File

@ -1 +0,0 @@
qmk

View File

@ -1 +0,0 @@
qmk

View File

@ -1 +0,0 @@
qmk

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)

View File

@ -23,5 +23,5 @@ endif
# Generate the keymap.c
ifneq ("$(KEYMAP_JSON)","")
_ = $(shell test -e $(KEYMAP_C) || bin/qmk-json-keymap $(KEYMAP_JSON) -o $(KEYMAP_C))
_ = $(shell test -e $(KEYMAP_C) || bin/qmk json-keymap $(KEYMAP_JSON) -o $(KEYMAP_C))
endif

View File

@ -229,13 +229,32 @@ ifeq ($(strip $(LCD_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
# backward compat
ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes)
BACKLIGHT_ENABLE = custom
endif
VALID_BACKLIGHT_TYPES := yes custom
BACKLIGHT_ENABLE ?= no
ifneq ($(strip $(BACKLIGHT_ENABLE)), no)
ifeq ($(filter $(BACKLIGHT_ENABLE),$(VALID_BACKLIGHT_TYPES)),)
$(error BACKLIGHT_ENABLE="$(BACKLIGHT_ENABLE)" is not a valid backlight type)
endif
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes)
ifeq ($(strip $(BACKLIGHT_ENABLE)), custom)
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
endif
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/backlight/backlight_avr.c
else
SRC += $(QUANTUM_DIR)/backlight/backlight_arm.c
endif
endif
ifeq ($(strip $(CIE1931_CURVE)), yes)
@ -267,20 +286,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

View File

@ -1,4 +0,0 @@
# Languages
* [English](/)
* [Chinese](zh/)

4
docs/_langs.md Normal file
View File

@ -0,0 +1,4 @@
- Translations
- [:uk: English](/)
- [:cn: 中文](/zh-cn/)
- [:fr: Français](/fr-fr/)

View File

@ -9,6 +9,7 @@
* [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)
@ -48,7 +49,7 @@
* [Useful Functions](ref_functions.md)
* [Configurator Support](reference_configurator_support.md)
* [info.json Format](reference_info_json.md)
* [Python Development](python_development.md)
* [Python CLI Development](cli_development.md)
* [Features](features.md)
* [Basic Keycodes](keycodes_basic.md)
@ -108,6 +109,7 @@
* [Using Eclipse with QMK](other_eclipse.md)
* [Using VSCode with QMK](other_vscode.md)
* [Support](support.md)
* [How to add translations](translating.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)

View File

@ -6,15 +6,15 @@ This guide is catered towards advance users and assumes you can compile an ARM c
## Installing the software
The main objective here is to get the MCU Eclipse IDE correcly installed on our machine. The necesarry instructions are derived from [this](https://gnu-mcu-eclipse.github.io/install/) install guide.
The main objective here is to get the MCU Eclipse IDE correctly installed on our machine. The necessary instructions are derived from [this](https://gnu-mcu-eclipse.github.io/install/) install guide.
### The xPack Manager
This tool is a software package manager and it is used to help us get the necesarry depencencies.
This tool is a software package manager and it is used to help us get the necessary dependencies.
XPM runs using Node.js so grab that form [here](https://nodejs.org/en/). After installation, open a terminal and type `npm -v`. A reply with the version number means that the instalation was successful.
XPM runs using Node.js so grab that from [here](https://nodejs.org/en/). After installation, open a terminal and type `npm -v`. A reply with the version number means that the installation was successful.
XPM instalation instructions can be found [here](https://www.npmjs.com/package/xpm) and are OS specific. Entering `xpm --version` to your terminal should return the software version.
XPM installation instructions can be found [here](https://www.npmjs.com/package/xpm) and are OS specific. Entering `xpm --version` to your terminal should return the software version.
### The ARM Toolchain
@ -26,10 +26,10 @@ If you are using windows you need to install this!
`xpm install --global @gnu-mcu-eclipse/windows-build-tools`
### Programer/Debugger Drivers
### Programmer/Debugger Drivers
Now its the time to install your programer's drivers. This tutorial was made using an ST-Link v2 which you can get from almost anywhere.
If you have an ST-Link the drivers can be found [here](https://www.st.com/en/development-tools/stsw-link009.html) otherwise consult the manufuturer of your tool.
Now it's time to install your programmer's drivers. This tutorial was made using an ST-Link v2 which you can get from almost anywhere.
If you have an ST-Link the drivers can be found [here](https://www.st.com/en/development-tools/stsw-link009.html) otherwise consult the manufacturer of your tool.
### OpenOCD
@ -84,4 +84,4 @@ Reset your keyboard.
Press the bug icon and if all goes well you should soon find yourself in the debug perspective. Here the program counter will pause at the beginning of the main function and way for you to press Play. Most of the features of all debuggers work on ARM MCUs but for exact details google is your friend!
Happy debugging!
Happy debugging!

View File

@ -14,7 +14,7 @@ The next Breaking Change is scheduled for Nov 29.
### Important Dates
* [ ] 2019 Oct 04 - `future` is created. It will be rebased weekly.
* [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.
@ -51,7 +51,9 @@ git rebase master
git push --force
```
## 8 Weeks Before Merge
## Creating the `future` branch
This happens immediately after the previous `future` branch is merged.
* `qmk_firmware` git commands
* [ ] `git checkout master`
@ -65,9 +67,6 @@ git push --force
* [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
* [ ] `git push origin future`
* [ ] `git push --tags`
* GitHub Actions
* [ ] Switch all [breaking_change PR's](https://github.com/qmk/qmk_firmware/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Abreaking_change) to `future`
* [ ] Any that have a ChangeLog entry may be merged immediately.
## 4 Weeks Before Merge

View File

@ -4,22 +4,70 @@ 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 help you work with QMK:
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.
* `qmk compile`
* `qmk doctor`
* [Global CLI](#global-cli)
* [Local CLI](#local-cli)
* [CLI Commands](#cli-commands)
# Setup
# Requirements
Simply add the `qmk_firmware/bin` directory to your `PATH`. You can run the `qmk` commands from any directory.
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:
```
export PATH=$PATH:$HOME/qmk_firmware/bin
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
```
You may want to add this to your `.profile`, `.bash_profile`, `.zsh_profile`, or other shell startup scripts.
## Install Using easy_install or pip
# Commands
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
* Document 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`
@ -46,3 +94,73 @@ This command formats C code using clang-format. Run it with no arguments to form
```
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 docs`
This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936.
**Usage**:
```
qmk docs [-p PORT]
```
## `qmk doctor`
This command examines your environment and alerts you to potential build or flash problems.
**Usage**:
```
qmk doctor
```
## `qmk list_keyboards`
This command lists all the keyboards currently defined in `qmk_firmware`
**Usage**:
```
qmk list_keyboards
```
## `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

@ -224,6 +224,7 @@ There are a few different ways to set handedness for split keyboards (listed in
2. Set `EE_HANDS` and flash `eeprom-lefthand.eep`/`eeprom-righthand.eep` to each half
* For boards with DFU bootloader you can use `:dfu-split-left`/`:dfu-split-right` to flash these EEPROM files
* For boards with Caterina bootloader (like stock Pro Micros), use `:avrdude-split-left`/`:avrdude-split-right`
* For boards with ARM DFU bootloader (like Proton C), use `:dfu-util-split-left`/`:dfu-util-split-right`
3. Set `MASTER_RIGHT`: Half that is plugged into the USB port is determined to be the master and right half (inverse of the default)
4. Default: The side that is plugged into the USB port is the master half and is assumed to be the left half. The slave side is the right half
@ -266,6 +267,14 @@ There are a few different ways to set handedness for split keyboards (listed in
* 4: about 26kbps
* 5: about 20kbps
* `#define SPLIT_USB_DETECT`
* Detect (with timeout) USB connection when delegating master/slave
* Default behavior for ARM
* Required for AVR Teensy
* `#define SPLIT_USB_TIMEOUT 2500`
* Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`
# The `rules.mk` File
This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.

View File

@ -63,11 +63,11 @@ Most of our style is pretty easy to pick up on. If you are familiar with either
We have a few different types of changes in QMK, each requiring a different level of rigor. We'd like you to keep the following guidelines in mind no matter what type of change you're making.
* Separate PR's into logical units. For example, do not submit one PR covering two separate features, instead submit a separate PR for each feature.
* Separate PRs into logical units. For example, do not submit one PR covering two separate features, instead submit a separate PR for each feature.
* Check for unnecessary whitespace with `git diff --check` before committing.
* Make sure your code change actually compiles.
* Keymaps: Make sure that `make keyboard:your_new_keymap` does not return an error
* Keyboards: Make sure that `make keyboard:all` does not return any errors
* Keymaps: Make sure that `make keyboard:your_new_keymap` does not return any errors.
* Keyboards: Make sure that `make keyboard:all` does not return any errors.
* Core: Make sure that `make all` does not return any errors.
* Make sure commit messages are understandable on their own. You should put a short description (no more than 70 characters) on the first line, the second line should be empty, and on the 3rd and later lines you should describe your commit in detail, if required. Example:
@ -79,6 +79,8 @@ The kerpleplork was intermittently failing with error code 23. The root cause wa
Limited experimentation on the devices I have available shows that 7 is high enough to avoid confusing the kerpleplork, but I'd like to get some feedback from people with ARM devices to be sure.
```
!> **IMPORTANT:** If you would like to contribute a bugfix or improvement to user code, such as non-default keymaps, userspace and layouts, be sure to tag the original submitter of the code in your PR. Many users, regardless of skill level with Git and GitHub, may be confused or frustrated at their code being modified without their knowledge.
## Documentation
Documentation is one of the easiest ways to get started contributing to QMK. Finding places where the documentation is wrong or incomplete and fixing those is easy! We also very badly need someone to edit our documentation, so if you have editing skills but aren't sure where or how to jump in please [reach out for help](#where-can-i-go-for-help)!

View File

@ -8,10 +8,14 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have
## Installation
Place your keyboard into the bootloader mode, either by hitting the `RESET` keycode (which may be on a different layer), or by pressing the reset switch 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 keyboards may have specific instructions for entering the bootloader, for example the [Bootmagic Lite](feature_bootmagic.md#bootmagic-lite) key (Escape) might be on a different key, such as Left Control. Refer to the board's README if you are unsure.
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**.
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`.
@ -19,7 +23,7 @@ Zadig will automatically detect the bootloader device. You may sometimes need to
!> 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.
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)
@ -39,4 +43,4 @@ Right-click it and hit **Uninstall device**. Make sure to tick **Delete the driv
![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!
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

@ -4,10 +4,6 @@
[QMK](https://github.com/qmk), short for Quantum Mechanical Keyboard, is a group of people building tools for custom keyboards. We started with the [QMK firmware](https://github.com/qmk/qmk_firmware), a heavily modified fork of [TMK](https://github.com/tmk/tmk_keyboard).
### Why the Name Quantum?
<!-- FIXME -->
## What Differences Are There Between QMK and TMK?
TMK was originally designed and implemented by [Jun Wako](https://github.com/tmk). QMK started as [Jack Humbert](https://github.com/jackhumbert)'s fork of TMK for the Planck. After a while Jack's fork had diverged quite a bit from TMK, and in 2015 Jack decided to rename his fork to QMK.

View File

@ -1,6 +1,8 @@
# Backlighting
Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. QMK is able to control the brightness of these LEDs by switching them on and off rapidly in a certain ratio, a technique known as *Pulse Width Modulation*, or PWM. By altering the duty cycle of the PWM signal, it creates the illusion of dimming.
Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard.
QMK is able to control the brightness of these LEDs by switching them on and off rapidly in a certain ratio, a technique known as *Pulse Width Modulation*, or PWM. By altering the duty cycle of the PWM signal, it creates the illusion of dimming.
The MCU can only supply so much current to its GPIO pins. Instead of powering the backlight directly from the MCU, the backlight pin is connected to a transistor or MOSFET that switches the power to the LEDs.
@ -12,9 +14,8 @@ Most keyboards have backlighting enabled by default if they support it, but if i
BACKLIGHT_ENABLE = yes
```
You should then be able to use the keycodes below to change the backlight level.
## Keycodes
Once enabled the following keycodes below can be used to change the backlight level.
|Key |Description |
|---------|------------------------------------------|
@ -26,22 +27,24 @@ You should then be able to use the keycodes below to change the backlight level.
|`BL_DEC` |Decrease the backlight level |
|`BL_BRTG`|Toggle backlight breathing |
## Caveats
## AVR driver
This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously use multiple different coloured LEDs on a keyboard.
### Caveats
Hardware PWM is supported according to the following table:
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|
|-------------|-------------|-------------|-------------|---------|
|`B5` |Timer 1 |Timer 1 | | |
|`B6` |Timer 1 |Timer 1 | | |
|`B7` |Timer 1 |Timer 1 |Timer 1 | |
|`C4` |Timer 3 | | | |
|`C5` |Timer 3 | |Timer 1 | |
|`C6` |Timer 3 |Timer 3 |Timer 1 | |
|`D4` | | | |Timer 1 |
|`D5` | | | |Timer 1 |
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328P|
|-------------|-------------|-------------|-------------|---------|----------|
|`B1` | | | | |Timer 1 |
|`B2` | | | | |Timer 1 |
|`B5` |Timer 1 |Timer 1 | | | |
|`B6` |Timer 1 |Timer 1 | | | |
|`B7` |Timer 1 |Timer 1 |Timer 1 | | |
|`C4` |Timer 3 | | | | |
|`C5` |Timer 3 | |Timer 1 | | |
|`C6` |Timer 3 |Timer 3 |Timer 1 | | |
|`D4` | | | |Timer 1 | |
|`D5` | | | |Timer 1 | |
All other pins will use software PWM. If the [Audio](feature_audio.md) feature is disabled or only using one timer, the backlight PWM can be triggered by a hardware timer:
@ -56,9 +59,9 @@ All other pins will use software PWM. If the [Audio](feature_audio.md) feature i
When both timers are in use for Audio, the backlight PWM will not use a hardware timer, but will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision.
## Configuration
### AVR Configuration
To change the behaviour of the backlighting, `#define` these in your `config.h`:
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|---------------------|-------------|-------------------------------------------------------------------------------------------------------------|
@ -70,14 +73,14 @@ To change the behaviour of the backlighting, `#define` these in your `config.h`:
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`0` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
## Backlight On State
### Backlight On State
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
## Multiple backlight pins
### Multiple backlight pins
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle.
@ -85,13 +88,13 @@ This feature allows to set for instance the Caps Lock LED (or any other controll
To activate multiple backlight pins, you need to add something like this to your user `config.h`:
~~~c
```c
#define BACKLIGHT_LED_COUNT 2
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
~~~
```
## Hardware PWM Implementation
### Hardware PWM Implementation
When using the supported pins for backlighting, QMK will use a hardware timer configured to output a PWM signal. This timer will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the backlight pin will go low, and is pulled high again when the counter resets.
@ -100,7 +103,7 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
The breathing effect is achieved by registering an interrupt handler for `TIMER1_OVF_vect` that is called whenever the counter resets, roughly 244 times per second.
In this handler, the value of an incrementing counter is mapped onto a precomputed brightness curve. To turn off breathing, the interrupt handler is simply disabled, and the brightness reset to the level stored in EEPROM.
## Software PWM Implementation
### Software PWM Implementation
When `BACKLIGHT_PIN` is not set to a hardware backlight pin, QMK will use a hardware timer configured to trigger software interrupts. This time will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
When resetting to 0, the CPU will fire an OVF (overflow) interrupt that will turn the LEDs on, starting the duty cycle.
@ -109,6 +112,29 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
The breathing effect is the same as in the hardware PWM implementation.
## ARM Driver
### Caveats
Currently only hardware PWM is supported, and does not provide automatic configuration.
?> STMF072 support is being investigated.
### ARM Configuration
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|------------------------|-------------|-------------------------------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use, see ST datasheets for pin to PWM timer mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PWM_CHANNEL` |`3` |The PWM channel to use, see ST datasheets for pin to PWM channel mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use, see ST datasheets for pin AF mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK` |*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING` |*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
## Backlight Functions
|Function |Description |
@ -119,7 +145,8 @@ The breathing effect is the same as in the hardware PWM implementation.
|`backlight_step()` |Cycle through backlight levels |
|`backlight_increase()` |Increase the backlight level |
|`backlight_decrease()` |Decrease the backlight level |
|`backlight_level(x)` |Sets the backlight level to specified level |
|`backlight_level(x)` |Sets the backlight level, from 0 to |
| |`BACKLIGHT_LEVELS` |
|`get_backlight_level()` |Return the current backlight level |
|`is_backlight_enabled()`|Return whether the backlight is currently on |

View File

@ -34,6 +34,8 @@ Hold down the Bootmagic key (Space by default) and the desired hotkey while plug
|`X` |Toggle key matrix debugging |
|`K` |Toggle keyboard debugging |
|`M` |Toggle mouse debugging |
|`L` |Set "Left Hand" for EE_HANDS handedness |
|`R` |Set "Right Hand" for EE_HANDS handedness |
|Backspace |Clear the EEPROM |
|Caps Lock |Toggle treating Caps Lock as Left Control |
|Left Control |Toggle swapping Caps Lock and Left Control |
@ -83,6 +85,8 @@ Hold down the Bootmagic key (Space by default) and the desired hotkey while plug
|`MAGIC_UNSWAP_LCTL_LGUI` | |Unswap Left Control and Left GUI |
|`MAGIC_SWAP_RCTL_RGUI` | |Swap Right Control and Right GUI |
|`MAGIC_UNSWAP_RCTL_RGUI` | |Unswap Right Control and Right GUI |
|`MAGIC_EE_HANDS_LEFT` | |Set "Left Hand" for EE_HANDS handedness |
|`MAGIC_EE_HANDS_RIGHT` | |Set "Right Hand" for EE_HANDS handedness |
## Configuration
@ -98,6 +102,8 @@ If you would like to change the hotkey assignments for Bootmagic, `#define` thes
|`BOOTMAGIC_KEY_DEBUG_MATRIX` |`KC_X` |Toggle matrix debugging |
|`BOOTMAGIC_KEY_DEBUG_KEYBOARD` |`KC_K` |Toggle keyboard debugging |
|`BOOTMAGIC_KEY_DEBUG_MOUSE` |`KC_M` |Toggle mouse debugging |
|`BOOTMAGIC_KEY_EE_HANDS_LEFT` |`KC_L` |Set "Left Hand" for EE_HANDS handedness |
|`BOOTMAGIC_KEY_EE_HANDS_RIGHT` |`KC_R` |Set "Right Hand" for EE_HANDS handedness |
|`BOOTMAGIC_KEY_SWAP_CONTROL_CAPSLOCK` |`KC_LCTRL` |Swap Left Control and Caps Lock |
|`BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL` |`KC_CAPSLOCK`|Toggle treating Caps Lock as Left Control |
|`BOOTMAGIC_KEY_SWAP_LALT_LGUI` |`KC_LALT` |Toggle swapping Left Alt and Left GUI (for macOS) |

View File

@ -29,6 +29,9 @@ Not all keycodes below will work depending on which haptic mechanism you have ch
|`HPT_BUZ` | Toggle solenoid buzz on/off |
|`HPT_MODI` | Go to next DRV2605L waveform |
|`HPT_MODD` | Go to previous DRV2605L waveform |
|`HPT_CONT` | Toggle continuous haptic mode on/off |
|`HPT_CONI` | Increase DRV2605L continous haptic strength |
|`HPT_COND` | Decrease DRV2605L continous haptic strength |
|`HPT_DWLI` | Increase Solenoid dwell time |
|`HPT_DWLD` | Decrease Solenoid dwell time |
@ -145,3 +148,7 @@ If haptic feedback is enabled, the keyboard will vibrate to a specific sqeuence
#define DRV_MODE_DEFAULT *sequence name or number*
```
This will set what sequence HPT_RST will set as the active mode. If not defined, mode will be set to 1 when HPT_RST is pressed.
### DRV2605L Continuous Haptic Mode
This mode sets continuous haptic feedback with the option to increase or decrease strength.

View File

@ -6,7 +6,8 @@ You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag
## Configuration
You will need to configure the pins used by your display and its number of lines and collumn in your keyboards `config.h`.
You will need to configure the pins used by your display, and its number of lines and columns in your keyboard's `config.h`.
Uncomment the section labled HD44780 and change the parameters as needed.
````
@ -40,7 +41,7 @@ Should you need to configure other properties you can copy them from `quantum/hd
## Usage
To initialize your display call lcd_init() with one of these parameters:
To initialize your display, call `lcd_init()` with one of these parameters:
````
LCD_DISP_OFF : display off
LCD_DISP_ON : display on, cursor off
@ -53,4 +54,4 @@ To do so call `lcd_clrsrc()`.
To now print something to your Display you first call `lcd_gotoxy(column, line)`. To go to the start of the first line you would call `lcd_gotoxy(0, 0)` and then print a string with `lcd_puts("example string")`.
There are more posible methods to control the display. [For in depth documentation please visit the linked page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)

View File

@ -149,7 +149,7 @@ In your keyboard config.h:
#### PS/2 Mouse Features
These enable settings supported by the PS/2 mouse protocol: http://www.computer-engineering.org/ps2mouse/
These enable settings supported by the PS/2 mouse protocol.
```
/* Use remote mode instead of the default stream mode (see link) */
@ -202,7 +202,7 @@ Note: you can also use `ps2_mouse_set_resolution` for the same effect (not suppo
#### Scroll Button
If you're using a trackpoint, you will likely want to be able to use it for scrolling.
Its possible to enable a "scroll button/s" that when pressed will cause the mouse to scroll instead of moving.
It's possible to enable a "scroll button/s" that when pressed will cause the mouse to scroll instead of moving.
To enable the feature, you must set a scroll button mask as follows:
```

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