Commit Graph

1205 Commits

Author SHA1 Message Date
bfb2f8e0a8 Add Word Per Minute calculation feature (#8054)
* Add Word Per Minute calculation feature

* Fix copyright info

* Remove header from quantum.c, setup overloadable keycode inclusion for WPM, update docs

* Simplify logic for keycode filtering

* Adding link from summary to wpm_feature info

* Update docs/feature_wpm.md

Typo in function prototype example in docs

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

* Add WPM transport via i2c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-23 00:06:16 +11:00
d8f3c28a37 Align some ChibiOS build logic (#8461)
* Align some ChibiOS build logic

* infer more makefile logic

* Move bootloader logic to chibios file
2020-03-22 20:48:17 +11:00
eef0cb2f90 Add US International keymap (#8493)
* Add US International keymap

* Add extra spacing to UK AltGr keycode comments
2020-03-22 20:45:27 +11:00
63e4ad13c8 Add Icelandic keymap and sendstring LUT (#8494) 2020-03-22 20:16:24 +11:00
f9e67338a4 Add Finnish keymap and sendstring LUT (#8495) 2020-03-22 19:52:54 +11:00
147bc6ec43 Remove BOOTLOADER_SIZE stuff from template (#8516) 2020-03-22 08:50:37 +01:00
789e199450 Add support for Bootmagic lite when using SPLIT_HAND_PIN (#8347)
* Add support for Bootmagic lite when using SPLIT_HAND_PIN

* Deduplicate bootmagic_lite logic from within via

* Revert location of defaults so that user overrides still work for now

* Tidy up code slightly
2020-03-21 23:10:39 +00:00
d96380e654 Initial arm->chibios pass - simplify some platform logic (#8450) 2020-03-21 16:20:04 +11:00
5d5ff807c6 Update JIS keymap and sendstring LUT (#8457) 2020-03-20 12:27:52 +11:00
6bfbdc30ca Fix missing deprecated keycodes for keymap_swedish (#8483) 2020-03-19 02:13:05 +00:00
fc4ef6934d Update Programmer Dvorak keymap and add sendstring LUT (#8456)
* Update Programmer Dvorak keymap and add sendstring LUT

* Include quantum.h
2020-03-18 11:11:57 -07:00
c670240503 Update UK keymap and sendstring LUT (#8458) 2020-03-17 17:09:12 -07:00
7aff643031 Update Italian keymap and add sendstring LUT (#8438) 2020-03-16 14:32:48 +00:00
7fe4097792 Update German keymap and sendstring LUT (#8437) 2020-03-16 14:31:48 +00:00
652f4492d3 Update French keymap and sendstring LUT (#8436) 2020-03-16 14:30:57 +00:00
910c466cfe Update Brazilian keymap and add sendstring LUT (#8435) 2020-03-16 14:30:17 +00:00
5f1f370463 Update Belgian keymap and sendstring LUT (#8349) 2020-03-16 07:41:34 +11:00
49a2fbea0c Update Slovenian keymap and add sendstring LUT (#8350) 2020-03-16 07:40:54 +11:00
4b1430fd09 Update Norman keymap and sendstring LUT (#8404) 2020-03-16 07:38:05 +11:00
f1c6fa3895 Update Plover keymap (#8405) 2020-03-16 07:37:32 +11: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
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
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
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
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
5e3951b361 Remove NO_UART defines from config.h for V-USB boards (#8351) 2020-03-09 19:58:25 +00: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
829906969c Update Norwegian keymap and add sendstring LUT (#8300) 2020-03-08 15:43:05 +11: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
5e1ce3988d Remove unused LED_BREATHING_TABLE 2020-03-06 22:29:01 -08: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
53ac4d214f Update Hungarian keymap and add sendstring LUT (#8220) 2020-03-03 11:55:42 +11: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
88356c85c4 Prune out pure software pwm && custom driver && remove wrapping BACKLIGHT_PIN (#8041) 2020-03-01 20:22:13 +00: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
26eef35f07 2020 February 29 Breaking Changes Update (#8064) 2020-02-29 11:59:30 -08:00
444fd3b1cc Add support for delays in send_string. (#8244) 2020-02-27 20:38:19 +11: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
bb8d4b4d23 send_unicode_string(): Add support for code points > 0xFFFF (#8236) 2020-02-25 12:54:51 +11:00
371ff9dd6f A proper send_string() for the Unicode feature (#8155) 2020-02-24 10:27:25 +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
032fbf3f24 Add Danish keymap and sendstring LUT (#8218) 2020-02-21 14:40:28 +01: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
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