summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common_features.mk1
-rw-r--r--docs/feature_key_lock.md3
-rw-r--r--docs/keycodes.md1
-rw-r--r--docs/keycodes_magic.md1
-rw-r--r--keyboards/40percentclub/ut47/matrix.c6
-rw-r--r--keyboards/ai03/orbit/config.h13
-rw-r--r--keyboards/ai03/orbit/keymaps/default/keymap.c16
-rw-r--r--keyboards/ai03/orbit/matrix.c328
-rw-r--r--keyboards/ai03/orbit/orbit.c270
-rw-r--r--keyboards/ai03/orbit/orbit.h17
-rw-r--r--keyboards/ai03/orbit/readme.md6
-rw-r--r--keyboards/ai03/orbit/rules.mk10
-rw-r--r--keyboards/ai03/orbit/serial.c545
-rw-r--r--keyboards/ai03/orbit/serial.h62
-rw-r--r--keyboards/ai03/orbit/split_flags.c5
-rw-r--r--keyboards/ai03/orbit/split_flags.h15
-rw-r--r--keyboards/ai03/orbit/split_util.c87
-rw-r--r--keyboards/ai03/orbit/split_util.h10
-rw-r--r--keyboards/ai03/orbit/transport.c238
-rw-r--r--keyboards/ai03/orbit/transport.h42
-rw-r--r--keyboards/amj96/matrix.c6
-rw-r--r--keyboards/angel64/alpha/matrix.c7
-rw-r--r--keyboards/angel64/rev1/matrix.c7
-rw-r--r--keyboards/bpiphany/kitten_paw/matrix.c7
-rw-r--r--keyboards/bpiphany/pegasushoof/2013/matrix.c7
-rw-r--r--keyboards/converter/palm_usb/matrix.c7
-rw-r--r--keyboards/converter/sun_usb/matrix.c7
-rw-r--r--keyboards/converter/usb_usb/custom_matrix.cpp4
-rw-r--r--keyboards/dc01/arrow/matrix.c8
-rw-r--r--keyboards/dc01/left/matrix.c8
-rw-r--r--keyboards/dc01/numpad/matrix.c8
-rw-r--r--keyboards/dc01/right/matrix.c8
-rw-r--r--keyboards/dm9records/ergoinu/config.h10
-rw-r--r--keyboards/dm9records/ergoinu/ergoinu.c17
-rw-r--r--keyboards/dm9records/ergoinu/ergoinu.h5
-rw-r--r--keyboards/dm9records/ergoinu/keymaps/default/config.h24
-rw-r--r--keyboards/dm9records/ergoinu/keymaps/default/keymap.c49
-rw-r--r--keyboards/dm9records/ergoinu/keymaps/default/rules.mk23
-rw-r--r--keyboards/dm9records/ergoinu/keymaps/default_jis/config.h24
-rw-r--r--keyboards/dm9records/ergoinu/keymaps/default_jis/keymap.c42
-rw-r--r--keyboards/dm9records/ergoinu/keymaps/default_jis/rules.mk23
-rw-r--r--keyboards/dm9records/ergoinu/matrix.c292
-rw-r--r--keyboards/dm9records/ergoinu/post_rules.mk9
-rw-r--r--keyboards/dm9records/ergoinu/readme.md9
-rw-r--r--keyboards/dm9records/ergoinu/rules.mk26
-rw-r--r--keyboards/dm9records/ergoinu/serial.c295
-rw-r--r--keyboards/dm9records/ergoinu/serial.h24
-rw-r--r--keyboards/dm9records/ergoinu/serial_config.h11
-rw-r--r--keyboards/dm9records/ergoinu/split_util.c56
-rw-r--r--keyboards/dm9records/ergoinu/split_util.h12
-rw-r--r--keyboards/duck/jetfire/matrix.c6
-rw-r--r--keyboards/ergodox_stm32/matrix.c4
-rw-r--r--keyboards/ergotaco/matrix.c5
-rw-r--r--keyboards/gboards/gergoplex/matrix.c5
-rw-r--r--keyboards/georgi/matrix.c5
-rw-r--r--keyboards/gergo/matrix.c5
-rw-r--r--keyboards/handwired/dactyl/matrix.c8
-rw-r--r--keyboards/handwired/frenchdev/matrix.c6
-rw-r--r--keyboards/handwired/not_so_minidox/config.h5
-rw-r--r--keyboards/handwired/not_so_minidox/i2c.c162
-rw-r--r--keyboards/handwired/not_so_minidox/i2c.h46
-rw-r--r--keyboards/handwired/not_so_minidox/keymaps/default/keymap.c56
-rw-r--r--keyboards/handwired/not_so_minidox/matrix.c308
-rw-r--r--keyboards/handwired/not_so_minidox/rules.mk23
-rw-r--r--keyboards/handwired/not_so_minidox/serial.c228
-rw-r--r--keyboards/handwired/not_so_minidox/serial.h23
-rw-r--r--keyboards/handwired/not_so_minidox/split_util.c84
-rw-r--r--keyboards/handwired/not_so_minidox/split_util.h17
-rw-r--r--keyboards/handwired/promethium/matrix.c8
-rw-r--r--keyboards/handwired/pterodactyl/matrix.c8
-rw-r--r--keyboards/handwired/wakizashi40/config.h20
-rw-r--r--keyboards/handwired/wakizashi40/info.json88
-rw-r--r--keyboards/handwired/wakizashi40/keymaps/default/keymap.c44
-rw-r--r--keyboards/handwired/wakizashi40/keymaps/via/keymap.c92
-rw-r--r--keyboards/handwired/wakizashi40/keymaps/via/rules.mk4
-rw-r--r--keyboards/handwired/wakizashi40/readme.md19
-rw-r--r--keyboards/handwired/wakizashi40/rules.mk1
-rw-r--r--keyboards/helix/pico/matrix.c6
-rw-r--r--keyboards/helix/rev1/matrix.c6
-rw-r--r--keyboards/helix/rev2/matrix.c6
-rw-r--r--keyboards/hhkb/ansi/matrix.c9
-rw-r--r--keyboards/hhkb/jp/matrix.c9
-rwxr-xr-xkeyboards/hid_liber/matrix.c6
-rw-r--r--keyboards/kinesis/alvicstep/matrix.c6
-rw-r--r--keyboards/matrix/m20add/m20add.c19
-rw-r--r--keyboards/meira/matrix.c6
-rw-r--r--keyboards/nek_type_a/matrix.c8
-rwxr-xr-xkeyboards/redscarf_iiplus/verb/matrix.c7
-rwxr-xr-xkeyboards/redscarf_iiplus/verc/matrix.c7
-rw-r--r--keyboards/redscarf_iiplus/verd/matrix.c7
-rw-r--r--keyboards/sirius/unigo66/custom_matrix.cpp4
-rw-r--r--keyboards/sixkeyboard/matrix.c5
-rw-r--r--keyboards/sx60/matrix.c8
-rw-r--r--keyboards/thedogkeyboard/matrix.c7
-rw-r--r--keyboards/yanghu/unicorne/config.h6
-rw-r--r--keyboards/yosino58/rev1/matrix.c6
-rw-r--r--platforms/avr/drivers/i2c_master.c7
-rw-r--r--platforms/chibios/drivers/i2c_master.c59
-rw-r--r--platforms/chibios/drivers/i2c_master.h61
-rw-r--r--quantum/debounce.h2
-rw-r--r--quantum/debounce/asym_eager_defer_pk.c1
-rw-r--r--quantum/debounce/none.c2
-rw-r--r--quantum/debounce/sym_defer_g.c2
-rw-r--r--quantum/debounce/sym_defer_pk.c1
-rw-r--r--quantum/debounce/sym_eager_pk.c1
-rw-r--r--quantum/debounce/sym_eager_pr.c1
-rw-r--r--quantum/matrix.h2
-rw-r--r--quantum/matrix_common.c6
-rw-r--r--quantum/process_keycode/process_key_lock.c5
-rw-r--r--quantum/process_keycode/process_key_lock.h1
-rw-r--r--quantum/process_keycode/process_magic.c4
-rw-r--r--quantum/quantum.c4
-rw-r--r--quantum/quantum.h4
-rw-r--r--quantum/quantum_keycodes.h3
-rw-r--r--readme.md4
-rw-r--r--tmk_core/protocol/usb_descriptor.c2
-rw-r--r--tmk_core/protocol/vusb/vusb.c1
117 files changed, 577 insertions, 3725 deletions
diff --git a/common_features.mk b/common_features.mk
index 8c593024f0..56a9a286ea 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -604,6 +604,7 @@ ifeq ($(strip $(UNICODE_ENABLE)), yes)
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
+ OPT_DEFS += -DUNICODE_COMMON_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
diff --git a/docs/feature_key_lock.md b/docs/feature_key_lock.md
index 8e6e29f0e6..7681394229 100644
--- a/docs/feature_key_lock.md
+++ b/docs/feature_key_lock.md
@@ -19,4 +19,5 @@ First, enable Key Lock by setting `KEY_LOCK_ENABLE = yes` in your `rules.mk`. Th
Key Lock is only able to hold standard action keys and [One Shot modifier](one_shot_keys.md) keys (for example, if you have your Shift defined as `OSM(KC_LSFT)`).
This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as `KC_LPRN`. If it's in the [Basic Keycodes](keycodes_basic.md) list, it can be held.
-Switching layers will not cancel the Key Lock.
+Switching layers will not cancel the Key Lock. The Key Lock can be cancelled by calling the `cancel_key_lock()` function.
+
diff --git a/docs/keycodes.md b/docs/keycodes.md
index ba06e1b8b6..2ea4fc74e2 100644
--- a/docs/keycodes.md
+++ b/docs/keycodes.md
@@ -326,6 +326,7 @@ See also: [Magic Keycodes](keycodes_magic.md)
|----------------------------------|---------|--------------------------------------------------------------------------|
|`MAGIC_SWAP_CONTROL_CAPSLOCK` |`CL_SWAP`|Swap Caps Lock and Left Control |
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` |`CL_NORM`|Unswap Caps Lock and Left Control |
+|`MAGIC_TOGGLE_CONTROL_CAPSLOCK` |`CL_TOGG`|Toggle Caps Lock and Left Control swap |
|`MAGIC_CAPSLOCK_TO_CONTROL` |`CL_CTRL`|Treat Caps Lock as Control |
|`MAGIC_UNCAPSLOCK_TO_CONTROL` |`CL_CAPS`|Stop treating Caps Lock as Control |
|`MAGIC_SWAP_LCTL_LGUI` |`LCG_SWP`|Swap Left Control and GUI |
diff --git a/docs/keycodes_magic.md b/docs/keycodes_magic.md
index 7e1b1a4f62..01eb69168e 100644
--- a/docs/keycodes_magic.md
+++ b/docs/keycodes_magic.md
@@ -6,6 +6,7 @@
|----------------------------------|---------|--------------------------------------------------------------------------|
|`MAGIC_SWAP_CONTROL_CAPSLOCK` |`CL_SWAP`|Swap Caps Lock and Left Control |
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` |`CL_NORM`|Unswap Caps Lock and Left Control |
+|`MAGIC_TOGGLE_CONTROL_CAPSLOCK` |`CL_TOGG`|Toggle Caps Lock and Left Control swap |
|`MAGIC_CAPSLOCK_TO_CONTROL` |`CL_CTRL`|Treat Caps Lock as Control