Commit graph

823 commits

Author SHA1 Message Date
Peter Johanson
7430750428 refactor(splits): Minor cleanups to periph invocation
* 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.
2022-01-31 23:03:34 -05:00
Peter Johanson
b8700eaaa1 fix(split): Fix an off-by-one error in split svc.
* Properly check end of behavior device string for null terminator.
2022-01-31 23:03:34 -05:00
Peter Johanson
dbefe92ea0 fix(split): Slightly improved logging on peripherals. 2022-01-31 23:03:34 -05:00
Peter Johanson
fa110488b0 fix(split): Add define for local source.
* Add `ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL` and use
  it consinstently to fix bug w/ local `&reset`, `&bootloader`, etc.
2022-01-31 23:03:34 -05:00
Peter Johanson
4d55e60adb refactor(behaviors): Always add reset behaviors.
* Don'd omit unreferenced reset behaviors, so they are always
  available in split peripherals.
2022-01-31 23:03:34 -05:00
Peter Johanson
9297c5f2b4 refactor(splits): Use index for event source.
* Track peripherals by indexes slot, with all appropiate peripheral
  state stored in the slot.
* Event sources tracked by peripheral slot index.
2022-01-31 23:03:34 -05:00
Peter Johanson
e8540f17fc fix: Ensure power and underglow behaviors built.
* Remove `/omit-if-no-ref/` from the behavior nodes.
2022-01-31 23:03:34 -05:00
Peter Johanson
ce3471d4fe fix(split): Add queue for running remote behaviors 2022-01-31 23:03:34 -05:00
Peter Johanson
d486304f79 fix(underglow): Handle cycling effects on splits.
* Convert relative effect cycling to absolute effect selection.
2022-01-31 23:03:34 -05:00
Pete Johanson
0febaa142a refactor(split): Clean up split GATT discovery.
* 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.
2022-01-31 23:03:34 -05:00
Pete Johanson
47f873b038 feature(split): behavior locality support.
* 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.
2022-01-31 23:03:34 -05:00
Temur Beissov
c74ae45e17
Lotus58 (#1090)
* lotus58 shield added

* lotus58 default keymap

* lotus58 keymap legend update

* Lotus58 keymap fix

* lotus58 keymap update

* lotus58 kb name fixed

* lotus58 keymap update
PR fix
2022-01-31 13:02:19 -06:00
Peter Johanson
52b1fd5dd3 fix(behaviors): Capture mods for &key_repeat
* When tracking the last keycode, also capture the currently held
  explicit modifiers to use when replaying the key later.
2022-01-30 22:47:34 -05:00
Peter Johanson
70bb7c9334 feat(behaviors): &key_repeat behavior + tests.
* Add new `&key_repeat` behavior that captures and re-sends
  the most recently triggered keycode.

Closes: #853
2022-01-30 22:47:34 -05:00
Peter Johanson
ed48d1ae89 fix(ble): Restore BLE SC passkey entry for pairing.
* Handle capturing numeric inputs while pairing and sending
  final passkey once six digits entered.
2022-01-30 22:41:41 -05:00
Sam Mohr
4c317e0feb
Add support for the Clog (#1092)
* Add support for the Clog

* format DTSI definition

* add a default keymap

* update copyright year, reduce conf to minimum
2022-01-30 14:55:22 -06:00
iangus
4039a50ec3
Add Contra shield (#633)
* 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
2022-01-30 13:48:35 -06:00
David Fiander
970e63bec6
fix(boards): Properly use dfu-util to flash DZ60 2022-01-12 21:36:08 -05:00
zhiayang
d29236141e
fix(boards): Proper active high and init delay for Mikoto ext-power 2022-01-11 16:07:30 -05:00
okke
f692d64d05 test: print test output immediately and decrease indenting 2022-01-04 23:59:25 -05:00
okke
d59797ba13 test: Change length of fail and pend messages
This makes scanning the output from "west test" easier, as the different states get different output lengths.
2022-01-04 23:59:25 -05:00
okke
f767abe136 chore: make west scripts more pythonic and apply Black 2022-01-04 23:59:25 -05:00
Midge 't Hoen
e0620f1a2d Bump init delay to 50ms for nico-nano 2022-01-03 14:39:42 -06:00
Lucas Yunkyu Lee
2666bd622c fix(keymaps): add row-offset property to matrix-transform 2021-12-20 06:14:35 -05:00
Alexander Krikun
7b023affbd
Add support for the Jiran (#1048)
* 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>
2021-12-14 11:32:59 -06:00
Peter Johanson
af98a3fd6e fix(shields): Don't enable SSD1306 automatically.
* Fix Murphpad conditional to ensure SSD1306 driver isn't
  enabled whenever `ZMK_DISPLAY` is enabled.
2021-12-13 17:06:46 -05:00
Kyle McCreery
569a2ee2cc
[New Shield] Murphpad (#806)
* 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>
2021-12-13 14:41:35 -06:00
Felix Sargent
df1ae494c7
Add boardsource5x12 (#1027)
* 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>
2021-12-13 14:24:21 -06:00
Ryan Butler
eca051efa0
Add support for keeb.io fourier split keyboard (#1056)
* 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>
2021-12-13 13:41:52 -06:00
Sam Mohr
b23934cf94
feat(shields): Add Osprette 2021-12-10 13:20:52 -05:00
Kyle McCreery
a8c7cf4f19
feat(boards): Add S40NC board definition (#1021)
* 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
2021-12-02 17:21:35 -06:00
toddmok
9148ffd05d
feat(shields) Add Redox Shield Support (#1002)
* Add redox shield support

* typo

* Pull request fixes

* requested changes

add underglow, add copyright, remove display

* remove because of no display

* comment fix

* bt clear
2021-12-02 12:51:27 -06:00
Peter Johanson
6ef1e7034f fix(hid): Implicit mods on non-key page events
* Properly send the KEY usage page report for modifier changes
  when there are state changes to other usages pages that
  include implicit modifiers.
2021-12-02 07:18:25 -05:00
ReFil
b877410379 fix(boards): BT60 Formatting tweaks 2021-11-30 15:33:12 -06:00
ReFil
99c5a8ee6f feat(boards): Add BT60 Boards 2021-11-30 15:33:12 -06:00
Josh Johnson
66f90dae3a
feat(shield) Add Chalice support (#1022)
* add chalice

* add split bs transform

* Update app/boards/shields/chalice/chalice.zmk.yml

Co-authored-by: Nick Winans <nick@winans.codes>

Co-authored-by: Nick Winans <nick@winans.codes>
2021-11-29 11:39:46 -06:00
Cem Aksoylar
b9a35c6ae7 fix(keymaps): Locate shared conf and overlay for split boards. 2021-11-29 07:56:29 -05:00
Nick Winans
0b44321613 fix(shields): Fix typo on Quefrency .zmk.yml 2021-11-29 00:52:57 -05:00
Peter Johanson
54dabffd0d feat(behaviors): Add caps word (&caps_word).
* Add new `&caps_word` behavior that acts like caps lock, but
  releases automatically when any "break" keycode is pressed.
2021-11-28 22:41:35 -05:00
Jonathan Rascher
30ed237533 test(conditional-layers): Add tests for edge cases 2021-11-15 05:49:23 -05:00
Jonathan Rascher
6cd1734851 test(conditional-layers): Add interleaved up/downs 2021-11-15 05:49:23 -05:00
Jonathan Rascher
a908396013 test(conditional-layers): Add multi-config tests 2021-11-15 05:49:23 -05:00
Jonathan Rascher
df110beac4 test(conditional-layers): Add basic unit tests 2021-11-15 05:49:23 -05:00
Jonathan Rascher
e9140b2da9 feat(conditional-layers): Implement feature
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.
2021-11-15 05:49:23 -05:00
Peter Johanson
f8018b22d0 fix(hid): Basic consumer code fixes for signed logical max.
* Logical max values are signed, so for the report descriptor, use a two
  byte logical max descriptor item to impart proper 0xFF max logical
  value.
2021-11-09 10:38:49 -05:00
Viet (Drake) Tran
c412fad40d
fix(shields): Fix some keycodes in reviung41 keymap
Notice some keycodes are not matched with the expected keys.
2021-11-09 10:26:21 -05:00
jding
4e62319982 feat: hold/tap flavor tap-unless-interrupted
Implements new hold/tap flavor, tap-unless-interrupted
Adds tests
Adds docs
2021-11-09 01:07:05 -05:00
Hai-Ninh Dang
f2e0642291
feat(boards): Add Mikoto board
* Supports selecting from several possible charge currents

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2021-11-09 00:57:24 -05:00
Peter Johanson
0b0b49d626 fix(split): Properly rediscover peripherals.
* Handle disconnects of peripherals, and properly clean up
  and resume discovering for when the peripheral re-appears.
2021-11-04 22:31:56 -04:00
jmding8
73fd4b9230
fix(behavior): Properly break in decision switch statement.
Co-authored-by: jding <jding@roblox.com>
2021-11-01 13:51:12 -04:00