Compare commits

...

338 Commits

Author SHA1 Message Date
d597af9e1e Remove pro_micro.h (#8374)
* Remove pro_micro.h

* Include quantum.h
2020-03-14 15:31:15 +00:00
03ed819717 format code according to conventions [skip ci] 2020-03-14 14:08:48 +00:00
141535c9db Realign dynamic macros with recent SEND_STRING changes (#8407) 2020-03-14 13:35:12 +00:00
a92947fcdb added olkb_style layout for XD75 (#8409)
* added olkb_style layout for XD75

* removed unnecessary config.h

* cleaned up empty functions

* refactored fuction type for clarity

* renamed the layout
2020-03-14 13:32:26 +00:00
cde5237a88 fix two links on docs/other_eclipse.md (#8417) 2020-03-14 13:25:21 +00:00
dc79792ab4 Add Portuguese keymap and sendstring lookup tables (#8390)
* Add Portuguese keymap and sendstring lookup tables

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-13 17:21:00 -07:00
e6a9f700de Update link for Learn Plover google site (#8410) 2020-03-14 11:06:54 +11:00
0fdd37ee19 [Keymap] ninjonas keymap updates (#8373)
* [keymap(ninjonas)] ninjonas keymap updates

* [refactor] switching encoder rotation logic. recent pull seems to have flipped encoder stuff

* [keymap(lily58)] added chrome change profile key on RAISE

Co-authored-by: Jonas Avellana <jonas.avellana@workday.com>
2020-03-13 16:56:21 -07:00
40e8d60ecd Fix bootloader for Maypad (#8411) 2020-03-13 23:44:43 +00:00
f81b0e35a6 Add decorators for determining keyboard and keymap based on current directory (#8191)
* Use pathlib everywhere we can

* Improvements based on @erovia's feedback

* rework qmk compile and qmk flash to use pathlib

* style

* Remove the subcommand_name argument from find_keyboard_keymap()

* add experimental decorators

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

Decorators were inspired by @Erovia's brilliant work on the proof of concept.
2020-03-13 15:47:04 -07:00
5e98eaaaff format code according to conventions [skip ci] 2020-03-13 18:44:56 +00:00
9e8767917d Fix pressing two keys with the same keycode but different modifiers (#2710)
* Fix extra keyboard report during test_fixture teardown

* Add tests for pressing two keys with only different modifers

* Fix #1708

When two keys that use the same keycode, but different modifiers were
pressed at the same time, the second keypress wasn't registered. This is
fixed by forcing a key release when we detect a new press for the same
keycode.

* Fix the NKRO version of is_key_pressed

* Fix uninitalized loop variable

Co-authored-by: Jack Humbert <jack.humb@gmail.com>
2020-03-13 14:09:38 -04:00
f89439ae09 format code according to conventions [skip ci] 2020-03-13 17:24:38 +00:00
3cd2a27ac0 Decouple mouse cursor and mouse wheel in accelerated mode (#6685)
* Decouples mouse cursor and mouse wheel movements in accelerated mode.

* Fixed comment indentation.

* Updated docs

Co-authored-by: Francis LAN <francislan@google.com>
2020-03-13 12:49:44 -04:00
28d94b7248 [Keyboard] Add Wallaby (#8398)
* Add wallaby

* Update readme.md

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

* Update keyboards/wallaby/rules.mk
2020-03-12 19:30:59 -07:00
abd8e75cb7 [Keyboard] Abacus Keyboard ReMerge (#8308)
* added abacus keyboard

* keymap updates

* Update keyboards/abacus/config.h

* Update keyboards/abacus/config.h

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

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

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

* start cleaning up for merge

* cleaned for merge

* cleaned

* cleaned

* Update keyboards/abacus/abacus.h

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

* Update keyboards/abacus/keymaps/default/readme.md

* Update keyboards/abacus/readme.md

* Update keyboards/abacus/readme.md

* Update keyboards/abacus/rules.mk

* Update keyboards/abacus/info.json

* Update keyboards/abacus/info.json

* Update keyboards/abacus/info.json

* Update keyboards/abacus/readme.md

* Update keyboards/abacus/info.json

* Update keyboards/abacus/rules.mk

* Update keyboards/abacus/rules.mk
2020-03-12 19:22:27 -07:00
9046107183 Restore getting_started_github.md doc 2020-03-12 17:24:07 -07:00
2b63896466 Update Swedish keymap and add sendstring LUT (#8365) 2020-03-12 17:09:30 -07:00
6734a39811 Update Spanish keymap and sendstring LUT (#8364) 2020-03-12 17:00:28 -07:00
799acb2802 use qmk.path.normpath to locate the output file. 2020-03-12 13:48:17 -07:00
18bc525493 [Keyboard] Candybar update (#8335)
* Candybar: split lefty and righty into subprojects.

* Update readme.md

* Update readme.md

* Candybar: Moved STM32 library files into project root folder.

* Update keyboards/candybar/righty/readme.md

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

* Update keyboards/candybar/righty/readme.md

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

* Update keyboards/candybar/righty/readme.md

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

* Update keyboards/candybar/righty/readme.md

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

* Update keyboards/candybar/righty/righty.c

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

* Candybar: remove Boards directory so project uses one from drivers

* Update keyboards/candybar/righty/readme.md

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

* Update readme.md

* Update readme.md

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-12 19:52:59 +00:00
4edb5a5e8c Add new keymap with split shift and split backspace for bananas… (#8395)
* Add new keymap with split right shift and split backspace for bananasplit PCB

* Remove unecessary config.h

* Remove unecessary line breaks

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

Co-authored-by: Christopher Janzen <hello@christopherjanzen.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-13 06:14:03 +11:00
3b5fd4cc51 Enable custom backlight driver for kmac (#8397) 2020-03-12 13:11:55 +01:00
cd9a430d66 Force "blank" issue template to end of list (#8387)
* force ascii sort of issue templates to add blank to end of list
2020-03-12 01:27:33 -07:00
1b267d4840 Fix darkmode (#8393)
* Rearrange the custom CSS a bit.

* fix css name

* add missing quote

* Fix up dark mode rendering. (#8392)

* Fix up dark mode rendering.

* Update index.html

* Fix up code blocks

* Fix code in page toc

* Update docs/qmk_custom_dark.css

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

Co-authored-by: skullY <skullydazed@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-12 18:17:47 +11:00
32d03eef90 Danielo515/redox (#8232)
* feat(build): added script for compiling with docker easily

* chore: bring my own build with docker to master

* chore: delete a file that does not make sense anymore

* feat: first redox for danielo

* chore: basic compatibility between redox and my space

* refactor: removed some old stuff

* feat: added go coding symbols

* feat: name control_k and alt_j

* chore: reduce combo term

* feat: improved first layer of redox

* feat: add configurations to the redox

* feat: make alt tab more portable

* feat: small improvements to redox layout

* feat: added leader

* refactor: move leader defs to my userspace config

* chore: movement modified

* feat: more predefined keys and a a new combo

* feat: redox alt tab functionality

* refactor: move alt_tab processing to a separate file

* refactor: early return

* refactor: move process record to a separate file

* format leader function

* chore: backspace on digits layer

* feat: add extra combo

* feat: added more combos

* implement guard proposed by @drashna

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

* chore: include @drashna placeholder suggestion

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-03-12 02:50:19 +00:00
f2f2afe13b Add support for STM32L0/L1 onboard EEPROM. (#8002)
* Add support for STM32L0/L1 onboard EEPROM.

* Update docs/eeprom_driver.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-12 12:59:55 +11:00
3a3ea03b6e [Keymap] Add Erkhal keymap to PRKL30 (#8355)
* Add Erkhal keymap

* Fix comment of layer

* Update keyboards/handwired/prkl30/keymaps/erkhal/readme.md
2020-03-11 16:06:47 -07:00
f3afc716cb fix keyboards/mxss/rgblight.h (#8388)
Since #7773 caused a build error for `mxss:default`, I made similar changes to 'keyboards/mxss/rgblight.h' as #7773 did to 'quantum/rgblight.h'.

**This commit does not change the build result.**

Testing script
```shell
 # build on versions earlier than PR #7773
 git checkout 0.8.24
 echo master > /tmp/master_md5.txt

 make mxss:default:clean
 make mxss:default
 md5 mxss_default.hex >> /tmp/master_md5.txt

 # build on this commit
 git checkout fix-keyboards-mxss-rgblight.h
 echo fix-keyboards-mxss-rgblight.h > /tmp/branch_md5.txt

 make mxss:default:clean
 make mxss:default
 md5 mxss_default.hex >> /tmp/branch_md5.txt

 diff -u /tmp/master_md5.txt /tmp/branch_md5.txt
```

Test result:
```
--- /tmp/master_md5.txt 2020-03-12 05:51:39.000000000 +0900
+++ /tmp/branch_md5.txt 2020-03-12 05:51:49.000000000 +0900
@@ -1,2 +1,2 @@
-master
+fix-keyboards-mxss-rgblight.h
MD5 (mxss_default.hex) = 3034b2504d0c7fc6bd8bf1dffb6b8486
```
2020-03-11 21:23:31 +00:00
e72562fe6f [Keyboard] Oddball keyboard (#8352)
* Initial commit of oddball keyboard

* Update oddball project url

* Update pointer functions to only run on master side

* Add unique product version

* Capitalise product name

* Convert oddball keymap layer flags to enum

* Remove commented keyboard boilerplate code

* Remove unused keymap config

* Fix incorrect layout in info.json

* Add markdown link text in readme
2020-03-11 00:56:05 -07:00
2b66acf04a format code according to conventions [skip ci] 2020-03-11 05:11:02 +00:00
5ac6fe1888 Add ADC support for STM32F3 and STM32F0 devices (#7681)
* Add ADC support for STM32F3 and STM32F0 devices

* Add section about configration options available to the ARM ADC implementation

* Fix STM32 typo
2020-03-11 15:38:39 +11:00
979ac0d8da Add VIA support to Tokyo60. (#8362)
* VIA_ENABLE Tokyo60 PCB

* Update config.h

* Apply suggestions from code review

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-11 00:44:20 +00:00
7a89b51018 fix kira80 matrix mapping and add more preset layouts (#8361)
* fix kira80 matrix mapping

* add more preset keymaps

* remove uselesss rgb mod keys
2020-03-10 15:10:14 -07:00
2a05d433c9 Rename qmk json-keymap to qmk json2c (#8372) 2020-03-10 13:51:19 -07:00
1aa40dde46 format code according to conventions [skip ci] 2020-03-10 20:24:13 +00:00
2ffb08843b Feature: RGBLight layers (#7768)
* New feature: RGBLIGHT_LAYERS

This feature allows users to define multiple independent layers of lighting
that can be toggled on and off individually, making it easy to use your
RGB lighting to indicate things like active keyboard layer & modifier state.

* Demonstrate built in functions for layer state checking

Also link the video in the docs.

* Follow existing pattern for setting rgblight_status flags

* Eliminate rgblight_is_static_mode since it's not needed

Just check to see if the timer is enabled directly.
2020-03-10 12:50:01 -07:00
2a8ccafe6e Refactor Equinox PCB revisions (#8266)
* Refactor Equinox PCB revisions

* typo
2020-03-10 11:34:19 -07:00
1757960b7b Replace tab indentation with spaces in is0 default keymap. (#8368) 2020-03-10 20:30:34 +11:00
668121bbf8 Fix layer debug calls (#8370) 2020-03-10 20:23:26 +11:00
483ab88489 [Keymap] Added HHKB Keymap and user config (#8119)
* Added my config

* Update my keymap

* Improve quality of brett.c

* Finish cleaning brett.c

* Remove QMK_FIRMWARE_H

* Update keyboards/hhkb/keymaps/brett/keymap.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-10 01:52:39 -07:00
dbbab40981 Refactor rgblight_reconfig.h (#7773)
* Moved contents of rgblight_reconfig.h to rgblight_post_config.h.

In #3582, rgblight_reconfig.h had to be newly created. Now, the build system of qmk_firmware has a post_cofig feature, so that what was done in rgblight_reconfig.h can now be realized in rgblight_post_config.h.

**This commit does not change the build result.**

Testing script
```shell
  # build on master
  git checkout master
  echo master > /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = no
  make HELIX=verbose helix/rev2:default:clean
  make HELIX=verbose helix/rev2:default
  md5 helix_rev2_default.hex >> /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = yes, with animations
  make HELIX=verbose helix/rev2/back:default:clean
  make HELIX=verbose helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = yes, without animations
  make HELIX=verbose,no_ani helix/rev2/back:default:clean
  make HELIX=verbose,no_ani helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/master_md5.txt

  # build on refactor_rgblight_reconfig.h
  git checkout refactor_rgblight_reconfig.h
  echo refactor_rgblight_reconfig.h > /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = no
  make HELIX=verbose helix/rev2:default:clean
  make HELIX=verbose helix/rev2:default
  md5 helix_rev2_default.hex >> /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = yes, with animations
  make HELIX=verbose helix/rev2/back:default:clean
  make HELIX=verbose helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = yes, without animations
  make HELIX=verbose,no_ani helix/rev2/back:default:clean
  make HELIX=verbose,no_ani helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/branch_md5.txt

  diff -u /tmp/master_md5.txt /tmp/branch_md5.txt
```

Test result:
```
--- /tmp/master_md5.txt 2020-01-03 15:42:22.000000000 +0900
+++ /tmp/branch_md5.txt 2020-01-03 15:42:42.000000000 +0900
@@ -1,4 +1,4 @@
-master
+refactor_rgblight_reconfig.h
 MD5 (helix_rev2_default.hex) = f360032edd522448366d471d8f4f8181
 MD5 (helix_rev2_back_default.hex) = 0c663acc6cccc44476b3b969ad22a48f
 MD5 (helix_rev2_back_default.hex) = e66b1195ff6d38e6e22c975b8ae42fd3
```

* Expressions that are too long are difficult to read, so wrap them.

* Edit the expression again

* remove `defined(RGBLIGHT_ANIMATIONS)` in `tmk_core/common/*/suspend.c`, `tmk_core/protocol/*/main.c`

move contents of rgblight_reconfig.h to rgblight.h.

The following changes were made to rgblight.h.

```diff
+#ifdef RGBLIGHT_USE_TIMER
 void rgblight_task(void);

 void rgblight_timer_init(void);
 void rgblight_timer_enable(void);
 void rgblight_timer_disable(void);
 void rgblight_timer_toggle(void);
+#else
+#define rgblight_task()
+#define rgblight_timer_init()
+#define rgblight_timer_enable()
+#define rgblight_timer_disable()
+#define rgblight_timer_toggle()
+#endif
```

The following changes were made to tmk_core/common/avr/suspend.c, tmk_core/common/chibios/suspend.c, tmk_core/protocol/chibios/main.c, tmk_core/protocol/lufa/lufa.c, tmk_core/protocol/vusb/main.c.

```diff
-#    ifdef RGBLIGHT_ANIMATIONS
     rgblight_timer_enable();
-#    endif
```
```diff
-#if defined(RGBLIGHT_ANIMATIONS) && defined(RGBLIGHT_ENABLE)
+#if defined(RGBLIGHT_ENABLE)
         rgblight_task();
 #endif
```

* remove 'defined(RGBLIGHT_ANIMATIONS)' in tmk_core/common/keyboard.c

Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-10 01:46:03 -07:00
20a0fa9209 [Keyboard] Palette1202 (#7736)
* added Palette1202

* removed currently unused cords

* Update keyboards/palette1202/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: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update readme.md

removed unnecessary horizontal line from readme.md

* Update readme.md

Fixed style, make command example

* Removed spaces

* removed unused config.h

* fixed defines

* fixed send string on rotate encoder

* fixed layer numbers for OLED Display

* fixed to use existing function to set default layer

https://github.com/qmk/qmk_firmware/pull/7736#discussion_r366699616

* flipped rotary encoder directions

* Added layer for Clip studio on iOS

* Update keyboards/palette1202/rules.mk

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

* Update keyboards/palette1202/lib/oled_helper.h

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-10 01:38:37 -07:00
2d14d12c74 [Keyboard] Helix add split common option (#7718)
* is_master, has_usb() move to rev2.[hc]

* Do recent helix/rev2 changes to helix/pico as well.

helix/pico/matrix.c: remove 'is_master'
helix/pico/pico.c: add 'is_master'
helix/pico/pico.h: add 'has_usb()' macro
helix/pico/split_util.c: remove 'setup_handedness()' 'has_usb()', add 'is_helix_master()' etc

* add HELIX=scan option into {rev2/pico}/local_features.mk

Made DEBUG_MATRIX_SCAN_RATE easy to use.

* Changed rules.mk to link "helix/local_drivers/ssd1306.c" only when OLED_ENABLE = yes.

* Added option to use split_common for helix/rev2, helix/pico keyboard.

how to build:
 ### build helix/pico (HelixPico) with helix current codes
  $ make helix/pico:KEY_MAP
  $ make helix/pico/back:KEY_MAP

 ### build helix/rev2 (Helix or Helix beta) with helix current codes
  $ make helix:KEY_MAP
  $ make helix/rev2/back:KEY_MAP
  $ make helix/rev2/under:KEY_MAP
  $ make helix/rev2/oled:KEY_MAP
  $ make helix/rev2/oled/back:KEY_MAP
  $ make helix/rev2/oled/under:KEY_MAP

 ### build helix/pico (HelixPico) with split_common codes
  $ make helix/pico/sc:KEY_MAP
  $ make helix/pico/sc/back:KEY_MAP
  $ make helix/pico/sc/under:KEY_MAP

 ### build helix/rev2 (Helix) with split_common codes
  $ make helix/rev2/sc:KEY_MAP
  $ make helix/rev2/sc/back:KEY_MAP
  $ make helix/rev2/sc/under:KEY_MAP
  $ make helix/rev2/sc/oled:KEY_MAP
  $ make helix/rev2/sc/oledback:KEY_MAP
  $ make helix/rev2/sc/oledunder:KEY_MAP

* add matrix_slave_scan_user() to helix/rev2/rev2.c, helix/pico/pico.h

* Changed 'helix:xulkal' to always use split_common and removed ad hoc code.

Added the following line to 'helix/rev2/keymaps/xulkal/rules.mk':

        SPLIT_KEYBOARD = yes

Removed the following ad hoc code from 'users/xulkal/custom_oled.c':

        #if KEYBOARD_helix_rev2
        extern uint8_t is_master;
        bool is_keyboard_master(void) { return is_master; }
        #endif

* add '#define DIODE_DIRECTION COL2ROW' into helix/{rev2|pico}/config.h

This commit does not change the build result.

* update helix readme

* keyboards/helix/readme.md
* keyboards/helix/pico/keymaps/default/readme.md
* keyboards/helix/rev2/keymaps/default/readme.md

Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
2020-03-10 01:33:46 -07:00
0ba352356d Enable bootmagic lite for CU80 (#8363) 2020-03-10 00:30:02 -07:00
a4fd5e2491 [Keymap] Update personal keymap (#8354) 2020-03-09 23:40:27 -07:00
5e3951b361 Remove NO_UART defines from config.h for V-USB boards (#8351) 2020-03-09 19:58:25 +00:00
5e4fcfac1c [Keyboard] Add Kira 80 support (#8342)
* add kira 80 initial support

* Delete config.h

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

* Update keyboards/kira80/readme.md

* Update keyboards/kira80/rules.mk

* Update keyboards/kira80/usbconfig.h

* Update keyboards/kira80/usbconfig.h

* Update keyboards/kira80/usbconfig.h

* Update keyboards/kira80/usbconfig.h

* update readme and fix wrong LED assignment (scrolllock instead of numlock)

* Update keyboards/kira80/rules.mk

* fix weird double commit

* exchange images in readme for smaller versions

* Update keyboards/kira80/readme.md

* Update keyboards/kira80/readme.md

* Update keyboards/kira80/readme.md

* Update keyboards/kira80/readme.md

* Apply suggestions from code review

* Apply suggestions from code review
2020-03-09 12:39:41 -07:00
89ef9de98c [Keyboard] Add PRKL30 keyboard (#8319)
* Add PRKL30 default keymap

* Modify readmes, fix info.json url

* added layer pictures to readme.md

* edited layer pictures

* edited layer pictures

* edited layer pictures

* edited layout pictures

* edited layout pictures

* Modify default keymap

* Add arrows to Raise layer

* Add perkele macro and adjust symbols

* Add PRKL macro and modify keymap comments

* updated layout pictures

* edited layut pictures

* Add correct minus keycode

* Configure Feather config

* Update keyboards/handwired/prkl30/keymaps/default/keymap.c

* Update keyboards/handwired/prkl30/feather/rules.mk

* Update keyboards/handwired/prkl30/feather/config.h

* Update keyboards/handwired/prkl30/feather/config.h

* Update keyboards/handwired/prkl30/promicro/config.h

* Update keyboards/handwired/prkl30/promicro/rules.mk

* Update keyboards/handwired/prkl30/feather/config.h

* Update keyboards/handwired/prkl30/feather/config.h

* Update keyboards/handwired/prkl30/promicro/config.h

* Update keyboards/handwired/prkl30/feather/rules.mk

* Update keyboards/handwired/prkl30/keymaps/default/keymap.c

* Update keyboards/handwired/prkl30/info.json

* Update keyboards/handwired/prkl30/info.json

* Update keyboards/handwired/prkl30/keymaps/default/keymap.c

* Delete unused config

* Apply suggestions from code review

Commit code review changes

* Remove false comments from rules.mk

* Change layout to layout_all

* Apply suggestions from code review

Co-authored-by: Toni Johansson <toni.r.johansson@gmail.com>
2020-03-09 02:21:59 -07:00
6c8d815f2e Update Dvorak, Colemak and Workman keycode aliases (#8217)
* Update Dvorak, Colemak and Workman keycode aliases

* Add missing shifted keycode aliases for Workman
2020-03-09 15:37:10 +11:00
2271da00bc Move splittest I2C (#8346) 2020-03-09 15:36:40 +11:00
6e28ff24ba [Keymap] planck layout for kifinnsson (#8324)
* [Keymap] kifinnsson keymap for planck

Initial commit for kifinnsson keymap
* placeholder macros
* extend layer

* [Keymap] kifinnsson planck keymap updates

commented out placeholder SEND_STRING macros

* Update keyboards/planck/keymaps/kifinnsson/keymap.c

Remove extern keymap_config_t keymap_config;

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

* Update keyboards/planck/keymaps/kifinnsson/keymap.c

Changed KC_MENU to KC_APP

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

* Removing COLEMAK set_single_persistent_default_layer

as suggested

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

* updated uinit32()_t to layer_state_t() for update_tri_layer_state

as suggested

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

* Removing COLEMAK keycode

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

* Removing COLEMAK keycode in _ADJUST layer

* Update keymap.c

added switch (keycode) back into process_record_user

Co-authored-by: Ki Finnsson <kifinnsson@wgu.edu>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-03-08 20:58:30 -07:00
d526117896 add via support for dztech 60 and 65 pcb (#8334)
* add via support for dztech 60 and 65 pcb

add via support for dztech 60 and 65 pcb

* Update dz60rgb.h

* Update dz60rgb.h

* Update dz60rgb_ansi.h

* Update dz60rgb_wkl.h

* Update dz65rgb.h

* Update dz60rgb.h

* Update dz60rgb_ansi.h

* Update dz60rgb_wkl.h

* Update dz65rgb.h

* Update keyboards/dztech/dz60rgb/dz60rgb.h

* Update keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.h

* Update keyboards/dztech/dz65rgb/dz65rgb.h

* Update keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.h

* Update dz60rgb_wkl.h

* Update keyboards/dztech/dz65rgb/keymaps/via/keymap.c

* Update keyboards/dztech/dz60rgb_wkl/keymaps/via/keymap.c
2020-03-08 19:16:48 -07:00
cf40c33c90 Add gcc version detection to qmk doctor (#8338) 2020-03-08 09:21:45 -07:00
4b7a3b2265 [Keyboard] New Keyboard: handwired/jtallbean/split_65 (#8275)
* New keyboard: split_65

* Updated readme

* Update with requested changes

* Add writePinLow to prevent flickering

* Renamed LAYOUT to LAYOUT_all
2020-03-08 00:26:26 -08:00
829906969c Update Norwegian keymap and add sendstring LUT (#8300) 2020-03-08 15:43:05 +11:00
e0d15e6182 fixed #8259 (#8333) 2020-03-07 13:19:06 +00:00
3a303bd2ae Backlight - Carve out a better location for private driver functionality (#8329)
* rename backlight_soft to match rules.mk

* rename backlight_soft to match rules.mk - update common_features

* Carve out a better location for private driver backlight functionality
2020-03-07 12:09:49 +00:00
d7ba0ad684 [Keyboard] Handwired Skeeb Keyboard (#8161)
* adding Handwired Skeeb Keyboard

* Apply suggestions from fauxpark

* Apply more suggestions from fauxpark and small change to layout

* Apply more suggestions from noroadsleft and last tap dance
2020-03-07 01:53:05 -08:00
c4d8e56928 Added VIA keymap for Ramaworks M10-A (#8255)
* Added VIA keymap for Ramaworks M10-A

* change vendor/product in base config.h

* #pragma once

* Uee LAYOUT() in keymaps
2020-03-07 01:38:08 -08:00
5e1ce3988d Remove unused LED_BREATHING_TABLE 2020-03-06 22:29:01 -08:00
dd05007f3b [Docs] i2c_driver translation to Japanese (#8274)
* [WIP] i2c_driver translation to ja

* update docs/ja/i2c_driver.md

* update docs/ja/i2c_driver.md

* align table + remove comment

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* add original document commit hash

Co-Authored-By: shela <shelaf@users.noreply.github.com>
2020-03-06 18:27:15 -08:00
2306c974e5 format code according to conventions [skip ci] 2020-03-07 01:24:47 +00:00
833c5ae87a Buffer based OLED panning, write byte to buffer at arbitrary index (#8055)
* Add buffer based single line pan, arbitrary byte write to buffer

* Change dirty mask to inverse of OLED_BLOCK_TYPE for future proofing larger buffer sizes

* Updating docs to include new functions

* Updating to clarify scroll vs pan
2020-03-07 00:52:39 +00:00
57de9e65ef Super 16 Puzzle Game (#8306)
* 15/16 game with lights for the super 16

* Updated readme with style

* adding comments and initial style to keymap

trying to make the code look prettier, need to test by redownloading

* Final style revisions before pull request

* formatting changes, removed config.h

* modified rules.mk, works with changes in PR8314

* formatting

no number of spaces is enough for a newline, whoops

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

* Update keyboards/1upkeyboards/super16/keymaps/15game/keymap.c

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

* Update keyboards/1upkeyboards/super16/keymaps/15game/keymap.c

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

* Update keyboards/1upkeyboards/super16/keymaps/15game/keymap.c

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

Co-authored-by: Sam Reinehr <swreinehr@mines.edu>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-07 00:15:44 +00:00
6b6e47cbf1 DZ60 keyboard layout tuning and README update/fix (#8325)
* Added custom dz60 keymap

* Update readme.md

* Updated pictures in README.md

* README.md fixes

* Updated mouse layout/ added ` key

* Changed bkspc key to del in mod

* Changed picture

* Updated keymap

* Removed default dz60 config.h

* Updated Readme

* Added Devorak Keymap

* Re-added Default Config File

* Updated Flash Command

* Cleaned Up Custom Config File

* Added Lock Security Layer

* Updated Readme Picture

* Fixed Readme

* Re-added keyboard picture

* Added home and end button

* added insert, pgup, pgdn

* final commit before pull request

* fixing merge

* Added custom dz60 keymap

* adding lufa?

Co-authored-by: chrisae9 <chrisae9@penguin>
2020-03-07 00:11:41 +00:00
54b6bf5910 [Keyboard] Add VIA support for neuron (#8264)
* add VIA support for neuron

* update neuron vendor and product id

* update neuron product id

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-06 16:00:44 -08:00
73728e9bec [Docs] Fix links in Config Options doc 2020-03-06 13:10:17 -08:00
4f1a62ca1d [Keyboard] keebwerk. nano. slider support (#7914)
* Initial Keeb.werk nano.slider support

* fixed open ifdef

* Fixed layout macros

* Added LTO

* Enabled LTO and dissabled console

* Added basic slider example

* rate limited adc, and fixed send_string

* Made slider courser

* new-line after each slider print

* Switched slider example mirror the stock behavior using midi

* switched division to bit-shifting

* Apply suggestions from code review

* Update keyboards/keebwerk/nano_slider/keymaps/default/keymap.c

* Update keyboards/keebwerk/nano_slider/config.h

* Update keyboards/keebwerk/nano_slider/config.h

* Applied suggestions from code review

* Apply suggestions from code review

* Added fauxparks info.json

* Reverse midi value direction, move to QMKVID

* Update keyboards/keebwerk/nano_slider/config.h

* Update keyboards/keebwerk/nano_slider/config.h

* Update keyboards/keebwerk/nano_slider/keymaps/default/keymap.c

* Apply suggestions from code review

* Update keyboards/keebwerk/nano_slider/rules.mk

* Update keyboards/keebwerk/nano_slider/nano_slider.h

* Update keyboards/keebwerk/nano_slider/readme.md

* Defined backlight pin and settings
2020-03-06 11:00:17 -08:00
4e826ba61f Correct typo in tap_hold.md (#8326)
Correct typo: "reasonal" to "reasonable"
2020-03-07 05:42:08 +11:00
b438c6f8ea Fix up Arm builds with nix-shell. (#8312) 2020-03-07 03:05:51 +11:00
bad9468ce1 format code according to conventions [skip ci] 2020-03-06 13:28:11 +00:00
9810756ee0 Fix typo in uart.c backport and add 32A "support" (#8219) 2020-03-06 23:55:15 +11:00
918a85d342 Refactor more backlight to a common location (#8292)
* Refactor more backlight to a common location

* BACKLIGHT_PIN not defined for custom backlight

* align function names
2020-03-06 12:49:45 +00:00
116c0e44a1 Remove stub backlight functions from clueboard/66/rev4 (#8303) 2020-03-06 12:12:20 +00:00
3c0ef04390 [Keymap] Dichotomy keymap by beat (#8279)
* Added more led helpers

* Working keymap

* Added new mouse button an made lower layer toggleable

* Small improvement to process_record_user

* Removed extra layer buttons

* Added Numpad to apply layer

* Moved buttons and added toggle for raise button

* Added Menu,PrintScreen and Windowslock buttons, and left handmouse

* Fixed Scroll Buttons

* Turned TAPPING TOGGLE to 2

* Switched Del and Ctrl on left hand

* Added Home Button to Mouse layer

* Fixed led initialization to avoid red led on boot

* Updated formatting to follow guidelines

* Used enums instead of defines and used layer_state_t type

* Added license

* Moved TAPPING settings to keymap config

* Fixed small formatting issue in keymap.c

* Use GPIO Control instead of lowlevel ports
2020-03-06 00:47:52 -08:00
fd7b52cc64 format code according to conventions [skip ci] 2020-03-06 02:15:29 +00:00
d0d6fb27c4 Add f401 and f411 blackpill examples (#7930)
* Add f401 and f411 blackpill examples

* Add readme files

* Align dfu args with core

* Add support for RESET keycode

* move STM32_BOOTLOADER_ADDRESS to rules

* Update conf files to latest ChibiOS

* Update conf files to latest ChibiOS
2020-03-06 01:40:39 +00:00
b368db9e02 Refactor fortitude60 to use split_common (#8113) 2020-03-06 01:39:54 +00:00
76189d9a28 link the 2020 Feb 29 Breaking Changes changelog from the summary 2020-03-05 16:00:10 -08:00
2939751eb3 keycodes.md: hard-code section link id attributes 2020-03-05 16:00:10 -08:00
772bacb770 keycodes.md: don't use section headings as links
It prevents the Table of Contents from parsing that heading.
2020-03-05 16:00:10 -08:00
961477c791 make sure all our redirects are in order 2020-03-05 16:00:10 -08:00
6956784ac1 Add more call to action items 2020-03-05 16:00:10 -08:00
54c58ea6de Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
a95a314f78 refactor How a Matrix Works doc 2020-03-05 16:00:10 -08:00
bc31ebd0c4 Hand Wire guide tidying, part 2 2020-03-05 16:00:10 -08:00
fbf27e7444 Hand Wire guide tidying 2020-03-05 16:00:10 -08:00
8b5ca3d110 clean up Firmware Setup section in Hand Wire guide 2020-03-05 16:00:10 -08:00
06708b9dc8 remove collapsible section for Compiling; redirect to Building Firmware doc 2020-03-05 16:00:10 -08:00
772d5264d6 replace QMK Toolbox image in Hand Wire guide
Showing a current version of QMK Toolbox
2020-03-05 16:00:10 -08:00
994de86121 restructure Hand Wire Guide 2020-03-05 16:00:10 -08:00
906bdce6ce split Hand Wire Preamble to a separate doc 2020-03-05 16:00:10 -08:00
3bd65d2173 CSS updates: ul and pre elements 2020-03-05 16:00:10 -08:00
d5f34c4810 Polish Configurator section 2020-03-05 16:00:10 -08:00
503b52652c Adjust the H2 and H2 margins 2020-03-05 16:00:10 -08:00
b5030907eb reduce the line-height of the sidebar 2020-03-05 16:00:10 -08:00
8b0fdc82dc rearrange the sidebar a bit 2020-03-05 16:00:10 -08:00
8d8d61b3c5 limit the TOC to H1 and H2 2020-03-05 16:00:10 -08:00
f86fd0cd14 remove line drawing chars 2020-03-05 16:00:10 -08:00
12e43230c6 make custom_keycode_names.md a faq entry instead 2020-03-05 16:00:10 -08:00
55c5b82638 reduce space on h3s 2020-03-05 16:00:10 -08:00
9035c3497e break feature_advanced_keycodes.md up into multiple files 2020-03-05 16:00:10 -08:00
5d35098bfc improve our docsify setup 2020-03-05 16:00:10 -08:00
8249a288d7 fix numbering 2020-03-05 16:00:10 -08:00
45e218ceec overhaul the newbs guide 2020-03-05 16:00:10 -08:00
86f6405574 More sidebar organization 2020-03-05 16:00:10 -08:00
99850aabca Add API documentation 2020-03-05 16:00:10 -08:00
3c98854044 update flashing.md
- minor typo on intro paragraph (the -> them)
- remove note about :check-size target (`make` task now does this automatically)
- heading level for Caterina commands section
- typo regarding Halfkay (come -> comes)
2020-03-05 16:00:10 -08:00
7b1b53054f update newbs_building_firmware.md
Update the text sample for when the compile task completes.
2020-03-05 16:00:10 -08:00
a701c15d87 Rework the newbs guide around the qmk cli 2020-03-05 16:00:10 -08:00
1b7fa46f8e Add dark mode support 2020-03-05 16:00:10 -08:00
58fb57bfa7 _summary.md: move Auto Shift page to Software Features category 2020-03-05 16:00:10 -08:00
6af58fc25e clean up links to keycode references in newbs_building_firmware_configurator.md 2020-03-05 16:00:10 -08:00
e01763b8e5 clean up callouts in newbs_building_firmware_configurator.md 2020-03-05 16:00:10 -08:00
cdb5c074d3 remove some unnecessary external links
Also clean up some trailing whitespace.
2020-03-05 16:00:10 -08:00
3f1e47dbcd rework the index page 2020-03-05 16:00:10 -08:00
d1c0710dec remove unused docs 2020-03-05 16:00:10 -08:00
5b14456082 more wip 2020-03-05 16:00:10 -08:00
d1c18086d2 wip 2020-03-05 16:00:10 -08:00
4ef10a424a [Keyboard] add miller/gm-862 keyboard (#8230)
* add miller/gm-862 keyboard

* Update keyboards/miller/gm862/gm862.c

* Update keyboards/miller/gm862/gm862.h

* Update keyboards/miller/gm862/gm862.h

* Update keyboards/miller/gm862/readme.md

* Update keyboards/miller/gm862/readme.md

* Update keyboards/miller/gm862/readme.md

* Update keyboards/miller/gm862/readme.md

* Update config.h

* Update keyboards/miller/gm862/config.h

* Update keyboards/miller/gm862/readme.md
2020-03-05 13:51:43 -08:00
23c31dd929 update lily58/rev1:yshrsmz (#8298)
* update lily58/rev1:yshrsmz

* use pre-shifted keycodes
2020-03-06 06:56:28 +11:00
921e18988f [Keyboard] CapsUnlocked CU80 (#8257)
* Initial commit for CU80

* Added iso and ansi to .json

* Update keyboards/cu80/config.h

Remove "Custom matrix"

* Update keyboards/cu80/config.h

* Update keyboards/cu80/config.h

* Update keyboards/cu80/config.h

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/rules.mk

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

* Update keyboards/cu80/rules.mk

* Update keyboards/cu80/rules.mk

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/readme.md

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

* Update keyboards/cu80/rules.mk

* Update keyboards/cu80/rules.mk

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/info.json

* Update keyboards/cu80/info.json

* Update keyboards/cu80/info.json

* Update keyboards/cu80/info.json

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

* Update keyboards/cu80/rules.mk
2020-03-04 21:40:03 -08:00
7e30d189e9 Update config.h - Fixed number of RGB LEDs (#8316)
There are 18 LEDs, not 16
2020-03-05 12:39:50 +11:00
8fd8454308 [Keymap] Add @cjuniet's keymap/layout/userspace (#8258)
* Add Colemak layout

* Add status bar for mods & locks with a custom font

* Swap DEL and TAB

* Fix media keys and add QMK Configurator layout

* Add dead grave accent on <leader>e
2020-03-04 17:19:26 -08:00
8e229f0db6 [Keymap] Wilba/Singav3 nk65 keymap updates (#8267)
* via configurator can't do AG_TOGG with any key - meh

* same issue - via can't do AG_TOGG

* oops - missed AG_TOGG on the NK65

* add media and mousekeys

* Update keyboards/nk65/keymaps/madhatter/keymap.c
2020-03-04 17:14:36 -08:00
95ce19f846 Add RGB lighting through one of the free pins (#8294) 2020-03-04 16:59:06 -08:00
9550ab3342 [Keymap] Adding the 4sStylZ xd75 (#8285)
* Adding the 4sStylZ xd75

* Update keyboards/xd75/keymaps/4sstylz/keycodes.h

* Apply suggestions from code review
2020-03-04 16:42:09 -08:00
607e2f6c31 YD60MQ refactor and Configurator layout support (#8313)
* refactor yd60mq.h

- four-space indent
- use K<row><col> base32hex notation
- rename LAYOUT to LAYOUT_all (with alias for backwards compatibility)

* refactor yd60mq.c to use led_update_kb()

* align rules.mk to AVR template

* refactor default keymap

Also correct positions for KC_NUHS and KC_NUBS.

* update readme

* add Configurator layout support

* initialize the Caps Lock LED pin properly
2020-03-05 07:26:25 +11:00
2d1081c296 [Keyboard] Forget to ifdef Super16 led config (#8314) 2020-03-04 19:46:03 +00:00
0275098bdd [Keyboard] Switch to RGB Matrix for Super16 (#8305) 2020-03-04 18:19:39 +00:00
0c9171a619 [Keymap] Keymap Update (#8309)
* Keymap Update

Some key codes have been updated.
naked64:salicylic
7skb:default

* Keymap Update

Some key codes have been updated.
KC_GRAVE to KC_GRV
7skb:default
2020-03-04 16:16:36 +00:00
23eb9f4fe5 New Keyboard: SiddersKB Majbritt (Pronounced My Brit) (#8260)
* Initial commit of majbritt

* Add QMK and VIA support to majbritt

* Change vendor and product id

* Change name

* Change make path

* Move Majbritt into sidderskb directory

* Update keyboards/sidderskb/majbritt/majbritt.c

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

* Update keyboards/sidderskb/majbritt/keymaps/default/config.h
Co-Authored-By: Ryan <fauxpark@gmail.com>

* remove unused file
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-04 13:12:00 +01:00
31662af342 [Keyboard] VIA Support: Tada68 (#8289)
* tada68 via files

* change vid and pid based on wilba's recommendaton
2020-03-04 01:22:47 -08:00
8c3ff3f32c [Keyboard] LFK78 refactor (#7835)
* Change include guards to pragma once

* Clean up default keymaps

* Remove some magic numbers and use GPIO macros

* Clean up keyboard.[ch]

* Tidy up info.json and readme

* Align config.h with template

* Split up revision code into subfolders

* rev C-H has no audio, apparently

* Change revc_h to revc and document differences

* Turn off Audio on revb for now, for Travis' sake

* Split info.json into revision folders

* Clean up default keymaps some more
2020-03-03 14:10:39 -08:00
910d603c65 [Keymap] new userspace for ibnuda (#8221)
* to ease the maintenance for some boards ibnuda has.

* followed ridingqwerty's suggestion on 8821.

* folloing drashna's suggestion on qmk's 8221.

* following drashn's suggestion on qmk's 8211
2020-03-03 13:46:11 -08:00
ad96e995af [Keymap] Add crd's equinox keymap (#8251) 2020-03-03 12:45:18 -08:00
ed6586e25b [Keymap] Feature/alfrdmalr/keymap update (#8174)
* WIP do not merge

* first pass at custom preonic layout

* add auto shift and reset via leader key

* Update readme

* update copyright notice

* formatting changes

* fix: use MO instead of process_record_user

* added backslash and moved grave position

* remove extraneous 'j' characer in NUMPAD template

* update template formatting

* remove process_record_user

* swap "!" with "@"

* fix readme formatting

* update readme layout image

* restore settings layer

* add windows minimize sequence

* fix: switch to correct seq function for three-key sequence

* fix: missing semicolon

* refactor: move keymap to userspace and generic 5x12 layout

* add numlock to numpad layer

* add readme

* update readme formatting

* remove unused wrappers from layout keymap

* update readme title to reflect new location

* remove alfrdmalr directory from preonic/keymaps

* add ortho 4x12 support

* add 'trilayer' settings and update keymap

* update SYMBOLS layer to SYMBOL

* remove minimize sequence

* clean up user config

* add brightness controls

* update settings ascii

* moved some symbols around to make vim/linux smoother
2020-03-03 10:13:42 -08:00
acaecb4f94 Fix bootloader definition for namecard2x4 (#8301)
BOOTLOADER needs to be defined as caterina because namecard2x4 uses avrdude for flasher.
2020-03-03 15:00:34 +00:00
53ac4d214f Update Hungarian keymap and add sendstring LUT (#8220) 2020-03-03 11:55:42 +11:00
bff56aa46c Remove "ugly hack in usb_main.c" comments (#8296) 2020-03-02 23:56:46 +00:00
ce30cd2a01 Update encoder functions for Iris VIA keymap (#8295) 2020-03-02 23:55:57 +00:00
552f8d81b9 Reduce PROGMEM usage for sendstring LUT (#8109)
* Reduce PROGMEM usage for keycode map

Bit-pack the keycode bool array to gain back a small amount of flash space.
The trade-off is an increase in runtime instructions when running macros.

It does make the code a bit harder to read, as well as maintain.

For configs that use send_string() et al, it saves ~100 bytes.

* Switch to macro and common definition

Rewrite the array declarations so both the unpacked (original) and
packed LUT arrays can use the same value definitions. This is done by
defining a macro that "knows what to do".

This makes the code much easier to read and maintain.

* Fix macro typos and improve perf

Pack the bits in a more efficient order for extraction.
And also fix the copy/paste error in the macro...

* Switch fully to packed LUT

Some minor reformatting.
Compile tested all sendstring_xyz.h to make sure they were converted
properly. Also checked that an unconverted version would generate a
compile error.

* Apply whitespace suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-03 10:43:18 +11:00
abd36de5ad [Docs] Update ISP Flashing guide (#8149)
* [Docs] Update ISP Flashing guide

* Apply suggestions from code review

AKA why you shouldn't write docs at 2am

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

* Update workding for planck-qmk-dfu

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-01 22:29:26 -08:00
b72a1aa3fe Rewrite the Bathroom Epiphanies Frosty Flake matrix and LED handling (#8243)
* Keyboard: revamp frosty-flake leds

This commit transitions bpiphany/frosty_flake to led_update_{kb,user}
and rewrites the AVR bit twiddling logic to use the standard QMK GPIO
API.

* Keyboard: rewrite frosty_flake's matrix reader to be a lite custom matrix

This commit replaces frosty_flake's custom matrix and debounce logic
with a "lite" custom matrix. In addition to being somewhat clearer, this
allows a consumer of the flake board to choose their own debouncing
algorithm. The one closest to the implementation originally in use is
sym_g, but this opens us up to supporting eager_pk and eager_pr.

The original matrix code was 18 columns for 8 rows, but using a single
row read and unpacking the bits into individual columns. To simplify,
I've changed the key layout to be 8C 18R instead of 18C 8R: this lets us
use a single read directly into the matrix _and_ drop down to a uint8_t
instead of a uint32_t for matrix_row_t.

Since we're no longer implementing our own debouncing and row unpacking,
we save ~400 bytes on the final firmware image.

Fully tested against a CM Storm QFR hosting the flake -- this commit
message was written using the new matrix code.

Firmware Sizes (assuming stock configuration as of 42d6270f2)

Matrix+Debounce     Size (bytes)
---------------     ------------
original            17740
new + sym_g         17284
new + eager_pr      18106
new + eager_pk      18204

I expect that there are some scanning speed benefits as well.

* Keyboard: update frosty_flake's UNUSED_PINS

* Keyboard: Remove meaningless weak redefinitions from frosty

These are not necessary (and all of them already live somewhere in
Quantum).
2020-03-02 05:17:09 +00:00
78069d4826 Add onekey keymap for testing reset to bootloader. (#8288) 2020-03-01 22:36:17 +00:00
c543ccf07c Get the direction right on the S75 encoder (#8287) 2020-03-01 21:30:01 +00:00
88356c85c4 Prune out pure software pwm && custom driver && remove wrapping BACKLIGHT_PIN (#8041) 2020-03-01 20:22:13 +00:00
3dc061ac78 Make a fix to savage65 and tmov2 for via (#8286) 2020-03-02 07:16:43 +11:00
95124bf933 format code according to conventions [skip ci] 2020-03-01 19:20:09 +00:00
e7fb873ee2 Short term fix for conflicting types for 'tfp_printf' (#8157) 2020-03-02 05:46:40 +11:00
629950e51b Fix recent clang-format breaking quantum.c (#8282) 2020-03-01 17:55:43 +00:00
1ec8a7205f format code according to conventions [skip ci] 2020-03-01 13:54:25 +00:00
ce604e1629 Remove duplicate BRTG case (#8277) 2020-03-01 13:22:21 +00:00
c9e3fa6f70 Clean up includes for glcdfont headers (#7745)
* Clean up includes for glcdfont headers

* Remove pragma once, most of these are not headers

* Missed these
2020-03-01 17:56:50 +11:00
f513a9193c Fix the Breaking Changes doc again
WHAT YEAR IS IT?!
2020-02-29 20:46:48 -08:00
21715210e2 [Docs] translated 'feature_tap_dance.md' to japanese. (#8137)
* complete translation.

* Update docs/ja/feature_tap_dance.md

Update the file based on the suggestions.

* Update docs/ja/feature_tap_dance.md

Update the file based on the suggestions.

* Apply suggestions from code review

Update the file based on the suggestions.

* Apply suggestions from code review

Update the file based on the suggestions (Part 2).

* Apply suggestions from code review

Update the file based on the suggestions (Part 3).

* Apply suggestions from code review

Update the file based on the suggestions (Part 3).

* Apply suggestions from code review

Update the file based on the suggestions (Part 4).

* Apply suggestions from code review

Update the file based on the suggestions (Part 5).
ご提案いただいた修正案は全て確認できました。
続いて、コメント行の調整、「打つ・叩く」の変更、その他の修正を行います。

* fixed typo.

* Update the file based on the suggestions (Part 6).

* Update the file based on the suggestions (Part 7).

* Fixed sentence.

* Update docs/ja/feature_tap_dance.md

Update the file based on the suggestions (Part 8).

* Update the file based on the suggestions (Part 9).

Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-Authored-By: shela <shelaf@users.noreply.github.com>
2020-02-29 20:22:15 -08:00
f74c769a19 PWM DMA based RGB Underglow for STM32 (#7928)
* Add pwm ws2812 driver

* Add docs for pwm ws2812 driver

* Update ws2812_pwm for ChibiOS 19

Co-Authored-By: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-03-01 13:05:56 +11:00
bb47236490 Add VIA support to Prime_M. Clean up all files (#8247)
* Add VIA support for Prime_L

* Update keyboards/primekb/prime_l/v1/config.h

* Add prime_exl_plus keyboard

* Temporary removal of prime_exl_plus

* Add Prime_EXL Plus, including VIA support

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/rules.mk

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keymap.c

* correct spacing of keymaps and layout macro. move indicator logic from user space to keyboard space

* further corrections to keymaps and layout macro.

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update prime_exl_plus.c

* small edit to prime_exl_plus.c

* Add via support to Prime_M and clean things up

* Update rules.mk

* Update keyboards/primekb/prime_m/readme.md

* Update keyboards/primekb/prime_m/readme.md

* Update keyboards/primekb/prime_m/config.h
2020-02-29 17:42:50 -08:00
f5d1409c26 Track master branches for lib/chibios, lib/chibios-contrib, lib/ugfx. (#8273) 2020-03-01 11:51:38 +11:00
d0c3acbe3e Allow for ChibiOS 20.x (master), as well as enabling ChibiOS-Contrib HAL. (#8272) 2020-03-01 11:50:49 +11:00
c775104b9f Use nano specs (#8270) 2020-03-01 11:49:16 +11:00
8d9c800da0 Unconditionally enable ChibiOS syscalls (#8268)
* Enable syscalls all the time

* fix whitespace
2020-03-01 09:45:21 +11:00
cae91510dc Breaking Changes documentation fixes 2020-02-29 12:30:38 -08:00
26eef35f07 2020 February 29 Breaking Changes Update (#8064) 2020-02-29 11:59:30 -08:00
85041ff05b Update Breaking Changes checklist 2020-02-27 12:03:30 -08:00
7eab5ad60f Update Breaking Changes timeline
I've been working from one timeline while the docs said something different.
2020-02-27 11:17:23 -08:00
ae46e6ace9 Fix MCU rule for Wete (#8254)
Including the `xB` suffix prevents qmk_compiler (and thus QMK Configurator) from compiling firmware for the Wete.

Rolling this change back until we work out a long-term solution for the suffixes.
2020-02-27 20:40:31 +11:00
444fd3b1cc Add support for delays in send_string. (#8244) 2020-02-27 20:38:19 +11:00
e18be69104 Add community layout support to KBD67 MKIIRGB v2 (#8249) 2020-02-27 13:19:34 +11:00
4667bc554e Fixed OS detection such that OSX doesn't take over the world (#8248) 2020-02-26 10:12:13 +01:00
d52cd8886c [Keyboard] Add Prime_EXL Plus to handwired (#8238)
* Add VIA support for Prime_L

* Update keyboards/primekb/prime_l/v1/config.h

* Add prime_exl_plus keyboard

* Temporary removal of prime_exl_plus

* Add Prime_EXL Plus, including VIA support

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/rules.mk

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keymap.c

* correct spacing of keymaps and layout macro. move indicator logic from user space to keyboard space

* further corrections to keymaps and layout macro.

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update prime_exl_plus.c

* small edit to prime_exl_plus.c
2020-02-25 13:21:59 -08:00
61b71320f7 format code according to conventions [skip ci] 2020-02-25 18:57:18 +00:00
b949343b78 New feature: PERMISSIVE_HOLD_PER_KEY (#7994)
* Implement 'PERMISSIVE_HOLD_PER_KEY'

* Document 'PERMISSIVE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig <35542036+GeorgeKoenig@users.noreply.github.com>
2020-02-25 13:25:52 -05:00
f6111d49bb Split - Avoid race condition during matrix_init_quantum (#8235)
* Avoid race condition during matrix_init_quantum

* spelling is hard
2020-02-25 14:10:04 +00:00
891d28a379 Acheron VIA support (#8204)
* Update acheron USB IDs

* Add shark via keymap

* Update austin via keymap

* Fix eeprom build error

* 3 layers fit
2020-02-25 11:28:07 +00:00
bb8d4b4d23 send_unicode_string(): Add support for code points > 0xFFFF (#8236) 2020-02-25 12:54:51 +11:00
93c5307fd6 [Keyboard] Add Wete (#8229)
* [Keyboard] Add Wete

* Fix width and height in Wete info.json

* Use default board files, core backlight, and disable RTC

* Disable I2C, SPI. Minor corrections

* Keymap typo update

* Add LAYOUT_all to info.json

* Remove extra spaces in README, delete matrix_*_kb functions

* Fix layout errors in wete.h, and some minor corrections

* Actually fix LAYOUT_all in info.json
2020-02-24 17:36:30 -08:00
088b64ab3d Improvements to extrakey HID descriptors (#8156) 2020-02-25 12:18:11 +11:00
ef8878fba5 Hineybush h87a lock indicators (#8237)
* move lighting code from VIA into the keyboard's .c file so that every keymap can access it

* after some serious conversations with default and wkl, they agreed to let me modify their keymaps. They weren't too happy
2020-02-24 12:04:40 -08:00
f673c965ba Add VIA support for Prime_L (#8233)
* Add VIA support for Prime_L

* Update keyboards/primekb/prime_l/v1/config.h

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

* Add prime_exl_plus keyboard

* Temporary removal of prime_exl_plus

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-02-24 14:19:27 +00:00
a2c0c1479c Hub16 - Bug removal + clean up code (#8227)
* bugfixes + cleaned up code

* typo

* Update keyboards/hub16/keymaps/no_mod/keymap.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-02-24 14:14:09 +00:00
20e1c8c571 [Keyboard] ai03 Equinox (#8224)
Re-attempt to add Equinox with newer Via changes

* Add nox

* Tweak based on previous pullrequests

* Add necessary descriptions

* Modernize Via config

* Modernize old files with massive blocks of unneeded options

* Fix missing bootmagic

* Update keyboards/ai03/equinox/equinox.h

* Update keyboards/ai03/equinox/keymaps/default/keymap.c

* Update keyboards/ai03/equinox/keymaps/via/keymap.c

* Update keyboards/ai03/equinox/keymaps/via/readme.md

* Update keyboards/ai03/equinox/readme.md

* Update keyboards/ai03/equinox/readme.md

* Update keyboards/ai03/equinox/readme.md

* Update keyboards/ai03/equinox/info.json

* Update keyboards/ai03/equinox/keymaps/default/keymap.c

* Update keyboards/ai03/equinox/keymaps/default/keymap.c

* Update keyboards/ai03/equinox/keymaps/proto_via/keymap.c

* Update keyboards/ai03/equinox/keymaps/proto_via/keymap.c

* Update keyboards/ai03/equinox/keymaps/proto_via/keymap.c

* Update keyboards/ai03/equinox/keymaps/proto_via/keymap.c

* Update keyboards/ai03/equinox/keymaps/via/keymap.c

* Update keyboards/ai03/equinox/keymaps/via/keymap.c

* Update keyboards/ai03/equinox/keymaps/via/keymap.c

* Fix indents

* Update keyboards/ai03/equinox/keymaps/proto_via/rules.mk

* Update keyboards/ai03/equinox/rules.mk
2020-02-23 21:18:14 -08:00
40f7981395 [Keyboard] Add zfrontier/big_switch (#8205)
* add zfrontier/big_switch

* Update keyboards/zfrontier/big_switch/config.h

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

* Update keyboards/zfrontier/big_switch/config.h

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

* Update keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c

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

* add overriding keymap makefile

* Update keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c

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

* Update keyboards/zfrontier/big_switch/keymaps/default/keymap.c

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

* remove redundant defines

* taplong no longer needed

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-02-24 14:04:26 +11:00
156c9c4ec0 Gingham Update (#8225) 2020-02-24 11:25:18 +11:00
371ff9dd6f A proper send_string() for the Unicode feature (#8155) 2020-02-24 10:27:25 +11:00
716c29881c Rollback PR #7967 in preference of fixing I2C start/stop properly, in a followup PR. (#8173) 2020-02-24 10:08:00 +11:00
f76f9c7d2a Add mouse support to SEND_STRING (#8223)
* Add mouse support to SEND_STRING

* add short forms
2020-02-23 14:03:01 -08:00
530c997638 Add link to "Useful functions" in macro docs (#7446)
* Add link to "Useful functions" in macro docs

Help people find additional features they can activate within a macro

* Update docs/feature_macros.md

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

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-02-23 12:50:11 -08:00
b353028ea5 New functionality for cformat (#7893)
Fixing complexity

remove lambda

PR review fixes #1

Removing unneccesary string substitution

Handle -a and specified files

Complexity rewrite, use pathlib
2020-02-22 20:57:19 -08:00
eb9c2429c6 Update main.c (#8198) 2020-02-22 10:10:41 -05:00
1327208449 format code according to conventions [skip ci] 2020-02-22 03:41:27 +00:00
d99404388f Fix QWIIC OLED for AVR (#7769)
* Fix QWIIC OLED for AVR

* Change missed width * width to width * height

* Fix typo in comment

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

* Fix last incorrect uses of LCDWIDTH

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-02-22 14:11:25 +11:00
3157f5f436 VIA Support: KBD75 rev1/rev2 (#8214)
* add a VIA keymap for kbd75

* rev2 is a completely different pcb allowing a NEW layout, setting this to have a different product id so users don't get confused when they're able to enable numpad layout on rev1 VIA

* Update keyboards/kbdfans/kbd75/rev1/config.h

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

* Update keyboards/kbdfans/kbd75/rev2/config.h

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-02-21 18:21:02 +00:00
8d11359886 Update TMOv2 for new key (#7759)
* Update TMOv2 for new keymap

* Update based on PR changes
2020-02-21 17:22:58 +00:00
a4af41cb13 Added custom keymap for preonic (#7548)
* Added custom keymap

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

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

* Address PR comments and added CTL_T(KC_ESC) on other layouts as well

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-02-21 11:16:39 -05:00
032fbf3f24 Add Danish keymap and sendstring LUT (#8218) 2020-02-21 14:40:28 +01:00
a7d859dab8 format code according to conventions [skip ci] 2020-02-21 11:04:05 +00:00
1751c3cc25 uart.c fix from TMK (#7628)
* uart.c fix from TMK

Backport from tmk/tmk_keyboard@c41e48a0ab

* Avoid deadlock when uart.c is usind in ISR

Backport from tmk/tmk_keyboard@55443fabb7
2020-02-21 21:32:30 +11:00
67ee050a0e S75 Encoder Fixes (#7758)
* S75 Encoder Fixes

* Flip encoder pins vs using setting
2020-02-21 21:25:17 +11:00
562482c234 Add Turkish keymap aliases and sendstring LUT (#7676)
* Add Turkish keymap aliases and sendstring LUT

* Split into F and Q layouts
2020-02-21 18:21:38 +11:00
66d7fc34b2 Add Arm Teensys to mcu_selection.mk (#8026)
* Add Arm Teensys to mcu_selection.mk

* Roll back halfkeyboard keymap changes

* Remove extra newline
2020-02-21 17:12:15 +11:00
81423cc817 [New keyboard]silverbullet44 (#7950)
* make silverbullet44

* comment edit

* venderID

* Fix parentheses in macros, and in general clean up quantum.h (#5021)

* Fix up GPIO macros

* Fix up send string macros

`string` arguments must not be parenthesized

* Fix up miscellaneous macros

* Make indentation uniform (4 spaces)

* Make #ifdef vs #if defined usage consistent

* Reorder standard includes

* Revert indentation changes as per review comments

* Revert #if defined(__AVR__) → #ifdef __AVR__ change

* Change 2 space indent to 4 spaces on a couple of lines

* Replace include guard with #pragma once

* alt+tab

* copy from master:silverbullet44

* adjust for pull request

* clang-format

* create info.json

* Delete new_project.sh

* Update keyboards/silverbullet44/keymaps/default/config.h

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

* Update keyboards/silverbullet44/silverbullet44.c

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

* Update keyboards/silverbullet44/silverbullet44.h

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

* Apply suggestions from Maxr1998

* format default keymap

* Apply suggestions from Maxr1998 (#2)

* Apply suggestions from fauxpark

* fix readme.md

* Apply suggestion from Maxr1998. (custom_keycode to MO(_ADJUST))

* I became a tricky! Hahaha!!

* Add original keymap made by FKML

* deleated at config.h

* Changed Copyright

* Delete
// Defines the keycodes used by our macros in process_record_user
//enum custom_keycodes {
//  QMKBEST = SAFE_RANGE,
//  QMKURL
//};

* Delete bool alt_pressed = false;

* Delete ADJUST

* Delete /

* Delete void matrix_scan_user(void) {

}

void led_set_user(uint8_t usb_led) {

}

* Change Copyright's year.

* Delete adjust

* Delete adjust

* Delete adjust

* 列挙型に変更

* Enclose  keymap with ```.

* Delete
#define _______ KC_TRNS
#define XXXXXXX KC_NO

* Fix indentation.

* Delete some rows.

* Aligned columns of ''readme.md''.

* I got god's keymap...hahaha:)

* Update keyboards/silverbullet44/readme.md

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

* Update keyboards/silverbullet44/rules.mk

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

Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
Co-authored-by: Max Rumpf <max.rumpf1998@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-02-21 16:59:36 +11:00
7707724dc4 Allow 30us matrix delay to be keyboard/user overridable (#8216)
* Allow 30us matrix delay to be configurable via define

* Move wait logic to matrix_common

* Move wait logic to matrix_common - fix wait includes
2020-02-21 14:49:33 +11:00
42d6270f28 Merge /prime_l and /prime_l_v2 (#8194)
* correct indicator light states.

function of indicator lights was inverted. these changes correct that.

* flesh out keymaps pre production

* Enable extrakey in rules

* Prime_BLE initial commit

* Initial commit for Prime_L V2

* Update info.json

correct key spacing.

* update copyright

* Update readme.md

* Inital commit

* updates before PR into QMK master

* Drop Prime_EXL Plus from PR. Make requested changes to Prime_L V2

* Rename keyboards/primekb/Prime_l_v2/config.h to keyboards/primekb/prime_l_v2/config.h

* Rename keyboards/primekb/prime_l_v2/config.h to keyboards/primekb/Prime_l_v2/config.h

* remove directory Prime_l_v2

* re-submit with proper folder name.

* Restructure /primekb directory to merge /prime_l and /prime_l_v2

* made changes requested by QMK reviewers

* Update keyboards/primekb/prime_l/v1/readme.md

* Update keyboards/primekb/prime_l/v1/readme.md

* Update keyboards/primekb/prime_l/v1/readme.md
2020-02-19 11:12:11 -08:00
19c9141473 [Keymap] Keymap for XD75 with 7U spacebar EN-RU gamers (#8184)
* Create readme.md

* Create keymap.c

* Create config.h

* Create rules.mk

* Create layers.json

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

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

* Delete layers.json
2020-02-19 11:08:21 -08:00
c4dce3b5a7 Add VIA support for kbd8x mk2 (#8168)
* added via keymap for kbd8x mkii

* adding via to kbd8x mk2

* modified via kbd8x mk2 keymap

* enable LTO kbd8x mk2 via keymap

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

* removed backticks kbd8x mk2 via keymap

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-02-20 00:50:25 +11:00
443bd98041 Move Grave/Tilde and some lesser used keys on my ergo boards (#8200)
* Move Grave/Tilde keys to more convenient places

* Move Ins/Del and some other keys around

* Update KLE images
2020-02-20 00:45:13 +11:00
419002a63b [Keyboard] KC60SE cleanup (#8171)
* coding style cleanup, enable/disable misconfigured/broken features

* add SCLN missing, compile with backlight PWM  warning

* edit json

* new info.json from KLE

* new info.json from KLE using QMK converter

* changes notes

* notes in pull request

* missing line in comments

* line wrap

* Update keyboards/kc60se/config.h

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

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

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

* Update keyboards/kc60se/readme.md

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

* Update keyboards/kc60se/readme.md

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

* Update keyboards/kc60se/readme.md

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

* Update keyboards/kc60se/kc60se.h

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

* Update keyboards/kc60se/rules.mk

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

* Update keyboards/kc60se/info.json

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

* Update keyboards/kc60se/readme.md

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

* Update keyboards/kc60se/readme.md

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

* Update keyboards/kc60se/readme.md

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

* comment back in rules.mk

* add  2 iso layouts and keymaps, 1 ansi kemap, compiled and tested

* keymaps and info

* Delete keymap.c

not ready, I need to get a few iso characters corrected

* Delete keymap.c

not ready, need to get a few iso character define correctly

* Update info.json

Bspc to Backspace

* no unicode

* gui_on and gui_off in readme

* Update keyboards/kc60se/rules.mk

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

* remove is_command

* Update keyboards/kc60se/config.h

remove comment

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

* Update keyboards/kc60se/config.h

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

* Update keyboards/kc60se/readme.md

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

* remove \\ in keymaps

* Update keyboards/kc60se/info.json

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

* Update keyboards/kc60se/info.json

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

* Update keyboards/kc60se/info.json

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

* Update keyboards/kc60se/info.json

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

* Update keyboards/kc60se/kc60se.h

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

* Update keyboards/kc60se/kc60se.h

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

* Update keyboards/kc60se/kc60se.h

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

* Update keyboards/kc60se/kc60se.h

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

* Update keyboards/kc60se/info.json

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

* set led pin b2 to output mode in matrix_init_kb(), toggle it in led_update_kb()

* Update config.h

I had commented  FORCE_NKRO out.. WHy did it com back?

Co-authored-by: Check your git settings! <chris@chris-laptop>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-02-19 01:12:52 -08:00
1566f0a997 Made windows driver installation accept y as All to allow CI (#8189)
* Made windows driver installation accept y as all to allow CI

* Fix some formatting

* Made None default
2020-02-18 12:05:20 -08:00
8225b172b9 Change the image photo of /keyboards/reviung41/readme.md (#8195)
* Update readme.md

Change the image photo of readme.md.
2020-02-17 20:34:23 -08:00
0f500eb336 MxSS RGB Handler Touchup (#8105)
* Minor fix to improve front LED brightness config

* Updated rgblight.c
2020-02-18 14:05:22 +11:00
675ac4ac4a Centromere Configurator layout support and readme update (#8190)
* Add Configurator layout data

* update readme
2020-02-18 13:04:43 +11:00
79d5903b6c dynamic keymap sanity check (#8181) 2020-02-17 17:54:13 -08:00
a2081171de [keyboard] Austin (#8176)
* Add austin keyboard

* Update to use spi ws2812 driver

* remove rgb
2020-02-18 00:54:15 +00:00
c66930445f Use pathlib everywhere we can (#7872)
* Use pathlib everywhere we can

* Update lib/python/qmk/path.py

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

* Update lib/python/qmk/path.py

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

* Improvements based on @erovia's feedback

* rework qmk compile and qmk flash to use pathlib

* style

* Remove the subcommand_name argument from find_keyboard_keymap()

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-02-17 11:42:11 -08:00
58724f8dcb [Docs] Update Japanese translation of cli.md (#8188) 2020-02-17 11:10:16 -08:00
e7e38fe80e Conform Gherkin defaults to original TMK keymap (#8186)
* Conform defaults to original TMK keymap

* fix swapped PGUP/PGDN (thanks noroadsleft)

* Another typo
2020-02-17 11:08:13 -08:00
0d3f0889c5 Fix os detection in OSX python 3.8 (#8187)
* Fix os detection in osx python 3.8

* oops
2020-02-17 12:18:49 +01:00
79e6b78669 [Keymap] ninjonas keymap updates (#8170)
* [keymap] ninjonas keymap updates

* [refactor(kyria)] updating keymap for numpad layer to be transparent rather than ignores

* [keymap(lily58)] added numpad layer

* [keymap(crkbd)] added numpad layer activated through tapdance

* [fix(8170)] fixing code review changes requested by noroadsleft

* [fix(8170)] updating comments and .md files to use 'Cmd' instead of  and &#8984;
2020-02-17 01:30:03 -08:00
5e79da9f32 [Docs] Update Japanese translation (#8129)
* Update Japanese translation

* Update Japanese translation

Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-02-17 01:03:49 -08:00
umi
bbe8180ad9 [Docs] add japanese translation (detail guide part) (#7722)
* add detail-guide part

* some updates for easy reading

* some updates for easy reading

* some updates for easy reading

* some updates for easy reading

* some updates for easy reading

* some updates for easy reading

* some updates for easy reading

* some updates for easy reading

* update file based on comment

* update file based on comment

* update file based on comment

* update git command in header

* update files based on comments, and update git command in header

* update file based on comment

* update file based on comment

* update file based on comment

* update file based on comment

* update file based on comment

* update file based on comment

* update file based on comment

* update file based on comment

Co-Authored-By: shela <shelaf@users.noreply.github.com>
Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-02-17 00:50:26 -08:00
eabdef3b4d [Keyboard] Add Panc40 by Panc Interactive (#8175)
* Add Panc40 by Panc Interactive

* Fix LAYOUT_sebright macro
2020-02-16 12:14:19 -08:00
e279b0a1a2 Clean up some remaining rules.mk bootloader stuff (#8165) 2020-02-16 11:45:42 -08:00
de462761c9 [Keyboard] VIA Support: DZ60RGB ANSI V1/V2 (#8159)
* add dz60 via support

* use the correct DZ vendor id dervied from dz60

* differentiate product ID of v2 board
2020-02-16 11:42:03 -08:00
17ff551275 Convert f072 backlight build error to message (#8177) 2020-02-16 11:37:21 -08:00
e208cb46ae [Keyboard] Correct Chidori Configurator layout data (#8180) 2020-02-16 11:29:36 -08:00
89c3355fd8 [Keyboard] Add configs for Centromere keyboard (#7467)
* Create readme.md

* Add files for Centromere

* Add keymap files for Centromere

* Add default keymap for Centromere

* Create keymap directory

* Add keymap files

* keymap directory cleanup

* Keyboard keymap directory cleanup

* Update keyboards/centromere/config.h

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

* Update keyboards/centromere/config.h

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

* Update keyboards/centromere/config.h

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

* Update keymap.c

* Update keymap.c

* Update centromere.c

Changed LED control to GPIO functions

* Update centromere.h

* Update rules.mk

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/keymaps/default_u2/keymap.c

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

* Update keyboards/centromere/rules.mk

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

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

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/centromere.c

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/rules.mk

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

* Apply suggestions from code review

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-02-15 21:05:20 -08:00
58101cbb73 fix list_keymaps for python 3.5 2020-02-15 15:19:03 -08:00
512261b343 Pathlib-ify qmk.keymap.list_keymaps() 2020-02-15 15:19:03 -08:00
3db41817e0 Code cleanup, use pathlib, use pytest keyboard
Clean up checks and logics that are unnecessary due to MILC updates.
Use pathlib instead of os.path for readability.
Use the 'pytest' keyboard for the tests.
Add community layout for 'handwired/onekey/pytest' so we can test
community layouts.
2020-02-15 15:19:03 -08:00
8eeab1112a Fix commandline parsing and flake8 findings, rebase
Fixed commandline and config parsing. Thx @xplusplus.
Rebased on master and fixed merge conflicts.
2020-02-15 15:19:03 -08:00
988bfffca2 Major rework, no regex/globbing, more walking
Instead of using regexes and globbing to find the rules.mk and keymap.c
files, walk the directory tree to find them.
Also, do away with the concept of revision.
2020-02-15 15:19:03 -08:00
8ff72d9517 Fix merging community and base keymaps 2020-02-15 15:19:03 -08:00
4445e0a459 Return only the unique keymaps 2020-02-15 15:19:03 -08:00
3ed1223678 Drop bs4 dependency, update docs, minor improvements 2020-02-15 15:19:03 -08:00
d257a98cb8 Fix regex for parsing rules.mk files
I don't know why it couldn't put it together before... ¯\_(ツ)_/¯
2020-02-15 15:19:03 -08:00
f8002828ca Add test for list_keymaps 2020-02-15 15:19:03 -08:00
26f53d38d9 Another major refactoring, add documentation
Move all useful functions to the qmk module and use the cli subcommand
as a wrapper around it.
Add both inline comments and documentation.
2020-02-15 15:19:03 -08:00
f96085af38 Fix output format 2020-02-15 15:19:03 -08:00
e46cc2db8c Try to figure out revision, drop -rv/--revision argument 2020-02-15 15:19:03 -08:00
c3b168e6fd Fix help message. 2020-02-15 15:19:03 -08:00
62c1bcba71 Get all buildable keymaps for each revision
The command now return all keymaps that's buildable for a
keyboard/revision. If the base directory of a keyboard does not contain
a 'rules.mk' file, nothing is returned. If the base directory contains a
'keymaps' directory, those keycaps will be returned for every revision.
2020-02-15 15:19:03 -08:00
057c7d0ffe Major update to work better with revisions
Find the community keymaps supported by each revision.
2020-02-15 15:19:03 -08:00
1d3271999a Add bs4 to requirements.txt
UnicodeDammit is needed from bs4 for reading files.
2020-02-15 15:19:03 -08:00
409c610543 CLI: add support for list_keymaps
List all the available keymaps for a given keyboard
2020-02-15 15:19:03 -08:00
348266bd5b Adding VIA support for 40percentclub/luddite (#8158)
* Adding VIA support for 40percentclub/luddite

* Update config.h

* Update rules.mk

* Delete config.h

config.h was created to override the "default" of RGBLED_NUM 8
deleting the file to keep with defaults

* Removing block and comment as suggested

* Update PRODUCT_ID

Changing from:

 #define PRODUCT_ID      0x0A0C 

To:

 #define PRODUCT_ID      0x4C55 // "LU"

* Changing Vendor ID

Changing Vendor ID from:
#define VENDOR_ID       0xFEED
To:
#define VENDOR_ID       0x3430 // "40"
2020-02-14 11:31:48 -08:00
eb1f99c5f9 [keymap] Update audio controls on community (#8163)
* Update audio controls on community

* Add rules for various boards

* TKL support
2020-02-14 11:03:35 -08:00
4eed0331bf Just60 Configurator layout support and thinxer keymap (#7761)
* Just60 Configurator layout support

* adds thinxer keymap, which is the default keymap with QMK DFU bootloader
2020-02-14 00:42:57 -08:00
66177aa5e0 Add community layout support to Mysterium (#8164) 2020-02-13 22:22:30 -08:00
ac0947c9e8 Convert two handwired default keymaps to Dynamic Macro feature (#8166) 2020-02-13 22:20:18 -08:00
806cd392e7 [osx_neo2] Bugfixes and improvements to Ergodox macOS Neo2 keymap (#8154)
* Use TAPPING_TERM constant (and redefine value to 200ms)
* change TAPPING_TOGGLE to 2 to require two taps to lock in layer 4
* add support for Shift-Command 3/4/5 key combinations that are used in
  macOS Catalina
* avoid false positive tap detecion for RMOD3 when the whole sequence of
  pressing RMOD3, tapping another key and releasing RMOD3 took less than
  TAPPING_TERM milliseconds.
* replace SEND_STRING with tap_code()/tap_code16(), saving ~860 bytes in
  compiled firmware size.
2020-02-14 03:30:32 +00:00
9241d11dc5 [Keymap] Add personal keymap (#7338)
* Copy default config
* Copy and edit Preonic keymap layers
* Update README
2020-02-13 15:35:53 -05:00
31aadc8725 format code according to conventions [skip ci] 2020-02-13 20:09:39 +00:00
014ad1d747 Fix RESET keycode on some STM32F072 keyboards (#8134)
* Add f072 board files with 'enter_bootloader_mode_if_requested' support

* rename default f072 board file to GENERIC_STM32_F072XB

* Remove board files

* Add bootloader def

* Update generic f072 board paths

* Revert wrong deletion
2020-02-13 19:39:22 +00:00
1a77abfe64 Define backlight pin for Quefrency Rev2 (#8141) 2020-02-13 19:36:21 +00:00
667b29b77c Align split_common/matrix.c with matrix.c (#8153) 2020-02-12 11:54:05 +01:00
7740470a94 format code according to conventions [skip ci] 2020-02-12 06:50:23 +00:00
eaf32621aa Align VUSB HID descriptors with LUFA/ChibiOS (#7675)
* Align VUSB HID descriptors with LUFA/ChibiOS

* Wrap send_system and send_consumer in ifdefs too

* Offset system usages to match LUFA/ChibiOS
2020-02-12 17:19:39 +11:00
f318d6fffc VIA support for the Think6.5 (#8118)
* VIA support for Think6.5

* VIA support for Think6.5 Hotswap

* VIA works better with separate layout options

* Remove the colours used to help develop it in KLE

* Pay better attention to the JSON linter

* Update Think6.5 PRODUCT and remove VIA JSON defs
2020-02-12 15:33:29 +11:00
177666cbc8 VIA support for Graystudio Space65 (#8126)
* VIA support for Graystudio Space65

* Update Space65 PRODUCT and remove VIA JSON def
2020-02-12 15:33:05 +11:00
9456832a3b Fix out of bound OLED font access (#8145)
* Fix out of bound OLED font access

The default font is 1344 bytes, or a total of 224 glyphs (each 6-bytes wide).
OLED_FONT_END defaults to 224, which if used will then index off the end of
the font array. So either the documentation or code is wrong.

Instead of figuring out the rewording of the documentation, just change
the OLED_FONT_END default value to 223, to match the documentation and code.

* Add static assert to check array size

Build bomb if the font array size doesn't match to the defines.
2020-02-11 21:38:20 +00:00
78e060f55a VIA Support for the Idobo (ID75) (#8146)
* VIA Support for the Idobo (ID75)

* Implemented the requested PR changes

* Readme was pointing to the wrong board

* Fixed Product ID

* Fixed Manufacturer name

* Better Vendor ID

Using the two 8-bit ASCII values from the keyboard name.

* Removed Bootmagic Lite as enabled anyway by VIA
2020-02-11 12:44:09 -08:00
c53d4ecf32 VIA Support: Duck Eagle V2 (#8133)
* add via keymap

* Update keyboards/duck/eagle_viper/v2/keymaps/via/keymap.c
2020-02-11 10:07:06 -08:00
6a165c41cb [Docs] doc update zh-cn (#8147)
* update zh-cn translate

Timestamp was added at the end of the document, it can help me manage version easier.

* fix _summary.md to utf-8

* fix _summary.md with vscode
2020-02-11 10:05:23 -08:00
387c486e57 Rename Polaris Tsangan layout to 60_tsangan_hhkb and enable community layout support (#8144)
* Rename Polaris Tsangan layout to 60_tsangan_hhkb
2020-02-11 09:47:16 -08:00
a624c439a4 [Keyboard] Fixed inconsistent MATRIX_ROWS and MATRIX_COLS: wsk/gothic50 (#8150) 2020-02-11 15:02:18 +00:00
fba9971555 Align max backlight level in docs (#8142) 2020-02-11 14:59:58 +00:00
310b2f1be4 use replace() over rename() to have cross-platform overwriting (#8148) 2020-02-11 10:37:15 +01:00
1fed214490 Tweak my TAPPING_TERM and be more futureproof (#8143)
* Explicitly undef things I override in keymaps

* Reduce TAPPING_TERM back to default
2020-02-11 03:11:09 +00:00
f4c1e066ba [Keymap] User keymap for KBDfans KBD67 MKII RGB (hot-swap) (#7697)
* initial custom keymap

* initial code for caps lock LED

* added debounce overrides

* override caps lock handler

* finished up on CAPS LOCK LED customization

* lowered debounce

* layer lightning fx

* Added layer tap-toggle

* reformatting

* refined keymap

* copyright and more clean-up

* increased DEBOUNCE

* initial custom keymap

* initial code for caps lock LED

* added debounce overrides

* override caps lock handler

* finished up on CAPS LOCK LED customization

* lowered debounce

* layer lightning fx

* Added layer tap-toggle

* reformatting

* refined keymap

* copyright and more clean-up

* increased DEBOUNCE

* added readme and some more clean-up

* incorporated pull request feedback
2020-02-10 18:05:25 -08:00
4b7d46ced0 [Keyboard] Use DIRECT_PINS instead of empty MATRIX_ROW_PINS: sixshooter (#8130)
* [Keyboard] Use DIRECT_PINS instead of empty MATRIX_ROW_PINS: sixshooter

* [Keyboard] Reform the matrix into 2x3: sixshooter
2020-02-10 17:22:37 -08:00
cabe4dfa72 [Keyboard] VIA Support for Boardwalk (#8124)
* initial commit of VIA Support

* update PRODUCT (and MANUFACTURER) per VIA docs

Reference: https://caniusevia.com/docs/configuring_qmk#change-product

Updated MANUFACTURER so it matches what the PRODUCT says.

* enable Link Time Optimization per mechmerlin

* revert change to USB Product Name

* add two empty layers to via keymap

VIA keymaps need four layers in flash.

* correct the layer indexes

Start from 0, not 1.
2020-02-10 17:14:19 -08:00
5279571e41 Remove zvecr dz60 keymap (#8140) 2020-02-10 12:58:55 -08:00
9398c11b51 Remove tzarc's Luddite keymap. (#8139) 2020-02-10 12:52:40 -08:00
89c528e443 [Keyboard] Add support for Hub16 (#7794)
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-Authored-By: fauxpark <fauxpark@gmail.com>
2020-02-10 14:16:27 +01:00
8f333138f5 [Keyboard] Add support for Polaris (#8123)
* Drop in old files

* Make a blank template keyboard to refresh ancient files to latest config

* Update keymaps files to new format

* Remove chunks of config asked for removal in previous pullreqs

* Remove split pin option from config

* Update rules.mk to latest version

* Remove unused functions from polaris.c

* Add via keymap

* Build basic tsangan keymap; add QMK configurator info

* Remove temporary template

* Update keyboards/ai03/polaris/config.h

* Update keyboards/ai03/polaris/readme.md

* Update keyboards/ai03/polaris/readme.md

* Update keyboards/ai03/polaris/readme.md

* Update rules.mk

* Fixes as per pullreq

* Update keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c

* Update keyboards/ai03/polaris/polaris.h

* Update keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c

* Update keyboards/ai03/polaris/info.json

* Update keyboards/ai03/polaris/keymaps/testing/readme.md
2020-02-10 00:53:16 -08:00
35c4dbe688 New iso layout and keymap for dz60 with 4th row all 1u (#7830)
* Added new iso layout and keymap for dz60 with all 4th row keys 1u in size
2020-02-09 23:53:12 -08:00
c3200aa8fc Compile error if ONESHOT_TIMEOUT defined but oneshot disabled (#8100)
* Compile error if ONESHOT_TIMEOUT defined but oneshot disabled

When ONESHOT_TIMEOUT and NO_ACTION_ONESHOT are both defined, this code
fails to compile.

Wrap the one usage of ONESHOT_TIMEOUT that is inconsistent with the
rest so all usages are properly wrapped by a check of NO_ACTION_ONESHOT.

* Run file through clang-format

Co-authored-by: Ted M Lin <tedmlin@gmail.com>
2020-02-10 04:50:45 +00:00
6052aa499e Use FIRMWARE_FORMAT for "Checking file size" message (#8121) 2020-02-10 04:19:08 +11:00
2fe288d01d [Keymap] Adding ergodash/rev1:nopunin10did (#8098)
* Adding ergodash/rev1:nopunin10did

* Update keyboards/ergodash/rev1/keymaps/nopunin10did/keymap.c

* Update keyboards/ergodash/rev1/keymaps/nopunin10did/keymap.c

* Update keyboards/ergodash/rev1/keymaps/nopunin10did/readme.md
2020-02-08 19:54:10 -08:00
b6e23f974b Update the flash cli command to use the user config (#8125) 2020-02-08 23:58:28 +01:00
174a15d07d Remove PJRC USB stack 2020-02-08 11:07:43 -08:00
5ab0eeb513 [Keyboard] Boardwalk Refactor (#8122)
* refactor keymaps

Create one keymap for each layout macro.

* remove config.h for default keymap

There's nothing in it.

* update readme

- use the new list format
- use a smaller version of the keyboard photo (does the readme really need a 14MP image on it?)
2020-02-08 10:25:50 -08:00
75e7018f72 CI: Add workflow for CLI testing (#7357)
Create GitHub Actions cli test workflow and remove travis runs of 'qmk pytest'
2020-02-08 13:43:55 +01:00
8fe29f2784 Add Prime_L V2 and Prime_EXL Plus (#8111)
* correct indicator light states.

function of indicator lights was inverted. these changes correct that.

* flesh out keymaps pre production

* Enable extrakey in rules

* Prime_BLE initial commit

* Initial commit for Prime_L V2

* Update info.json

correct key spacing.

* update copyright

* Update readme.md

* Inital commit

* updates before PR into QMK master

* Drop Prime_EXL Plus from PR. Make requested changes to Prime_L V2

* Rename keyboards/primekb/Prime_l_v2/config.h to keyboards/primekb/prime_l_v2/config.h

* Rename keyboards/primekb/prime_l_v2/config.h to keyboards/primekb/Prime_l_v2/config.h

* remove directory Prime_l_v2

* re-submit with proper folder name.
2020-02-08 15:03:44 +11:00
dd6f92541d [Keyboard] adding keyboard: neuron (#7980)
* neuron

* Update keyboards/walletburner/neuron/neuron.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/neuron.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/readme.md

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

* Update keyboards/walletburner/neuron/readme.md

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

* Update keyboards/walletburner/neuron/readme.md

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

* Committed review suggestions

* Corrected bootloader to use atmel-dfu

* One last tweak to correct MANUFACTURER

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-02-07 19:42:29 -08:00
610cf729af [Keyboard] adding keyboard: pain27 (#7977)
* pain27

* Applied review suggestions

* Correct DEBOUNCE verbiage, remove .ini files

* Readme tweaks

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-02-07 19:42:03 -08:00
96a4388c43 [Keyboard] adding keyboard: sl40 (#7978)
* sl40

* Amended with collaborator suggestions

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-02-07 19:39:44 -08:00
a86a8a236a [Keyboard] adding keyboard: houndstooth (#7981)
* houndstooth

* Amended with collaborator suggestions

* LAYOUT fixup, left crud in keymap

* Fix missing comma in keymap.c

* Correct RGBLIGHT_ENABLE to no

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-02-07 19:38:20 -08:00
f44a89ca77 [Keyboard] adding keyboard: kodachi50 (#7976)
* kodachi50

* Amendeded with collaborator suggestions

* Add a missing key to layer 2 top row

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-02-07 19:37:46 -08:00
a1a88b8ac7 [Keyboard] adding keyboard: gothic70 (#7982)
* gothic70

* Update keyboards/wsk/gothic70/readme.md

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

* Update keyboards/wsk/gothic70/readme.md

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

* Update keyboards/wsk/gothic70/readme.md

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

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

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

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/config.h

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Committed review suggestions

* Small indicator LED layer function tweak

* Fixing layout for configurator

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>
2020-02-07 19:34:37 -08:00
df029f9660 [Keyboard] adding keyboard: gothic50 (#7983)
* gothic50

* Update keyboards/wsk/gothic50/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/keymaps/default/keymap.c

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

* Update keyboards/wsk/gothic50/readme.md

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

* Update keyboards/wsk/gothic50/readme.md

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

* Update keyboards/wsk/gothic50/readme.md

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

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Updated with collaborator suggestions

* Fixing layout for configurator

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-02-07 19:32:14 -08:00
b62829031d [Keyboard] YMDK NP21: matrix and keymap refactor (#8112)
* YMDK NP21: matrix and keymap refactor

- refactored layout macros
  - LAYOUT_ortho_6x4 orients the keyboard with the USB port to the back instead of to the right
  - LAYOUT uses the previous sideways orientation (included for backwards compatibility)
- removed redundant includes from ymdk_np21.h
- added a readme for the default keymap

* add Configurator layout support
2020-02-07 19:15:35 -08:00
43c0a9293e [Keymap] Added keymap for keebio/nyquist (#8108)
* my custom keymap for nyquist rev3

* Formatted keymap and added readme
2020-02-07 19:07:04 -08:00
4962b743d2 [Keyboard] Port SPLIT_USB_DETECT to lily58 (#8107)
* remove unused files

* Port SPLIT_USB_DETECT to lily58
2020-02-07 19:03:51 -08:00
ea2fcb5b08 [Keymap] Phoebe/Maxr1998 keymap: enable space cadet with curly braces (#8096)
* Phoebe/Maxr1998 keymap: enable space cadet with curly braces

* Revert space cadet for left shift, open curly brace on right shift
2020-02-07 18:54:41 -08:00
fd2ac4b4d5 [Keymap] add lily58 yshrsmz keymap (#8095)
* add lily58 yshrsmz keymap

* apply requested changes

* remove more backslashes

* remove more backslashes

* update rules.mk
2020-02-07 18:53:53 -08:00
7182e9a8ad [Keyboard] Remove i2c write command when reading columns on Ergodox EZ (#8092)
* Remove i2c write command when reading cols on Ergodox EZ

* Comment on mcp23018 address state during read_cols
2020-02-07 18:52:02 -08:00
3b1f29a5d6 [Keyboard] Misc tidyups for Chidori (#8091) 2020-02-07 18:50:42 -08:00
707c04b4ab [Keymap] Add users/alfrdmalr and switch to layouts (#8030)
* WIP do not merge

* first pass at custom preonic layout

* add auto shift and reset via leader key

* Update readme

* update copyright notice

* formatting changes

* fix: use MO instead of process_record_user

* added backslash and moved grave position

* remove extraneous 'j' characer in NUMPAD template

* update template formatting

* remove process_record_user

* swap "!" with "@"

* fix readme formatting

* update readme layout image

* restore settings layer

* add windows minimize sequence

* fix: switch to correct seq function for three-key sequence

* fix: missing semicolon

* refactor: move keymap to userspace and generic 5x12 layout

* add numlock to numpad layer

* add readme

* update readme formatting

* remove unused wrappers from layout keymap

* update readme title to reflect new location

* remove alfrdmalr directory from preonic/keymaps

* clean up user config
2020-02-07 18:42:04 -08:00
be05de6a3d XD84: Configurator bugfix for ISO layout (#8117)
* switch to debug linting

* move ISO Enter to its proper location
2020-02-07 18:16:44 -08:00
889eb51fb5 ZJ68: complete Configurator layout support (#8116)
Only LAYOUT_all had its layout data present; the data for LAYOUT_65_ansi and LAYOUT_65_ansi_split_bs was missing.
2020-02-07 18:09:55 -08:00
e77188458f Add QMK Compile Context Sensitivity (#6884)
* Add context sensitive compile, without config check

* Initial full working state. Plan to refactor

* Refactor loop for simplicity, add comments

* Update docs/cli.md with qmk compile examples

* Simplify path for keyboard derivation

* Update path to use path.join instead of concat

* Refactor keyboard path, the skully way

* Add in keymap folder support

* Add /layouts compile support

* Update docs/cli.md with empty compile in layouts

* Add comments to compile.py

* Update docs for clarity, and fix compile error typo

* Fix config option compile

* Fix layout compile and failure mode

* Add rules.mk check

* Fix variable names for global config

* Add in_layout priority

* Remove default fallback in favor of throw, update docs

* Add keymap folder context

* Fix formatting

* Add os import

* Convert to create_make_command

* Fix Travis lint errors

* Remove blank line with whitespace

* Add blank lines for readability

* Remove unnecessary config logic

* Update Docs to add flash

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

* Shift config precedence to MILC

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
2020-02-07 21:48:37 +01:00
774cbbf879 Refactor ergo42 to use split_common (#7925)
* Initial refactor of ergo42 to split common

* Prevent fallthrough for DIODE_DIRECTION
2020-02-07 13:59:18 +00:00
c93093569e Refactor mint60 to use split_common (#8084) 2020-02-07 13:58:55 +00:00
fb6f581157 jj4x4: README update (#7854)
* Updates README jj4x4

* Update keyboards/jj4x4/README.md

* Update keyboards/jj4x4/README.md

* Update keyboards/jj4x4/README.md

* Update keyboards/jj4x4/README.md

* Update keyboards/jj4x4/README.md
2020-02-07 02:13:53 -08:00
e43d143ab0 [Keyboard] adding keyboard: tkl30 (#7979)
* tkl30

* Amended with collaborator suggestions

* s/DEBOUNCING_DELAY/DEBOUNCE/

* Used noroadsleft's PID suggestion

* Committed noroadsleft's keymap formatting and rules.mk suggestions

* LAYOUT formatting and readme suggestions
2020-02-06 21:28:08 -08:00
a73c38112d Move Grave Escape, Lock and Leader keycodes into their own sect… (#8093) 2020-02-07 15:54:14 +11:00
e3444084fb Committing fix to info.json for wsk/jerkin (#8110) 2020-02-06 21:58:16 -05:00
d84eb14b3a Use function for KEYCODE2 routines instead of macro. (#8101)
* Option to use function for KEYCODE2 routines.

Convert the KEYCODE2SYSTEM and KEYCODE2CONSUMER macros to functions,
defaulting to using the macros.  The function form allows the compiler
to optimize the switch statement itself, over the macro nested
ternaries.

To enable this feature, #define USE_KEYCODE2_FUNCTION.

Testing against a random selection of avr-based keyboards, this
increased available flash by ~500 bytes. For arm-based keyboards,
the available flash increased by ~400 bytes.

* Replace macro with function entirely.

As zvecr states, go bold and just commit to using the function instead
of the macro.

* Reformat whitespace now that functional review is done

Verified against clang-format output.
2020-02-07 12:53:43 +11:00
fe814be287 [keyboard] adding keyboard: jerkin (#7975)
* jerkin

* Update config.h

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <drashna@live.com>
Co-Authored-By: Akaash Suresh <casa.akaash@gmail.com>

* Update rules.mk

* Apply suggestions from code review

* Missing closing parenthesis in one of the suggestions.

* Finalize collaborator suggestions

* One final tweak to standardize MANUFACTURER

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Akaash Suresh <casa.akaash@gmail.com>
2020-02-06 10:55:55 -05:00
6a0e155afe Ergosaurus Configurator support bugfix (#8104)
Corrected the layout macro name in `info.json`.
2020-02-06 13:38:41 +00:00
917eebcfac Xelus Dawn60: layout macro update and Configurator layout support (#8102)
* fix layout macro and update keymaps

K2D switch position is actually physically on the top row, as the right half of a split Backspace.

* add QMK Configurator layout support
2020-02-06 13:33:43 +00:00
de288adb97 VIA Support: 1upkeyboards 1up60rgb (#8097)
* add VIA keymap to 1up60rgb

* change VID to align with other 1up boards
2020-02-05 14:51:58 -08:00
78ae77f307 [Keymap] User keymap for AKB/Raine (#8081)
* Adding my keymap

Adding a personalized keymap to the Raine keyboard. This diffirentiates itself by being useble with nordic characters even when the bottom row has blockers. Also added ASCII art to help visualize what you are doing when programming the board.

* Update Readme.md

Ned image of the board

* Update Readme.md

Forgot a space in Readme

* Update Readme.md

And another missed space

* Update keymap.c

Renoved Definetion that is not used

* Update Readme.md

* Remove files for renaming

* Adding files after renaming

Was unable to get Girthub to push renamed files/folders. Therefore removeing and adding them again.
2020-02-05 12:42:22 -08:00
b015c37922 VIA Support: KBD67 mkii v1/v2 (#8085)
* add the via keymap

* get an appropriate unused VID

* fix formatting up a bit

* Update keyboards/kbdfans/kbd67/mkiirgb/v1/config.h

* Update keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
2020-02-05 12:34:08 -08:00
ae7b208d32 fixup keymap for 65_ansi_blocker (#8099) 2020-02-05 18:29:52 +00:00
9fe0c87e9a [Keyboard] manta60 (#8068)
* manta60_update

* Update config.h

* Update config.h

* Update config.h

* Fixed info and readme

* Fixed config.h

* Fixed rules.mk

* Fixed keymap.c

* Update keyboards/manta60/rules.mk

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

* Fixed keymap.c

* Fixed rules.mk

* Update rules.mk

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

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

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

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

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

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

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

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-02-05 09:14:00 -08:00
b32a9a201d [Keyboard] add Infinity CE (#8067)
* add new pcb Inffinity CE

* update

* Update config.h

PID change, rgb version will be release

* Update config.h

* Update infinityce.c
2020-02-05 09:12:53 -08:00
fb980cf032 [Keyboard] Added Atreus Pro Micro variant (#8059)
* new alternative controller.

* following suggestions at qmk's 8059.

* forgot to replace some underscores and keycodes.

* following drashna's suggestions at qmk's 8059.

* following zvecr's suggestion in qmk's 8059.

* following noroadsleft's suggestion at qmk's 8059.
2020-02-05 08:53:28 -08:00
d3286af398 Add Uni660 Keyboard (#8018)
* UniGo66 keyboard added

* UniGo66 keyboard added

* case correction of unigo66 files

* create sirius folder

* Update keyboards/sirius/unigo66/rules.mk

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/default/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* debugging

* correct keymap to layout

* readme

* remove common config

* suggested changes to config.h

* default keymap cleanup

* bug fixes

* add uni660 keyboard

* remove zip

* remove redundant rules.mk

* remove redundant via keymap

* Update keyboards/sirius/uni660/config.h

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

* Update keyboards/sirius/uni660/config.h

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

* remove unnecessary functions

* fix if

* add back via keymap, remove old eeprom code

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/rules.mk

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

* Update keyboards/sirius/uni660/rules.mk

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

* changes requested for qmk

* Update keyboards/sirius/uni660/rules.mk

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

* Update keyboards/sirius/uni660/rules.mk

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

* Update keyboards/sirius/uni660/rules.mk

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

* debouncing and other minor changes

* Update keyboards/sirius/uni660/uni660.c

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

* Update keyboards/sirius/uni660/uni660.c

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

* Update keyboards/sirius/uni660/uni660.c

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

* Update keyboards/sirius/uni660/uni660.c

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-02-05 16:30:31 +11:00
aed18a5ff3 [Keyboard] Add a new keyboard Chidori. (#7496)
* [Keyboard] Add a new keyboard Chidori.

* Update keyboards/chidori/info.json

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

* Update keyboards/chidori/chidori.h

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/readme.md

* Update keyboards/chidori/readme.md

* Update keyboards/chidori/readme.md

* Update keyboards/chidori/readme.md

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update rules.mk

* Delete unnecesarry lines.

* Changes layer keys handing.
2020-02-04 20:47:59 -08:00
307be48de9 Reduce SPLIT_USB_TIMEOUT by 500ms (#7637)
* Update SPLIT_USB_TIMEOUT -500ms

* Align keyboard level SPLIT_USB_TIMEOUT defaults

* Align keyboard level SPLIT_USB_TIMEOUT_POLL

* Review fixes
2020-02-04 19:37:04 -08:00
a557a5b2c5 [Keyboard] Refactor deltasplit75 to use split_common (#8083)
* Refactor deltasplit75 to use split_common

* Refactor deltasplit75 to use split_common - small tidy up
2020-02-04 18:59:20 -08:00
a6b0a74d95 Add RESET key for default keymap in Satisfaction 75 (#8088) 2020-02-05 13:51:09 +11:00
393937b43f Relocate grave keycode processing (#8082)
* Relocate grave keycode processing

* Tidy up code

* Refactor grave -> grave_esc
2020-02-04 18:49:10 -08:00
efe8bd8e92 [Keyboard] LFKPad refactor (#8079) 2020-02-04 18:41:19 -08:00
74e3cad728 Remove entries for Minidox eep files from gitignore (#8077) 2020-02-04 18:30:57 -08:00
0010d0c45e Add Midi Endpoint task to ChibiOS main (#8071) 2020-02-04 18:28:47 -08:00
8a749a7a8e Encoder brush size (#8087)
* Added brush size to encoder knob as new keymap

* Encoder keymap added
2020-02-05 12:56:50 +11:00
964ed17716 ridingqwerty: userspace update (#8076)
* Userspace overhaul

* Remove testing directory

* Minorca keymap tweaks
2020-02-04 20:17:10 +01:00
50554ca270 Ninjonas userspace (#8070)
* [keymap(kyria)] moved OLED & encoder implementation to separate classes

* [feat] created logic to cycle through hue wheel when starting keyboard

* [feat] created logic to cycle through hue wheel and return to user's default color

* [refactor] updating OLED layout for crkbd & lily58

* [refactor] updating OLED layout for crkbd & lily58

* [fix(8070)] updating encoder.c logic based off drashna's code review

* [refactor(8070)] added key to send  + Shift + M
2020-02-04 12:50:50 +11:00
c6f389b527 Merlin's userspace updates (#8074) 2020-02-03 22:37:01 +01:00
5780c94423 Improve the functionality of qmk.questions (#8020)
* wip

* tested and working

* remove unused import

* Update lib/python/qmk/questions.py

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

* fix flake8 errors

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-02-03 09:04:58 -08:00
acef512730 [Keymap] Add User Keymap for FC660C (#8062)
* add my keymaps

* tri layer keymap

* update tri layer

* update tri layer

* cleaning up

* formatting

* move to correct location

* lily58: move caps off mod key in sublayer

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

* remove unnecessary trailing whacks

* remove unneeded file

* swap spacebar

* update code for comments in PR

* add fc660c keymap

* rm readme

* move layer key

* remove inconvenient alternate keys

* swap format

* add them media keys

* add rules mk

* swap caps and ctrl

* remove unneeded config

* use gesc instead of esc
2020-02-02 13:11:17 -08:00
75d4ff7d51 Prevent fallthrough for DIODE_DIRECTION 2020-01-17 18:55:24 +00:00
952e805edb Initial refactor of ergo42 to split common 2020-01-17 18:50:58 +00:00
1634 changed files with 80784 additions and 25715 deletions

28
.github/workflows/cli.yml vendored Normal file
View File

@ -0,0 +1,28 @@
name: CLI CI
on:
push:
branches:
- master
- future
pull_request:
paths:
- 'lib/python/**'
- 'bin/qmk'
- 'requirements.txt'
- '.github/workflows/cli.yml'
jobs:
test:
runs-on: ubuntu-latest
container: qmkfm/base_container
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: Install dependencies
run: pip3 install -r requirements.txt
- name: Run tests
run: bin/qmk pytest

6
.gitignore vendored
View File

@ -63,9 +63,6 @@ util/Win_Check_Output.txt
*.gif
*.jpg
# Do not ignore MiniDox left/right hand eeprom files
!keyboards/minidox/*.eep
# things travis sees
secrets.tar
id_rsa_*
@ -73,3 +70,6 @@ id_rsa_*
# python things
__pycache__
# prerequisites for updating ChibiOS
/util/fmpp*

4
.gitmodules vendored
View File

@ -1,13 +1,15 @@
[submodule "lib/chibios"]
path = lib/chibios
url = https://github.com/qmk/ChibiOS
branch = master
[submodule "lib/chibios-contrib"]
path = lib/chibios-contrib
url = https://github.com/qmk/ChibiOS-Contrib
branch = k-type-fix
branch = master
[submodule "lib/ugfx"]
path = lib/ugfx
url = https://github.com/qmk/uGFX
branch = master
[submodule "lib/googletest"]
path = lib/googletest
url = https://github.com/google/googletest

View File

@ -5,7 +5,8 @@
// Configure glob patterns for excluding files and folders.
"files.exclude": {
"**/.build": true,
"**/*.hex": true
"**/*.hex": true,
"**/*.bin": true
},
"files.associations": {
"*.h": "c",

View File

@ -623,13 +623,19 @@ endif
# Generate the version.h file
ifndef SKIP_GIT
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
CHIBIOS_VERSION := $(shell cd lib/chibios && git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
CHIBIOS_CONTRIB_VERSION := $(shell cd lib/chibios-contrib && git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
else
GIT_VERSION := NA
CHIBIOS_VERSION := NA
CHIBIOS_CONTRIB_VERSION := NA
endif
ifndef SKIP_VERSION
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
else
BUILD_DATE := NA
endif

View File

@ -23,4 +23,4 @@ endif
# Generate the keymap.c
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
bin/qmk json-keymap --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)
bin/qmk json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)

View File

@ -141,6 +141,10 @@ else
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F072xB
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
OPT_DEFS += -DEEPROM_DRIVER
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
else
# This will effectively work the same as "transient" if not supported by the chip
SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c
@ -159,7 +163,6 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgblight.c
CIE1931_CURVE := yes
LED_BREATHING_TABLE := yes
RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes)
OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
@ -304,17 +307,21 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
COMMON_VPATH += $(QUANTUM_DIR)/backlight
SRC += $(QUANTUM_DIR)/backlight/backlight.c
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
OPT_DEFS += -DBACKLIGHT_ENABLE
ifeq ($(strip $(BACKLIGHT_DRIVER)), custom)
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
else ifeq ($(strip $(BACKLIGHT_DRIVER)), software)
SRC += $(QUANTUM_DIR)/backlight/backlight_soft.c
else
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/backlight/backlight_avr.c
SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c
ifeq ($(strip $(BACKLIGHT_DRIVER)), pwm)
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/backlight/backlight_avr.c
else
SRC += $(QUANTUM_DIR)/backlight/backlight_arm.c
endif
else
SRC += $(QUANTUM_DIR)/backlight/backlight_arm.c
SRC += $(QUANTUM_DIR)/backlight/backlight_$(strip $(BACKLIGHT_DRIVER)).c
endif
endif
endif
@ -350,11 +357,6 @@ ifeq ($(strip $(CIE1931_CURVE)), yes)
LED_TABLES := yes
endif
ifeq ($(strip $(LED_BREATHING_TABLE)), yes)
OPT_DEFS += -DUSE_LED_BREATHING_TABLE
LED_TABLES := yes
endif
ifeq ($(strip $(LED_TABLES)), yes)
SRC += $(QUANTUM_DIR)/led_tables.c
endif
@ -420,6 +422,12 @@ ifeq ($(strip $(LEADER_ENABLE)), yes)
OPT_DEFS += -DLEADER_ENABLE
endif
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dip_switch.c
OPT_DEFS += -DDIP_SWITCH_ENABLE
endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
QUANTUM_SRC:= \
@ -505,12 +513,13 @@ ifeq ($(strip $(MAGIC_ENABLE)), yes)
OPT_DEFS += -DMAGIC_KEYCODE_ENABLE
endif
GRAVE_ESC_ENABLE ?= yes
ifeq ($(strip $(GRAVE_ESC_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_grave_esc.c
OPT_DEFS += -DGRAVE_ESC_ENABLE
endif
ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c
OPT_DEFS += -DDYNAMIC_MACRO_ENABLE
endif
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dip_switch.c
OPT_DEFS += -DDIP_SWITCH_ENABLE
endif

View File

@ -0,0 +1,75 @@
# QMK Breaking Change - 2020 Feb 29 Changelog
Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.
## Update ChibiOS/ChibiOS-Contrib/uGFX submodules
* General Notes
* A `make git-submodule` may be required after pulling the latest QMK firmware code to update affected submodules to the upgraded revisions
* Enabling link-time-optimization (`LINK_TIME_OPTIMIZATION_ENABLE = yes`) should work on a lot more boards
* Upgrade to ChibiOS ver19.1.3
* This will allow QMK to update to upstream ChibiOS a lot easier -- the old version was ~2 years out of date. Automated update scripts have been made available to simplify future upgrades.
* Includes improved MCU support and bugfixes
* ChibiOS revision is now included in Command output
* Timers should now be more accurate
* Upgrade to newer ChibiOS-Contrib
* Also includes improved MCU support and bugfixes
* ChibiOS-Contrib revision is now included in Command output
* Upgrade to newer uGFX
* Required in order to support updated ChibiOS
## Fix ChibiOS timer overflow for 16-bit SysTick devices
* On 16-bit SysTick devices, the timer subsystem in QMK was incorrectly dealing with overflow.
* When running at a 100000 SysTick frequency (possible on 16-bit devices, but uncommon), this overflow would occur after 0.65 seconds.
* Timers are now correctly handling this overflow case and timing should now be correct on ChibiOS/ARM.
## Update LUFA submodule
* Updates the LUFA submodule to include updates from upstream (abcminiuser/lufa)
* Includes some cleanup for QMK DFU generation
## Encoder flip
* Flips the encoder direction so that `clockwise == true` is for actually turning the knob clockwise
* Adds `ENCODER_DIRECTION_FLIP` define, so that reversing the expected dirction is simple for users.
* Cleans up documentation page for encoders
## Adding support for `BACKLIGHT_ON_STATE` for hardware PWM backlight
* Previously, the define only affected software PWM, and hardware PWM always assumed an N-channel MOSFET.
* The hardware PWM backlight setup has been updated to respect this option.
* The default "on" state has been changed to `1` - **this impacts all keyboards using software PWM backlight that do not define it explicitly**. If your keyboard's backlight is acting strange, it may have a P-channel MOSFET, and will need to have `#define BACKLIGHT_ON_STATE 0` added to the keyboard-level `config.h`. Please see the PR for more detailed information.
## Migrating `ACTION_LAYER_TAP_KEY()` entries in `fn_actions` to `LT()` keycodes
* `fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()`
* The end result of removing this obsolete feature should result in a decent reduction in firmware size and code complexity
* All keymaps affected are recommended to switch away from `fn_actions` in favour of the [custom keycode](https://docs.qmk.fm/#/custom_quantum_functions) and [macro](https://docs.qmk.fm/#/feature_macros) features
## Moving backlight keycode handling to `process_keycode/`
* This refactors the backlight keycode logic to be clearer and more modular.
* All backlight-related keycodes are now actioned in a single file.
* The `ACTION_BACKLIGHT_*` macros have also been deleted. If you are still using these in a `fn_actions[]` block, please switch to using the backlight keycodes or functions directly.
## Refactor Planck keymaps to use Layout Macros
* Refactor Planck keymaps to use layout macros instead of raw matrix assignments
* Makes keymaps revision-agnostic
* Should reduce noise and errors in Travis CI logs
## GON NerD codebase refactor
* Splits the codebase for GON NerD 60 and NerdD TKL PCBs into two separate directories.
* If your keymap is for a NerD 60 PCB, your `make` command is now `make gon/nerd60:<keymap>`.
* If your keymap is for a NerD TKL PCB, your `make` command is now `make gon/nerdtkl:<keymap>`.

View File

@ -9,24 +9,35 @@
## What is QMK Firmware?
QMK (*Quantum Mechanical Keyboard*) is an open source community that maintains QMK Firmware, QMK Toolbox, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB.
QMK (*Quantum Mechanical Keyboard*) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices. A core group of collaborators maintains [QMK Firmware](https://github.com/qmk/qmk_firmware), [QMK Configurator](https://config.qmk.fm), [QMK Toolbox](https://github.com/qmk/qmk_toolbox), [qmk.fm](https://qmk.fm), and this documentation with the help of community members like you.
## How to Get It
## Get Started
If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is [fork the repo through Github](https://github.com/qmk/qmk_firmware#fork-destination-box), and clone your repo locally to make your changes, push them, then open a [Pull Request](https://github.com/qmk/qmk_firmware/pulls) from your fork.
Totally new to QMK? There are two ways to get started:
Otherwise, you can clone it directly with `git clone https://github.com/qmk/qmk_firmware`. Do not download the zip or tar files; a git repository is required to download the submodules in order to compile.
* Basic: [QMK Configurator](https://config.qmk.fm)
* Just select your keyboard from the dropdown and program your keyboard.
* We have an [introductory video](https://www.youtube.com/watch?v=-imgglzDMdY) you can watch.
* There is also an overview [document you can read](newbs_building_firmware_configurator.md).
* Advanced: [Use The Source](newbs.md)
* More powerful, but harder to use
## How to Compile
## Make It Yours
Before you are able to compile, you'll need to [install an environment](getting_started_build_tools.md) for AVR or/and ARM development. Once that is complete, you'll use the `make` command to build a keyboard and keymap with the following notation:
QMK has lots of [features](features.md) to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md).
make planck/rev4:default
## Need help?
This would build the `rev4` revision of the `planck` with the `default` keymap. Not all keyboards have revisions (also called subprojects or folders), in which case, it can be omitted:
Check out the [support page](support.md) to see how you can get help using QMK.
make preonic:default
## Give Back
## How to Customize
There are a lot of ways you can contribute to the QMK Community. The easiest way to get started is to use it and spread the word to your friends.
QMK has lots of [features](features.md) to explore, and a good deal of [reference documentation](http://docs.qmk.fm) to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md).
* Help people out on our forums and chat rooms:
* [/r/olkb](https://www.reddit.com/r/olkb/)
* [Discord Server](https://discord.gg/Uq7gcHh)
* Contribute to our documentation by clicking "Edit This Page" at the bottom
* [Translate our documentation into your language](translating.md)
* [Report a bug](https://github.com/qmk/qmk_firmware/issues/new/choose)
* [Open a Pull Request](contributing.md)

View File

@ -1,130 +1,162 @@
* [Complete Newbs Guide](newbs.md)
* [Getting Started](newbs_getting_started.md)
* Tutorial
* [Introduction](newbs.md)
* [Setup](newbs_getting_started.md)
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Testing and Debugging](newbs_testing_debugging.md)
* [Best Git Practices](newbs_git_best_practices.md)
* [Using Your Fork's Master](newbs_git_using_your_master_branch.md)
* [Resolving Merge Conflicts](newbs_git_resolving_merge_conflicts.md)
* [Resynchronizing a Branch](newbs_git_resynchronize_a_branch.md)
* [Learning Resources](newbs_learn_more_resources.md)
* [Getting Help/Support](support.md)
* [Other Resources](newbs_learn_more_resources.md)
* [QMK Basics](README.md)
* [QMK Introduction](getting_started_introduction.md)
* [QMK CLI](cli.md)
* [QMK CLI Config](cli_configuration.md)
* [Contributing to QMK](contributing.md)
* [How to Use Github](getting_started_github.md)
* [Getting Help](getting_started_getting_help.md)
* [Breaking Changes](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* [2019 Aug 30](ChangeLog/20190830.md)
* [FAQ](faq.md)
* FAQs
* [General FAQ](faq_general.md)
* [Build/Compile QMK](faq_build.md)
* [Debugging/Troubleshooting QMK](faq_debug.md)
* [Keymap](faq_keymap.md)
* [Driver Installation with Zadig](driver_installation_zadig.md)
* Detailed Guides
* [Install Build Tools](getting_started_build_tools.md)
* [Vagrant Guide](getting_started_vagrant.md)
* [Build/Compile Instructions](getting_started_make_guide.md)
* [Flashing Firmware](flashing.md)
* [Customizing Functionality](custom_quantum_functions.md)
* [Keymap Overview](keymap.md)
* [Hardware](hardware.md)
* [Compatible Microcontrollers](compatible_microcontrollers.md)
* [AVR Processors](hardware_avr.md)
* [Drivers](hardware_drivers.md)
* Reference
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* [Config Options](config_options.md)
* [Keycodes](keycodes.md)
* [Coding Conventions - C](coding_conventions_c.md)
* [Coding Conventions - Python](coding_conventions_python.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Keymap FAQ](faq_keymap.md)
* [Glossary](reference_glossary.md)
* [Unit Testing](unit_testing.md)
* [Useful Functions](ref_functions.md)
* [Configurator Support](reference_configurator_support.md)
* [info.json Format](reference_info_json.md)
* [Python CLI Development](cli_development.md)
* [Features](features.md)
* [Basic Keycodes](keycodes_basic.md)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* [Quantum Keycodes](quantum_keycodes.md)
* [Advanced Keycodes](feature_advanced_keycodes.md)
* [Audio](feature_audio.md)
* [Auto Shift](feature_auto_shift.md)
* [Backlight](feature_backlight.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md)
* [Combos](feature_combo.md)
* [Command](feature_command.md)
* [Debounce API](feature_debounce_type.md)
* [DIP Switch](feature_dip_switch.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Encoders](feature_encoders.md)
* [Grave Escape](feature_grave_esc.md)
* [Haptic Feedback](feature_haptic_feedback.md)
* [HD44780 LCD Controller](feature_hd44780.md)
* [Key Lock](feature_key_lock.md)
* [Layouts](feature_layouts.md)
* [Leader Key](feature_leader_key.md)
* [LED Matrix](feature_led_matrix.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [OLED Driver](feature_oled_driver.md)
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)
* [Pointing Device](feature_pointing_device.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [RGB Lighting](feature_rgblight.md)
* [RGB Matrix](feature_rgb_matrix.md)
* [Space Cadet](feature_space_cadet.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Terminal](feature_terminal.md)
* [Thermal Printer](feature_thermal_printer.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [Velocikey](feature_velocikey.md)
* Configurator
* [Overview](newbs_building_firmware_configurator.md)
* [Step by Step](configurator_step_by_step.md)
* [Troubleshooting](configurator_troubleshooting.md)
* [Problems and Bugs](configurator_problems.md)
* QMK API
* [Overview](api_overview.md)
* [API Documentation](api_docs.md)
* [Keyboard Support](reference_configurator_support.md)
* For Makers and Modders
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* [ARM Debugging Guide](arm_debugging.md)
* [ADC Driver](adc_driver.md)
* [I2C Driver](i2c_driver.md)
* [WS2812 Driver](ws2812_driver.md)
* [EEPROM Driver](eeprom_driver.md)
* [GPIO Controls](internals_gpio_control.md)
* [Custom Matrix](custom_matrix.md)
* [Proton C Conversion](proton_c_conversion.md)
* CLI
* [Overview](cli.md)
* [Configuration](cli_configuration.md)
* [Commands](cli_commands.md)
* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
* [Understanding QMK](understanding_qmk.md)
* Using QMK
* Guides
* [Customizing Functionality](custom_quantum_functions.md)
* [Driver Installation with Zadig](driver_installation_zadig.md)
* [Keymap Overview](keymap.md)
* [Vagrant Guide](getting_started_vagrant.md)
* Flashing
* [Flashing](flashing.md)
* [Flashing ATmega32A (ps2avrgb)](flashing_bootloadhid.md)
* IDEs
* [Using Eclipse with QMK](other_eclipse.md)
* [Using VSCode with QMK](other_vscode.md)
* Git Best Practices
* [Introduction](newbs_git_best_practices.md)
* [Your Fork](newbs_git_using_your_master_branch.md)
* [Merge Conflicts](newbs_git_resolving_merge_conflicts.md)
* [Fixing Your Branch](newbs_git_resynchronize_a_branch.md)
* Keyboard Building
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* Other Topics
* [Using Eclipse with QMK](other_eclipse.md)
* [Using VSCode with QMK](other_vscode.md)
* [Support](support.md)
* [Translating the QMK Docs](translating.md)
* Simple Keycodes
* [Full List](keycodes.md)
* [Basic Keycodes](keycodes_basic.md)
* [Layer Switching](feature_advanced_keycodes.md)
* [Quantum Keycodes](quantum_keycodes.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md)
* [Send Functions](internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md)
* Advanced Keycodes
* [Command](feature_command.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Grave Escape](feature_grave_esc.md)
* [Leader Key](feature_leader_key.md)
* [Mod-Tap](mod_tap.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [Space Cadet Shift](feature_space_cadet.md)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* Software Features
* [Auto Shift](feature_auto_shift.md)
* [Combos](feature_combo.md)
* [Debounce API](feature_debounce_type.md)
* [Key Lock](feature_key_lock.md)
* [One Shot Keys](one_shot_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Tap-Hold Configuration](tap_hold.md)
* [Terminal](feature_terminal.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* Hardware Features
* Displays
* [HD44780 LCD Controller](feature_hd44780.md)
* [OLED Driver](feature_oled_driver.md)
* Lighting
* [Backlight](feature_backlight.md)
* [LED Matrix](feature_led_matrix.md)
* [RGB Lighting](feature_rgblight.md)
* [RGB Matrix](feature_rgb_matrix.md)
* [Audio](feature_audio.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md)
* [Custom Matrix](custom_matrix.md)
* [DIP Switch](feature_dip_switch.md)
* [Encoders](feature_encoders.md)
* [Haptic Feedback](feature_haptic_feedback.md)
* [Proton C Conversion](proton_c_conversion.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
* [Thermal Printer](feature_thermal_printer.md)
* [Velocikey](feature_velocikey.md)
* Developing QMK
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* History
* [2020 Feb 29](ChangeLog/20200229.md)
* [2019 Aug 30](ChangeLog/20190830.md)
* C Development
* [ARM Debugging Guide](arm_debugging.md)
* [AVR Processors](hardware_avr.md)
* [Coding Conventions](coding_conventions_c.md)
* [Compatible Microcontrollers](compatible_microcontrollers.md)
* [Drivers](hardware_drivers.md)
* [ADC Driver](adc_driver.md)
* [I2C Driver](i2c_driver.md)
* [WS2812 Driver](ws2812_driver.md)
* [EEPROM Driver](eeprom_driver.md)
* [GPIO Controls](internals_gpio_control.md)
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* Python Development
* [Coding Conventions](coding_conventions_python.md)
* [QMK CLI Development](cli_development.md)
* [QMK CLI Config](cli_dev_configuration.md)
* Configurator Development
* QMK API
* [Development Environment](api_development_environment.md)
* [Architecture Overview](api_development_overview.md)
* QMK Reference
* [Contributing to QMK](contributing.md)
* [Translating the QMK Docs](translating.md)
* [Config Options](config_options.md)
* [Make Documentation](getting_started_make_guide.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Community Layouts](feature_layouts.md)
* [Unit Testing](unit_testing.md)
* [Useful Functions](ref_functions.md)
* [info.json Format](reference_info_json.md)
* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
* [How a Matrix Works](how_a_matrix_works.md)
* [Understanding QMK](understanding_qmk.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md)
* [Send Functions](internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md)

View File

@ -2,7 +2,7 @@
QMK can leverage the Analog-to-Digital Converter (ADC) on supported MCUs to measure voltages on certain pins. This can be useful for implementing things such as battery level indicators for Bluetooth keyboards, or volume controls using a potentiometer, as opposed to a [rotary encoder](feature_encoders.md).
This driver is currently AVR-only. The values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 3.3V).
This driver currently supports both AVR and a limited selection of ARM devices. On AVR devices, the values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 3.3V). On supported ARM devices, there is more flexibility in control of operation through `#define`s, but by default the values returned are 12-bit integers (0-4095) mapped between 0V and VCC (usually 3.3V).
## Usage
@ -20,6 +20,8 @@ Then place this include at the top of your code:
## Channels
### AVR
|Channel|AT90USB64/128|ATmega16/32U4|ATmega32A|ATmega328P|
|-------|-------------|-------------|---------|----------|
|0 |`F0` |`F0` |`A0` |`C0` |
@ -39,8 +41,84 @@ Then place this include at the top of your code:
<sup>\* The ATmega328P possesses two extra ADC channels; however, they are not present on the DIP pinout, and are not shared with GPIO pins. You can use `adc_read()` directly to gain access to these.</sup>
### ARM
Note that some of these pins are doubled-up on ADCs with the same channel. This is because the pins can be used for either ADC.
Also note that the F0 and F3 use different numbering schemes. The F0 has a single ADC and the channels are 0-based, whereas the F3 has 4 ADCs and the channels are 1 based. This is because the F0 uses the `ADCv1` implementation of the ADC, whereas the F3 uses the `ADCv3` implementation.
|ADC|Channel|STM32F0XX|STM32F3XX|
|---|-------|---------|---------|
|1 |0 |`A0` | |
|1 |1 |`A1` |`A0` |
|1 |2 |`A2` |`A1` |
|1 |3 |`A3` |`A2` |
|1 |4 |`A4` |`A3` |
|1 |5 |`A5` |`F4` |
|1 |6 |`A6` |`C0` |
|1 |7 |`A7` |`C1` |
|1 |8 |`B0` |`C2` |
|1 |9 |`B1` |`C3` |
|1 |10 |`C0` |`F2` |
|1 |11 |`C1` | |
|1 |12 |`C2` | |
|1 |13 |`C3` | |
|1 |14 |`C4` | |
|1 |15 |`C5` | |
|1 |16 | | |
|2 |1 | |`A4` |
|2 |2 | |`A5` |
|2 |3 | |`A6` |
|2 |4 | |`A7` |
|2 |5 | |`C4` |
|2 |6 | |`C0` |
|2 |7 | |`C1` |
|2 |8 | |`C2` |
|2 |9 | |`C3` |
|2 |10 | |`F2` |
|2 |11 | |`C5` |
|2 |12 | |`B2` |
|2 |13 | | |
|2 |14 | | |
|2 |15 | | |
|2 |16 | | |
|3 |1 | |`B1` |
|3 |2 | |`E9` |
|3 |3 | |`E13` |
|3 |4 | | |
|3 |5 | | |
|3 |6 | |`E8` |
|3 |7 | |`D10` |
|3 |8 | |`D11` |
|3 |9 | |`D12` |
|3 |10 | |`D13` |
|3 |11 | |`D14` |
|3 |12 | |`B0` |
|3 |13 | |`E7` |
|3 |14 | |`E10` |
|3 |15 | |`E11` |
|3 |16 | |`E12` |
|4 |1 | |`E14` |
|4 |2 | |`B12` |
|4 |3 | |`B13` |
|4 |4 | |`B14` |
|4 |5 | |`B15` |
|4 |6 | |`E8` |
|4 |7 | |`D10` |
|4 |8 | |`D11` |
|4 |9 | |`D12` |
|4 |10 | |`D13` |
|4 |11 | |`D14` |
|4 |12 | |`D8` |
|4 |13 | |`D9` |
|4 |14 | | |
|4 |15 | | |
|4 |16 | | |
## Functions
### AVR
|Function |Description |
|----------------------------|-------------------------------------------------------------------------------------------------------------------|
|`analogReference(mode)` |Sets the analog voltage reference source. Must be one of `ADC_REF_EXTERNAL`, `ADC_REF_POWER` or `ADC_REF_INTERNAL`.|
@ -48,3 +126,28 @@ Then place this include at the top of your code:
|`analogReadPin(pin)` |Reads the value from the specified QMK pin, eg. `F6` for ADC6 on the ATmega32U4. |
|`pinToMux(pin)` |Translates a given QMK pin to a mux value. If an unsupported pin is given, returns the mux value for "0V (GND)". |
|`adc_read(mux)` |Reads the value from the ADC according to the specified mux. See your MCU's datasheet for more information. |
### ARM
Note that care was taken to match all of the functions used for AVR devices, however complications in the ARM platform prevent that from always being possible. For example, the `STM32` chips do not have assigned Arduino pins. We could use the default pin numbers, but those numbers change based on the package type of the device. For this reason, please specify your target pins with their identifiers (`A0`, `F3`, etc.). Also note that there are some variants of functions that accept the target ADC for the pin. Some pins can be used for multiple ADCs, and this specified can help you pick which ADC will be used to interact with that pin.
|Function |Description |
|----------------------------|--------------------------------------------------------------------------------------------------------------------|
|`analogReadPin(pin)` |Reads the value from the specified QMK pin, eg. `A0` for channel 0 on the STM32F0 and ADC1 channel 1 on the STM32F3. Note that if a pin can be used for multiple ADCs, it will pick the lower numbered ADC for this function. eg. `C0` will be channel 6 of ADC 1 when it could be used for ADC 2 as well.|
|`analogReadPinAdc(pin, adc)`|Reads the value from the specified QMK pin and ADC, eg. `C0, 1` will read from channel 6, ADC 2 instead of ADC 1. Note that the ADCs are 0-indexed for this function.|
|`pinToMux(pin)` |Translates a given QMK pin to a channel and ADC combination. If an unsupported pin is given, returns the mux value for "0V (GND)".|
|`adc_read(mux)` |Reads the value from the ADC according to the specified pin and adc combination. See your MCU's datasheet for more information.|
## Configuration
## ARM
The ARM implementation of the ADC has a few additional options that you can override in your own keyboards and keymaps to change how it operates.
|`#define` |Type |Default |Description|
|-------------------|------|---------------------|-----------|
|ADC_CIRCULAR_BUFFER|`bool`|`false` |If `TRUE`, then the implementation will use a circular buffer.|
|ADC_NUM_CHANNELS |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`.|
|ADC_BUFFER_DEPTH |`int` |`2` |Sets the depth of each result. Since we are only getting a 12-bit result by default, we set this to `2` bytes so we can contain our one value. This could be set to 1 if you opt for a 8-bit or lower result.|
|ADC_SAMPLING_RATE |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.|
|ADC_RESOLUTION |`int` |`ADC_CFGR1_RES_12BIT`|The resolution of your result. We choose 12 bit by default, but you can opt for 12, 10, 8, or 6 bit. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.|

View File

@ -0,0 +1,3 @@
# Development Environment Setup
To setup a development stack head over to the [qmk_web_stack](https://github.com/qmk/qmk_web_stack).

View File

@ -0,0 +1,44 @@
# QMK Compiler Development Guide
This page attempts to introduce developers to the QMK Compiler. It does not go into nitty gritty details- for that you should read code. What this will give you is a framework to hang your understanding on as you read the code.
# Overview
The QMK Compile API consists of a few movings parts:
![Architecture Diagram](https://raw.githubusercontent.com/qmk/qmk_api/master/docs/architecture.svg)
API Clients interact exclusively with the API service. This is where they submit jobs, check status, and download results. The API service inserts compile jobs into [Redis Queue](https://python-rq.org) and checks both RQ and S3 for the results of those jobs.
Workers fetch new compile jobs from RQ, compile them, and then upload the source and the binary to an S3 compatible storage engine.
# Workers
QMK Compiler Workers are responsible for doing the actual building. When a worker pulls a job from RQ it does several things to complete that job:
* Make a fresh qmk_firmware checkout
* Use the supplied layers and keyboard metadata to build a `keymap.c`
* Build the firmware
* Zip a copy of the source
* Upload the firmware, source zip, and a metadata file to S3.
* Report the status of the job to RQ
# API Service
The API service is a relatively simple Flask application. There are a few main views you should understand.
## @app.route('/v1/compile', methods=['POST'])
This is the main entrypoint for the API. A client's interaction starts here. The client POST's a JSON document describing their keyboard, and the API does some (very) basic validation of that JSON before submitting the compile job.
## @app.route('/v1/compile/&lt;string:job_id&gt;', methods=['GET'])
This is the most frequently called endpoint. It pulls the job details from redis, if they're still available, or the cached job details on S3 if they're not.
## @app.route('/v1/compile/&lt;string:job_id&gt;/download', methods=['GET'])
This method allows users to download the compiled firmware file.
## @app.route('/v1/compile/&lt;string:job_id&gt;/source', methods=['GET'])
This method allows users to download the source for their firmware.

68
docs/api_docs.md Normal file
View File

@ -0,0 +1,68 @@
# QMK API
This page describes using the QMK API. If you are an application developer you can use this API to compile firmware for any [QMK](https://qmk.fm) Keyboard.
## Overview
This service is an asynchronous API for compiling custom keymaps. You POST some JSON to the API, periodically check the status, and when your firmware has finished compiling you can download the resulting firmware and (if desired) source code for that firmware.
#### Example JSON Payload:
```json
{
"keyboard": "clueboard/66/rev2",
"keymap": "my_awesome_keymap",
"layout": "LAYOUT_all",
"layers": [
["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],
["KC_ESC","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12","KC_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
]
}
```
As you can see the payload describes all aspects of a keyboard necessary to create and generate a firmware. Each layer is a single list of QMK keycodes the same length as the keyboard's `LAYOUT` macro. If a keyboard supports mulitple `LAYOUT` macros you can specify which macro to use.
## Submitting a Compile Job
To compile your keymap into a firmware simply POST your JSON to the `/v1/compile` endpoint. In the following example we've placed the JSON payload into a file named `json_data`.
```
$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://api.qmk.fm/v1/compile
{
"enqueued": true,
"job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6"
}
```
## Checking The Status
After submitting your keymap you can check the status using a simple HTTP GET call:
```
$ curl http://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6
{
"created_at": "Sat, 19 Aug 2017 21:39:12 GMT",
"enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT",
"id": "f5f9b992-73b4-479b-8236-df1deb37c163",
"status": "running",
"result": null
}
```
This shows us that the job has made it through the queue and is currently running. There are 5 possible statuses:
* **failed**: Something about the compiling service has broken.
* **finished**: The compilation is complete and you should check `result` to see the results.
* **queued**: The keymap is waiting for a compilation server to become available.
* **running**: The compilation is in progress and should be complete soon.
* **unknown**: A serious error has occurred and you should [file a bug](https://github.com/qmk/qmk_compiler/issues).
## Examining Finished Results
Once your compile job has finished you'll check the `result` key. The value of this key is a hash containing several key bits of information:
* `firmware_binary_url`: A list of URLs for the the flashable firmware
* `firmware_keymap_url`: A list of URLs for the the `keymap.c`
* `firmware_source_url`: A list of URLs for the full firmware source code
* `output`: The stdout and stderr for this compile job. Errors will be found here.

15
docs/api_overview.md Normal file
View File

@ -0,0 +1,15 @@
# QMK API
The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by [QMK](http://qmk.fm/). The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality.
## App Developers
If you are an app developer interested in using this API in your application you should head over to [Using The API](api_docs.md).
## Keyboard Maintainers
If you would like to enhance your keyboard's support in the QMK Compiler API head over to the [Keyboard Support](reference_configurator_support.md) section.
## Backend Developers
If you are interested in working on the API itself you should start by setting up a [Development Environment](api_development_environment.md), then check out [Hacking On The API](api_development_overview.md).

View File

@ -1,9 +0,0 @@
# Becoming a QMK Collaborator
A QMK collaborator is a keyboard maker or designer that is interested in helping QMK grow and fully support their keyboard(s), and encouraging their users and customers to submit features, ideas, and keymaps. We're always looking to add more keyboards and collaborators, but we ask that they fulfill these requirements:
* **Have a PCB available for sale.** Unfortunately there's just too much variation and complications with handwired keyboards.
* **Maintain your keyboard in QMK.** This may just require an initial setup to get your keyboard working, but it could also include accommodating changes made to QMK's core that might break or render any custom code redundant.
* **Approve and merge keymap pull requests for your keyboard.** We like to encourage users to contribute their keymaps for others to see and work from when creating their own.
If you feel you meet these requirements, shoot us an email at hello@qmk.fm with an introduction and some links to your keyboard!

View File

@ -6,20 +6,21 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
* [2020 Feb 29](ChangeLog/20200229.md)
* [2019 Aug 30](ChangeLog/20190830.md)
## When is the next Breaking Change?
The next Breaking Change is scheduled for February 29, 2020.
The next Breaking Change is scheduled for May 30, 2020.
### Important Dates
* [x] 2019 Sep 21 - `future` is created. It will be rebased weekly.
* [x] 2020 Feb 1 - `future` closed to new PR's.
* [x] 2020 Feb 1 - Call for testers.
* [ ] 2020 Feb 26 - `master` is locked, no PR's merged.
* [ ] 2020 Feb 28 - Merge `future` to `master`.
* [ ] 2020 Feb 29 - `master` is unlocked. PR's can be merged again.
* [x] 2020 Feb 29 - `future` is created. It will be rebased weekly.
* [ ] 2020 May 2 - `future` closed to new PR's.
* [ ] 2020 May 2 - Call for testers.
* [ ] 2020 May 28 - `master` is locked, no PR's merged.
* [ ] 2020 May 30 - Merge `future` to `master`.
* [ ] 2020 May 30 - `master` is unlocked. PR's can be merged again.
## What changes will be included?

View File

@ -71,17 +71,39 @@ There are some limitations to the local CLI compared to the global CLI:
## `qmk cformat`
This command formats C code using clang-format. Run it with no arguments to format all core code, or pass filenames on the command line to run it on specific files.
This command formats C code using clang-format.
**Usage**:
Run it with no arguments to format all core code that has been changed. Default checks `origin/master` with `git diff`, branch can be changed using `-b <branch_name>`
Run it with `-a` to format all core code, or pass filenames on the command line to run it on specific files.
**Usage for specified files**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
**Usage for all core files**:
```
qmk cformat -a
```
**Usage for only changed files against origin/master**:
```
qmk cformat
```
**Usage for only changed files against branch_name**:
```
qmk cformat -b branch_name
```
## `qmk compile`
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm> or compile keymaps in the repo.
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm>, compile keymaps in the repo, or compile the keyboard in the current working directory.
**Usage for Configurator Exports**:
@ -95,11 +117,57 @@ qmk compile <configuratorExport.json>
qmk compile -kb <keyboard_name> -km <keymap_name>
```
**Usage in Keyboard Directory**:
Must be in keyboard directory with a default keymap, or in keymap directory for keyboard, or supply one with `--keymap <keymap_name>`
```
qmk compile
```
**Example**:
```
$ qmk config compile.keymap=default
$ cd ~/qmk_firmware/keyboards/planck/rev6
$ qmk compile
Ψ Compiling keymap with make planck/rev6:default
...
```
or with optional keymap argument
```
$ cd ~/qmk_firmware/keyboards/clueboard/66/rev4
$ qmk compile -km 66_iso
Ψ Compiling keymap with make clueboard/66/rev4:66_iso
...
```
or in keymap directory
```
$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
$ qmk compile
Ψ Compiling keymap with make make gh60/satan:colemak
...
```
**Usage in Layout Directory**:
Must be under `qmk_firmware/layouts/`, and in a keymap folder.
```
qmk compile -kb <keyboard_name>
```
**Example**:
```
$ cd ~/qmk_firmware/layouts/community/60_ansi/mechmerlin-ansi
$ qmk compile -kb dz60
Ψ Compiling keymap with make dz60:mechmerlin-ansi
...
```
## `qmk flash`
This command is similar to `qmk compile`, but can also target a bootloader. The bootloader is optional, and is set to `:flash` by default.
To specify a different bootloader, use `-bl <bootloader>`. Visit <https://docs.qmk.fm/#/flashing>
for more details of the available bootloaders.
To specify a different bootloader, use `-bl <bootloader>`. Visit the [Flashing Firmware](flashing.md) guide for more details of the available bootloaders.
**Usage for Configurator Exports**:
@ -163,14 +231,14 @@ Check your environment and report problems only:
qmk doctor -n
## `qmk json-keymap`
## `qmk json2c`
Creates a keymap.c from a QMK Configurator export.
**Usage**:
```
qmk json-keymap [-o OUTPUT] filename
qmk json2c [-o OUTPUT] filename
```
## `qmk kle2json`
@ -205,6 +273,16 @@ This command lists all the keyboards currently defined in `qmk_firmware`
qmk list-keyboards
```
## `qmk list-keymaps`
This command lists all the keymaps for a specified keyboard (and revision).
**Usage**:
```
qmk list-keymaps -kb planck/ez
```
## `qmk new-keymap`
This command creates a new keymap based on a keyboard's existing default keymap.

View File

@ -4,7 +4,7 @@ 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.
Configuration for the 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

View File

@ -53,6 +53,8 @@ This is a C header file that is one of the first things included, and will persi
* pins of the rows, from top to bottom
* `#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }`
* pins of the columns, from left to right
* `#define MATRIX_IO_DELAY 30`
* the delay in microseconds when between changing matrix pin state and reading values
* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
* pins unused by the keyboard for reference
* `#define MATRIX_HAS_GHOST`
@ -78,7 +80,7 @@ This is a C header file that is one of the first things included, and will persi
* `#define BACKLIGHT_PIN B7`
* pin of the backlight
* `#define BACKLIGHT_LEVELS 3`
* number of levels your backlight will have (maximum 15 excluding off)
* number of levels your backlight will have (maximum 31 excluding off)
* `#define BACKLIGHT_BREATHING`
* enables backlight breathing
* `#define BREATHING_PERIOD 6`
@ -134,20 +136,22 @@ If you define these options you will enable the associated feature, which may in
* enables handling for per key `TAPPING_TERM` settings
* `#define RETRO_TAPPING`
* tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
* See [Retro Tapping](feature_advanced_keycodes.md#retro-tapping) for details
* See [Retro Tapping](tap_hold.md#retro-tapping) for details
* `#define TAPPING_TOGGLE 2`
* how many taps before triggering the toggle
* `#define PERMISSIVE_HOLD`
* makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the `TAPPING_TERM`
* See [Permissive Hold](feature_advanced_keycodes.md#permissive-hold) for details
* See [Permissive Hold](tap_hold.md#permissive-hold) for details
* `#define PERMISSIVE_HOLD_PER_KEY`
* enabled handling for per key `PERMISSIVE_HOLD` settings
* `#define IGNORE_MOD_TAP_INTERRUPT`
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the `TAPPING_TERM` for both keys.
* See [Mod tap interrupt](feature_advanced_keycodes.md#ignore-mod-tap-interrupt) for details
* See [Ignore Mod Tap Interrupt](tap_hold.md#ignore-mod-tap-interrupt) for details
* `#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
* enables handling for per key `IGNORE_MOD_TAP_INTERRUPT` settings
* `#define TAPPING_FORCE_HOLD`
* makes it possible to use a dual role key as modifier shortly after having been tapped
* See [Hold after tap](feature_advanced_keycodes.md#tapping-force-hold)
* See [Tapping Force Hold](tap_hold.md#tapping-force-hold)
* Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
* `#define TAPPING_FORCE_HOLD_PER_KEY`
* enables handling for per key `TAPPING_FORCE_HOLD` settings
@ -186,6 +190,8 @@ If you define these options you will enable the associated feature, which may in
* pin the DI on the WS2812 is hooked-up to
* `#define RGBLIGHT_ANIMATIONS`
* run RGB animations
* `#define RGBLIGHT_LAYERS`
* Lets you define [lighting layers](feature_rgblight.md) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state.
* `#define RGBLED_NUM 12`
* number of LEDs
* `#define RGBLIGHT_SPLIT`
@ -276,9 +282,12 @@ There are a few different ways to set handedness for split keyboards (listed in
* Default behavior for ARM
* Required for AVR Teensy
* `#define SPLIT_USB_TIMEOUT 2500`
* `#define SPLIT_USB_TIMEOUT 2000`
* Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`
* `#define SPLIT_USB_TIMEOUT_POLL 10`
* Poll frequency 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.
@ -328,7 +337,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* `bootloadHID`
* `USBasp`
## Feature Options
## Feature Options :id=feature-options
Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU.

View File

@ -0,0 +1,58 @@
# QMK Configurator: Step by Step
This page describes the steps for building your firmware in QMK Configurator.
## Step 1: Select Your Keyboard
Click the drop down box and select the keyboard you want to create a keymap for.
?> If your keyboard has several versions, make sure you select the correct one.
I'll say that again because it's important:
!> **MAKE SURE YOU SELECT THE RIGHT VERSION!**
If your keyboard has been advertised to be powered by QMK but is not in the list, chances are a developer hasn't gotten to it yet or we haven't had a chance to merge it in yet. File an issue at [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) requesting to support that particular keyboard, if there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) for it. There are also QMK powered keyboards that are in their manufacturer's own github accounts. Double check for that as well. <!-- FIXME(skullydazed): This feels too wordy and I'm not sure we want to encourage these kinds of issues. Also, should we prompt them to bug the manufacutrer? -->
## Step 2: Select Your Keyboard Layout
Choose the layout that best represents the keymap you want to create. Some keyboards do not have enough layouts or correct layouts defined yet. They will be supported in the future.
!> Sometimes there isn't a layout that supports your exact build. In that case select `LAYOUT_all`.
## Step 3: Name Your Keymap
Call this keymap what you want.
?> If you are running into issues when compiling, it may be worth changing this name, as it may already exist in the QMK Firmware repo.
## Step 4: Define Your Keymap
Keycode Entry is accomplished in one of 3 ways:
1. Drag and drop
2. Clicking on an empty spot on the layout, then clicking the keycode you desire
3. Clicking on an empty spot on the layout, then pressing the physical key on your keyboard
?> Hover your mouse over a key and a short blurb will tell you what that keycode does. For a more verbose description please see:
* [Basic Keycode Reference](keycodes_basic.md)
* [Advanced Keycode Reference](feature_advanced_keycodes.md)
!> If your selected layout doesn't match your physical build leave the unused keys blank. If you're not sure which key is in use, for example you have a one backspace key but `LAYOUT_all` has 2 keys, put the same keycode in both locations.
## Step 5: Save Your Keymap for Future Changes
When you're satisfied with your keymap or just want to work on it later, press the `Export Keymap` button. It will save your keymap to your computer. You can then load this .json file in the future by pressing the `Import Keymap` button.
!> **CAUTION:** This is not the same type of .json file used for kbfirmware.com or any other tool. If you try to use this for those tools, or the .json from those tools with QMK Configurator, you will encounter problems.
## Step 6: Compile Your Firmware File
Press the green `Compile` button.
When the compilation is done, you will be able to press the green `Download Firmware` button.
## Next steps: Flashing Your Keyboard
Please refer to [Flashing Firmware](newbs_flashing.md).

View File

@ -0,0 +1,26 @@
# Configurator Troubleshooting
## My .json file is not working
If the .json file was generated with QMK Configurator, congratulations you have stumbled upon a bug. File an issue at [qmk_configurator](https://github.com/qmk/qmk_configurator/issues).
If not... how did you miss the big bold message at the top saying not to use other .json files?
## There are extra spaces in my layout? What do I do?
If you're referring to having three spots for space bar, the best course of action is to just fill them all with Space. The same can be done for Backspace and Shift keys.
## What is the keycode for...
Please see:
* [Basic Keycode Reference](keycodes_basic.md)
* [Advanced Keycode Reference](feature_advanced_keycodes.md)
## It won't compile
Please double check the other layers of your keymap to make sure there are no random keys present.
## Problems and Bugs
We are always accepting customer requests and bug reports. Please file them at [qmk_configurator](https://github.com/qmk/qmk_configurator/issues).

View File

@ -101,7 +101,7 @@ enum my_keycodes {
};
```
### Previewing the Documentation
### Previewing the Documentation :id=previewing-the-documentation
Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder:

View File

@ -4,7 +4,7 @@ For a lot of people a custom keyboard is about more than sending button presses
This page does not assume any special knowledge about QMK, but reading [Understanding QMK](understanding_qmk.md) will help you understand what is going on at a more fundamental level.
## A Word on Core vs Keyboards vs Keymap
## A Word on Core vs Keyboards vs Keymap :id=a-word-on-core-vs-keyboards-vs-keymap
We have structured QMK as a hierarchy:
@ -34,7 +34,7 @@ enum my_keycodes {
};
```
## Programming the Behavior of Any Keycode
## Programming the Behavior of Any Keycode :id=programming-the-behavior-of-any-keycode
When you want to override the behavior of an existing key, or define the behavior for a new key, you should use the `process_record_kb()` and `process_record_user()` functions. These are called by QMK during key processing before the actual key event is handled. If these functions return `true` QMK will process the keycodes as usual. That can be handy for extending the functionality of a key rather than replacing it. If these functions return `false` QMK will skip the normal key handling, and it will be up to you to send any key up or down events that are required.
@ -313,7 +313,7 @@ void suspend_wakeup_init_user(void) {
* Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
* Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
# Layer Change Code
# Layer Change Code :id=layer-change-code
This runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling.

View File

@ -77,7 +77,7 @@
* [Macros](de/feature_macros.md)
* [Mouse Keys](de/feature_mouse_keys.md)
* [OLED Driver](de/feature_oled_driver.md)
* [One Shot Keys](de/feature_advanced_keycodes.md#one-shot-keys)
* [One Shot Keys](de/one_shot_keys.md)
* [Pointing Device](de/feature_pointing_device.md)
* [PS/2 Mouse](de/feature_ps2_mouse.md)
* [RGB Lighting](de/feature_rgblight.md)
@ -108,7 +108,7 @@
* Andere Themen
* [Eclipse mit QMK](de/other_eclipse.md)
* [VSCode mit QMK](de/other_vscode.md)
* [Support](de/support.md)
* [Support](de/getting_started_getting_help.md)
* [Übersetzungen](de/translating.md)
* QMK Internals (In Progress)

View File

@ -2,7 +2,7 @@
This page documents the templates you should use when submitting new Keymaps and Keyboards to QMK.
## Keymap `readme.md` Template
## Keymap `readme.md` Template :id=keyboard-readmemd-template
Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](http://imgur.com) or another hosting service, please do not include images in your Pull Request.

View File

@ -2,14 +2,16 @@
The EEPROM driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present.
Driver | Description
--------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`EEPROM_DRIVER = vendor` | Uses the on-chip driver provided by the chip manufacturer. For AVR, this is provided by avr-libc. This is supported on ARM for a subset of chips -- STM32F3xx, STM32F1xx, and STM32F072xB will be emulated by writing to flash. Other chips will generally act as "transient" below.
`EEPROM_DRIVER = i2c` | Supports writing to I2C-based 24xx EEPROM chips. See the driver section below.
`EEPROM_DRIVER = transient` | Fake EEPROM driver -- supports reading/writing to RAM, and will be discarded when power is lost.
Driver | Description
-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`EEPROM_DRIVER = vendor` (default) | Uses the on-chip driver provided by the chip manufacturer. For AVR, this is provided by avr-libc. This is supported on ARM for a subset of chips -- STM32F3xx, STM32F1xx, and STM32F072xB will be emulated by writing to flash. STM32L0xx and STM32L1xx will use the onboard dedicated true EEPROM. Other chips will generally act as "transient" below.
`EEPROM_DRIVER = i2c` | Supports writing to I2C-based 24xx EEPROM chips. See the driver section below.
`EEPROM_DRIVER = transient` | Fake EEPROM driver -- supports reading/writing to RAM, and will be discarded when power is lost.
## Vendor Driver Configuration
!> Resetting EEPROM using an STM32L0/L1 device takes up to 1 second for every 1kB of internal EEPROM used.
No configurable options are available.
## I2C Driver Configuration

View File

@ -77,7 +77,7 @@
* [Macros](es/feature_macros.md)
* [Teclas del ratón](es/feature_mouse_keys.md)
* [Driver OLED](es/feature_oled_driver.md)
* [Teclas One Shot](es/feature_advanced_keycodes.md#one-shot-keys)
* [Teclas One Shot](es/one_shot_keys.md)
* [Dispositivo de apuntado](es/feature_pointing_device.md)
* [Ratón PS/2](es/feature_ps2_mouse.md)
* [Iluminación RGB](es/feature_rgblight.md)
@ -108,7 +108,7 @@
* Otros temas
* [Usando Eclipse con QMK](es/other_eclipse.md)
* [Usando VSCode con QMK](es/other_vscode.md)
* [Soporte](es/support.md)
* [Soporte](es/getting_started_getting_help.md)
* [Cómo añadir traducciones](es/translating.md)
* QMK Internals (En progreso)

View File

@ -1,9 +0,0 @@
# Llegar a ser un colaborador QMK
Un colaborador QMK es un maker o diseñador de teclados que tiene interés en ayudar a QMK a crecer y mantener sus teclado(s), y alentar a los usuarios y clientes a presentar herramientas, ideas, y keymaps. Siempre procuramos agregar más teclados y colaboradores, pero pedimos que cumplan los siguientes requisitos:
* **Tener un PCB disponible a la venta.** Desafortunadamente, hay demasiada variación y complicaciones con teclados cableados a mano.
* **Realizar el mantenimiento de tu teclado en QMK.** Este podría requirir un setup inicial para hacer que tu teclado funcione, pero también podría incluir adaptarse a cambios hecho al base de QMK que podrían descomponer o rendir código superfluo.
* **Aprobar e incorporar pull requests de keymaps para tu teclado.** Nos gusta alentar a los usuarios a contribuir sus keymaps para que otros los vean y los puedan usar para crear sus propios.
Si sientes que cumples los requisitos, ¡mándanos un email a hello@qmk.fm con una introducción y algunos enlaces para tu teclado!

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