If multiple sticky keys with quick release were nested, only the first one
was properly released. This fix makes sure all of them are released properly.
Fixes https://github.com/zmkfirmware/zmk/issues/1149
To combine multiple sticky modifiers, the sticky keys must ignore
other (sticky) modifier keypresses.
This behavior is important for "callum-style mods", where all modifiers
are sticky mods.
Fixes#829
* Add strlcpy from public domain version.
* Leverage strlcpy to detect truncation of behavior dev strs, and log.
* Use `offsetof` for cleaner detection on peripheral side.
* Use Zephyr auto CCC discovery instead of doing it ourselves.
* Split service versus characteristic discovery into dedicated
steps in the flow.
* Fix for not searching properly when connecting to a peripheral
a second time.
* GATT characteristic allowing passng data + behavior
label to invoke the behavior on the peripheral side.
* Behaviors have a locality setting to specify where they run.
* Build reset/power/RGB on peripheral.
* Add Contra Shield (#1)
* Add bluetooth control layer to contra keymap (#2)
* fix contra keymap issues
* add bluetooth control layer
* clean up contra files
* add contra.conf file
* add missing bracket for default_layer
* update copyright year to 2021
* add contra metadata file
* refactor pro micro overlay for new syntax
* initial files to get stuff working
* Keymap by Ladniy
* Format update to new standards
* keymap update
* header
* Fixed transform, removed left and right .conf files
* Apply suggestions from code review
Formatting
Co-authored-by: Nick Winans <nick@winans.codes>
Co-authored-by: Nick Winans <nick@winans.codes>
* initial commit
* initial commit
* Encode, OLED, and RGB Nice Nano support added as well as refining default keymap.
* tweaking keymap
* Prepared murphpad for PR. Includes adding support for second encoder, OLED, and underglow RGB
* Enabled OLED by default.
* removed naked60 config files
* Per PR feedback from ZMK maintainers, added hardware metadata file and renamed Pro Micro pins.
* removed tabs from keymap and replaced with normal spaces
* Update app/boards/shields/murphpad/murphpad.keymap
Co-authored-by: Nick Winans <nick@winans.codes>
* Update app/boards/shields/murphpad/murphpad.zmk.yml
Co-authored-by: Nick Winans <nick@winans.codes>
* Update app/boards/shields/murphpad/murphpad.zmk.yml
Co-authored-by: Nick Winans <nick@winans.codes>
Co-authored-by: honorless <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Nick Winans <nick@winans.codes>
* Initial commit of boardsource5x12
* Added copyright/license header
* Update app/boards/shields/boardsource5x12/Kconfig.defconfig
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
* Update app/boards/shields/boardsource5x12/boardsource5x12.overlay
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
* Update app/boards/shields/boardsource5x12/Kconfig.shield
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
* Update app/boards/shields/boardsource5x12/boardsource5x12.keymap
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
* Swapping keymap for what used in Naked60 as it's another 60 key board, so it keeps it consistent.
* Update app/boards/shields/boardsource5x12/boardsource5x12.keymap
Co-authored-by: Nick Winans <nick@winans.codes>
* renamed layers in boardsource5-12
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
Co-authored-by: Nick Winans <nick@winans.codes>
* Add support for keeb.io fourier
* Update app/boards/shields/fourier/fourier_right.overlay
Co-authored-by: Nick Winans <nick@winans.codes>
* Update app/boards/shields/fourier/fourier_left.overlay
Co-authored-by: Nick Winans <nick@winans.codes>
* Convert spaces to tabs in .dtsi
Co-authored-by: Nick Winans <nick@winans.codes>
* initial commit
* initial commit
* Encode, OLED, and RGB Nice Nano support added as well as refining default keymap.
* tweaking keymap
* Prepared murphpad for PR. Includes adding support for second encoder, OLED, and underglow RGB
* Enabled OLED by default.
* Initial commit with settings updated to match schematic.
* Removing test directories.
* removed naked60 config files
* Fixed dogbone definitions to be full working for murphpad.
* Preparing S40NC for PR
* Removed the murphpad test files that were not supposed to be a part of this PR.
* Changing licensing to be from The ZMK Contributors.
* Changed the licensing in the keymap file to be from The ZMK Contributors
* Update s40nc.keymap
This is a generalization of the existing concept of tri-layer support
that's already well known. Essentially, a conditional-layer
configuration activates a particular layer (the then-layer) when one or
more other layers (the if-layers) are activated.
This is commonly used on ortho keyboards to activate a third "adjust"
layer while the primary two layers ("lower" and "raise") are active.