Commit Graph

1455 Commits

Author SHA1 Message Date
Pete Johanson d0ee30bfaa
Testing: split ble encoder test (#2754)
test(sensors): Add mock encoder sensor

Add a new mock sensor driver for generating mock encoder sensor channel
data.

test(split): Add a peripheral sensor split test

Test BLE split logic for peripheral sensors (encoders).
2025-01-06 14:41:02 -05:00
Pete Johanson 36508c27fd
fix(studio): Allow adding layers after a layer move (#2748)
Properly return the available layers in the move layer response.
2025-01-03 19:19:19 -05:00
Pete Johanson e6343f44ce
test(split): Test split HID indicator setting. (#2747)
Add integration test for HID indicator state being propagated
to split peripherals.
2025-01-03 18:05:18 -05:00
Willow Herring 05abd677c5
chore: Add trailing lines to fix build warnings (#2743)
When building a unibody or central warnings get thrown for the backslash newlines at EOF in combos.h and input_listeners.h. Adding a trailing newline to the affected files rectifies this
2025-01-02 08:58:49 -07:00
Pete Johanson f0a77b888a
fix(combos): Properly report combos len with emply block (#2739)
Handle the scenario where there is an empty combos block and return
a zero combos length.
2025-01-01 18:14:53 -05:00
Pete Johanson 85aba16eec
testing: Add split BLE tests (#2737)
* Enhance the BLE test runner to build additional peripheral builds
  when detecting peripheral*.overlay files in the test.
* Add basic and multiple-peripheral tests to exercise the testing
  support
* Add test for triggering local behaviors on split peripherals.

fix(ble): Fix building split code w/o settings

* Properly exclude storing peripheral addresses to settings when
  settings support isn't turned on.
2025-01-01 18:13:47 -05:00
Robert U 3f6841c95f
chore: Allow running tests from anywhere and support EXTRA_MODULES (#2725)
* Allow running tests from anywhere in the workspace
* Trigger test workflow if run-test.sh changes
2024-12-20 15:19:56 -05:00
Nicolas Munnich bb486619a1
fix: Kconfig refactor now works correctly with external modules (#2711) 2024-12-18 23:32:30 -07:00
Pete Johanson cb867f92db
Feature: input processor behavior invocation (#2714)
refactor(pointing): Allow stopping event propagation

    Allow input processors to return a special value if a given input event
    should not be further processed/propagated.

feat(pointing): Add behavior input processor

    Add the ability to intercept certain input events and trigger behaviors
    when they occur.

Co-authored-by: Jorge Villalobos <minusfive@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-12-17 20:50:06 -05:00
Nicolas Munnich 4ef231f4bb
feat: Added `toggle-mode`, allowing toggle-on and toggle-off (#2555)
feat: added toggle mode to key and layer toggles

docs: documented toggle mode changes
2024-12-12 19:13:56 -05:00
Joel Spadin 7013158a67
fix: Fix warnings in nanopb encoding code (#2643)
The "arg" field on nanopb structs is a void* because it is shared
between the encode and decode callbacks, even though the encode
callback probably should not modify the data. We are passing const data
using this non-const pointer, which causes warnings about discarding
const. This commit explicitly casts to void* to suppress these warnings.
2024-12-11 15:00:48 -05:00
svek1 a8f5ab67b5
fix: allow kscan-composite to wake up device. (#2682)
* include kscan.yaml so we can set kscan-composite as a wakeup source
* modify enable and disable callback to check for wakeup capabilities of
composite and children
* disable children wakeup source

The disable function is only called
when the composite is not an enabled wakeup source.
In that case the children should also not be an enabled
wakeup source, so they can get suspended
2024-12-11 14:46:22 -05:00
Pete Johanson 84baf929c9
fix(pointing): Complete header rename missed in refactor (#2702)
* Update a few mouse.h -> pointing.h missed refactors.
2024-12-10 02:29:35 -05:00
Pete Johanson 6b40bfda53
feat(mouse): Add mouse move and scroll support (#2477)
* feat(mouse): Add mouse move and scroll support

    * Use Zephyr input subsystem for all pointers.
    * Input processors for modifying events, e.g. scaling, swapping
      codes, temporary (mouse) layers, etc.
    * Mouse move/scroll behaviors.
    * Infrastructure in place for physical pointer input devices.

* feat: Add input split support.

* docs: Add initial pointer docs.

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Alexander Krikun <krikun98@gmail.com>
Co-authored-by: Robert U <urob@users.noreply.github.com>
Co-authored-by: Shawn Meier <ftc@users.noreply.github.com>
Co-authored-by: Chris Andreae <chris@andreae.gen.nz>
Co-authored-by: Anant Thazhemadam <47104651+thazhemadam@users.noreply.github.com>
Co-authored-by: Erik Tollerud <erik.tollerud@gmail.com>
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-12-09 19:45:41 -05:00
pabile 7e8c542c94
feat(studio): Add ortho_4x10 grid layout (#2651)
* added 4x10 grid layout

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-12-09 12:53:54 -05:00
Pete Johanson 0820991901
fix(studio): Properly return complete keymap from RPC (#2696)
Ensure the set active physical layout RPC returns the full keymap
details including the available layers.
2024-12-06 18:10:58 -05:00
yuki b26058b6c7
feat(boards): Update for mikoto board definition (#1946)
* Set default revision to 5.20
* update mikoto board defs
* add revision info to mikoto.zmk.yml
* use zephyr aliases to handle mikoto_520
* enable pull-ups for on-board i2c
2024-12-05 02:02:58 -05:00
Nicolas Munnich 40925d48e6
refactor(Kconfig): Extracted designer defaults out into new files (#2537)
docs: Fix incorrect kconfig default values

fix(Kconfig): Added a name to EC11's trigger mode choice, allowing it to be set in device Kconfig.defconfig

refactor(Kconfig): Moved designer defaults out into new files
2024-12-04 16:19:35 -05:00
Pete Johanson a9ff3a78a1
chore(main): release 0.1.0 (#2657) 2024-12-04 14:26:12 -05:00
Cem Aksoylar 230b860f31
fix(boards): Disable uart serial node in Xiao BLE by default (#2672) 2024-11-25 17:19:13 -05:00
Pete Johanson fb359f5766
feat(boards): Add glove80 nexus node for extension GPIO. (#2594)
Add generic extension nexus node for consistent GPIO access
to the extension pins in a left/right agnostic way.
2024-11-20 18:36:32 -05:00
Pete Johanson ffa485c11b
feat(ci): Add release-please automation with VERSION (#2622)
* Add VERSION file that Zephyr will pick up
* Add release-please automation
* Updated docs on commits messages, and PR process
* Updated PR template to match.

---


Release-As: 0.1.0

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-11-18 16:46:26 -05:00
esplo f8eff2fe34
fix: include a header file for RC macros (#2649) 2024-11-16 09:51:21 +01:00
Peter Johanson 888c0d966c feat(drivers): Support init high/low in 595 driver
Add support for initializing a pin to a given high/low value during
configuration. Needed for proper initialization by systems like
GPIO hogs or gpio-leds Zephyr drivers.
2024-11-15 11:00:37 -07:00
Nicolas Munnich fed66a92d0 fix(studio): Improved error message when keyboard is missing a physical layout. 2024-11-13 11:38:41 -07:00
Cem Aksoylar b0f5789b12 fix: Disable display feature for settings_reset 2024-11-12 18:38:33 -07:00
Alexander Krikun 4438b7b835 feat(boards): add nrf52840-nosd snippet
Add snippet to build for nRF52840 boards while ignoring the SoftDevice.
This might be useful for especially memory-intensive applications.
2024-11-12 18:28:59 -07:00
Alexander Krikun 63af296b6e feat(boards): add nrf52833-nosd snippet
Add snippet to build for nRF52833 boards while ignoring the SoftDevice.
This is necessary as those boards are memory-constrained.
2024-11-12 18:28:59 -07:00
ReFil c9553c31e3 fix(boards): Fix typo in BT75 metadata
Spotted this underscore that shouldn't be there when reading the studio blog post
2024-11-12 13:44:56 -07:00
Joel Spadin c7473fc325 fix: Fix inconsistent column offset property
Renamed the composite kscan's column-offset property to col-offset for
consistency with other properties such as matrix transform's col-offset
and matrix kscan's col-gpios.
2024-11-12 09:07:25 -07:00
Nicolas Munnich 99b8506437 refactor: new physical layouts convention 2024-11-06 15:29:22 -07:00
Joel Spadin cf2c46734d feat(boards): Add numpad layouts
Added physical layouts for the following variants of numpads:

- With and without extra top row
- 2U plus key or 1U plus and backspace keys
- 2U 0 key or 1U 0 and 00 keys
- Full 1U grid/macropad layout

Other layouts exist, such as "southpaw" horizontally mirrored layouts,
and layouts with a fifth column, but those seem to be much less common.
2024-11-06 11:35:51 -07:00
Peter Johanson 19a096ab67 fix(keymap): Set bindings with changed layout
* Fix bug with setting keymap layer bindings when a non-stock layout
  is selected.
2024-11-04 13:30:40 -07:00
Peter Johanson 249ecbc7e6 fix(studio): Bump nanopb version with build fixes.
* Pull in fixes for prefering generator/protoc instead of the
  host protoc, for better compatibility.
2024-11-01 13:17:29 -06:00
Nicolas Munnich 80df3195b7
docs: Add a hardware issues page under troubleshooting (#2360)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Anant Thazhemadam <47104651+thazhemadam@users.noreply.github.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2024-10-31 10:42:00 -07:00
Peter Johanson 8ed556df62 chore(studio): Only clear settings for overridden key positions. 2024-10-21 14:53:31 -06:00
Peter Johanson 369a009d99 chore(shields): Add studio feature to qaz metadata 2024-10-21 10:08:51 -06:00
Zack Forbing 200d98f623
feat(shields): QAZ: added three physical layouts
* added three physical layouts

---------

Co-authored-by: Zack Forbing <zforbing@vertafore.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-10-21 11:53:06 -04:00
Peter Johanson ea1a09bf99 fix: Optimize layout changes by doing runtime mapping
* To avoid tons of migration, extra flash writes, etc, we keep
  the keymaps and settings using a key position index that's tied
  to the stock layout, and at runtime mapping key positions as
  needed.
2024-10-18 15:30:13 -06:00
Peter Johanson 10868c72f7 chore: Tag studio enabled boards/shields. 2024-10-17 10:20:30 -06:00
honorless 7dfc6ab31d refactor(shields): MurphPad
* Added matrix transforms and physical layouts for three typical
  configurations.

* Tweaked default keymap to be more immediately useful for ZMK and more
  closely resemble the default keymaps of non-ZMK firmware.

* Board-specific Kconfig settings migrated to main shield file, so they
  will be exposed to end-users through the setup script.

* Tidied formatting and shortened overlong layer labels.

* Aligned encoder configuration with current standards.

* Corrected default number of RGB LEDs.

* Enabled OLED by default in a less authoritarian way.
2024-10-16 18:21:40 -06:00
Alexander Krikun 11537ebee6 feat(shields): add physical layouts and update keymap for Jiran
Add physical layouts and update the keymap for Ladniy's Jiran.
Layouts are added for all three possible transforms:
- Full (with additional pinky key and number row)
- Jian (with additional pinky key), re-uses Jian layout
- 6 column (Corne), re-uses Jian layout

Keymap update includes &studio_unlock.
2024-10-16 17:04:39 -06:00
Alexander Krikun 218a2fff8d feat(shields): add physical layouts and update keymap for Jian
Add physical layouts and update the keymap for King of Hedgehogs' Jian.
Layouts are added for all three possible transforms:
- Full (with additional pinky key)
- 6 column (Corne)
- 5 column (Minidox)

The layouts are added to be re-usable for the Jiran and other custom boards/shields.

Keymap update includes, small guide clarifications, output selection,
tri-layer and &studio_unlock.
2024-10-16 17:04:39 -06:00
Alexander Krikun bbe4f64bb2 feat(shields): add physical layouts and update keymap for Jorne
Add physical layouts and update the keymap for Joric's Jorne.
Layouts are added for all three possible transforms:
- Full (with additional pinky key)
- 6 column (Corne), re-uses Corne layout
- 5 column (Minidox), re-uses Corne layout

Keymap update includes quick-tap-ms (essential for this keymap), small
guide clarifications, output selection, tri-layer and &studio_unlock.
2024-10-16 17:04:39 -06:00
angweekiat 0adb80c02b
fix(usb): detect USB power mode to fallback to BLE
* Add tracking to see if we ever hit a configured status before
  suspend, so we can properly track "is connected" even when
  connected to a suspended/asleep host.
2024-10-14 19:15:45 -04:00
Pete Johanson d3f2895744
refactor: Give position map children labels. (#2544)
* To make is easier to reuse layouts and override the position
  maps for them, add labels to all the position map children in our
  shared layouts.
2024-10-10 13:03:32 -04:00
Pete Johanson dab4b2cdf3
fix(studio): Reduce stack usage. (#2547)
* Imply nanopb setting for reduced stack usage.
2024-10-10 12:49:51 -04:00
Pete Johanson 78513af73e
feat(studio): Move to nanopb with minor optimizations. (#2505)
* Reduced stack size.
2024-10-10 12:36:27 -04:00
Allister MacLeod 4aea919a4d
fix(display): Adding length check to layer_label in nice_view status widget. 2024-10-08 12:27:01 -04:00
Peter Johanson 47a17c64d7 fix: Defer auto enabling of kscan sideband.
* Now that device init of kscan sideband is in POST_KERNEL stage,
  use a separate SYS_INIT for auto enabling the device so processing
  of early/initial presses from referenced toggle mode kscan devices
  occurs at the proper time during init.
2024-10-08 10:20:39 -06:00