Commit graph

1568 commits

Author SHA1 Message Date
Jonathan Rascher
d5d5d8827e test(conditional-layers): Add tests for edge cases 2021-11-19 08:41:22 -08:00
Jonathan Rascher
b2fe1556ef test(conditional-layers): Add interleaved up/downs 2021-11-19 08:41:22 -08:00
Jonathan Rascher
d9f36abd28 test(conditional-layers): Add multi-config tests 2021-11-19 08:41:22 -08:00
Jonathan Rascher
3de9b23713 test(conditional-layers): Add basic unit tests 2021-11-19 08:41:22 -08:00
Jonathan Rascher
877e39d164 docs(conditional-layers): Document feature 2021-11-19 08:41:22 -08:00
Jonathan Rascher
38cd76bda0 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-19 08:41:22 -08:00
Peter Johanson
60b3dff1d0 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-19 08:41:22 -08:00
Viet (Drake) Tran
4e89b0e49f fix(shields): Fix some keycodes in reviung41 keymap
Notice some keycodes are not matched with the expected keys.
2021-11-19 08:41:22 -08:00
jding
4dbff19d32 feat: hold/tap flavor tap-unless-interrupted
Implements new hold/tap flavor, tap-unless-interrupted
Adds tests
Adds docs
2021-11-19 08:41:22 -08:00
Hai-Ninh Dang
b451b28d4d feat(boards): Add Mikoto board
* Supports selecting from several possible charge currents

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2021-11-19 08:41:22 -08:00
dependabot[bot]
ed82c53328 chore(deps): bump DoozyX/clang-format-lint-action from 0.12 to 0.13
Bumps [DoozyX/clang-format-lint-action](https://github.com/DoozyX/clang-format-lint-action) from 0.12 to 0.13.
- [Release notes](https://github.com/DoozyX/clang-format-lint-action/releases)
- [Commits](https://github.com/DoozyX/clang-format-lint-action/compare/v0.12...v0.13)

---
updated-dependencies:
- dependency-name: DoozyX/clang-format-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-19 08:41:22 -08:00
Peter Johanson
dddd3c58a1 fix(split): Properly rediscover peripherals.
* Handle disconnects of peripherals, and properly clean up
  and resume discovering for when the peripheral re-appears.
2021-11-19 08:41:21 -08:00
jmding8
09a927af25 fix(behavior): Properly break in decision switch statement.
Co-authored-by: jding <jding@roblox.com>
2021-11-19 08:41:21 -08:00
jmding8
f632b5fb2f feat(behaviors) Required keys for tap-hold behaviors
* Add optional `hold-trigger-key-positions` hold-tap configuration
* Leverage configuration for decision making around when to trigger
  hold decision in hold-taps.
* Add docs for new configuration.
* Tests for the new config/decision logic.
2021-11-19 08:41:21 -08:00
Joel Spadin
111e88a333 feat(kscan): Improve matrix debouncing
Switched the GPIO matrix driver to debouncing using a simple integrator
algorithm. Whenever a key is pressed, we now scan at a rate controlled
by debounce-scan-period-ms (default 1 ms) until all keys are released,
then return to either waiting for an interrupt or polling more slowly.

The timers for key press and release can now be controlled separately,
so debounce-period is deprecated in favor of debounce-press-ms and
debounce-release-ms. Global Kconfig options
ZMK_KSCAN_DEBOUNCE_PRESS_MS and ZMK_KSCAN_DEBOUNCE_RELEASE_MS are also
added to make these easier to set.

Added documentation for debouncing options.
2021-11-19 08:41:21 -08:00
Peter Johanson
d0fc7c3ef7 refactor: Move to explicit docker.io/* image references.
* Some runtimes (e.g. podman), require explicit registries in image URLs
 or will prompt for the user to select one, which breaks things like
 VSCode remote container rebuilds.
2021-11-19 08:41:21 -08:00
Jonathan Rascher
4336bfecef refactor(combos): Use ZMK_KEYMAP_EXTRACT_BINDING
Now that PR #506 is merged, we can address this TODO.
2021-11-19 08:41:21 -08:00
dependabot[bot]
df930e2ad4 chore(deps): bump @fortawesome/react-fontawesome in /docs
Bumps [@fortawesome/react-fontawesome](https://github.com/FortAwesome/react-fontawesome) from 0.1.14 to 0.1.16.
- [Release notes](https://github.com/FortAwesome/react-fontawesome/releases)
- [Changelog](https://github.com/FortAwesome/react-fontawesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/react-fontawesome/compare/0.1.14...0.1.16)

---
updated-dependencies:
- dependency-name: "@fortawesome/react-fontawesome"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-19 08:41:21 -08:00
Manuel Transfeld
f862a594bf fix(docs): Typo fix, open -> upon 2021-11-19 08:41:21 -08:00
Peter Johanson
3bdd42cc91 fix: Properly find boards in user config repos. 2021-11-19 08:41:21 -08:00
Peter Johanson
52f953678d fix: Only search for board one not found yet. 2021-11-19 08:41:21 -08:00
Peter Johanson
cd48cbfda7 fix(keymaps): Properly locate split board keymaps.
* Find the unified keymap filename for onboard controller split
  keyboards.
2021-11-19 08:41:21 -08:00
Peter Johanson
db1035009c refactor: Add js-yaml dep, scrtipt gen tweaks.
*  Make the synthetic "base name" property double underscore prefixed,
  since internal, and to avoid future conflicts w/ YAML format add'ns.
* Switch to PS hash dictionaries for our metadata collections for saner
  data inspection/use.
2021-11-19 08:41:21 -08:00
Peter Johanson
1155f94a49 refactor: Config setup scripts to support onboard keyboards.
* Use unified config template repo that uses an external
  build matrix YAML file.
* Proper handling for onboard keyboards, including splits, and
 supports for appending the right build matrix once selected.
2021-11-19 08:41:21 -08:00
eyenseo
17ed7ce573 [squash] implement feedback 2021-11-19 08:41:21 -08:00
eyenseo
09dd29a0cf Add ergodash 2021-11-19 08:41:21 -08:00
Dom H
66aaad03c6 chore: Add note about copyrights on PR checklist 2021-11-19 08:41:21 -08:00
Richard Kjerstadius
2fbdb97c7a fix(display): Increase char buffer size to fit all symbols
Recent refactoring of the font handling seems to have broken the display
of the last symbol of the output status widget. From my analysis the
last symbol is truncated because the buffer simply is too small.
Increasing the buffer size to 9 fits all three possible symbols.
2021-11-19 08:41:21 -08:00
git@jrhrsmit.nl
3ac57ab693 add ranges and descriptions from #669 2021-11-19 08:41:21 -08:00
Nick Winans
5dd178bbe6 fix(underglow): Run clang-format 2021-11-19 08:41:21 -08:00
Simon Malinge
0cdc0df1b5 feat(underglow): Add support for configurable min/max brightness
Co-authored-by: jrhrsmit <jasper.770@gmail.com>
2021-11-19 08:41:21 -08:00
Jonathan Rascher
a2d809ae76 docs(docs): Document up-to-date Node.js repo
For example, Debian Bullseye (current stable) packages Node.js version
12, which is too old to build the docs successfully. At least version 14
is required, and version 16 is current. General advice seems to be to
install from the NodeSource repo instead of your distro's repo, so I
added a suggestion to the docs.
2021-11-19 08:41:21 -08:00
Peter Johanson
c907135727 feat(hid): Kconfig for basic/full consumer usages.
* Add ZMK_HID_CONSUMER_REPORT_USAGES choice to allow choosing
  between full consumer usage range, with poor OS compat,
  or basic consumer usage range, with broader compat.
2021-11-19 08:41:21 -08:00
Pete Johanson
6af396c658 feat(hid): Configurable NKRO HID report support.
* Add Kconfig settings for NKRO or HKRO (boot compatible), HID
  report types for keyboard page.
* Updated report storage and set/unset for each config.
2021-11-19 08:41:21 -08:00
Aleblazer
a8fa52781e feat(boards): Add Zodiark shield 2021-11-19 08:41:21 -08:00
Nick Winans
a40885fd99 chore: Add board/shield checklist for new PRs. 2021-11-19 08:41:21 -08:00
Brandon Xie
751aa2afb7 feat(shields): Add Naked60BMP shield 2021-11-19 08:41:21 -08:00
Nick Winans
f25a593c84 feat(docs): Update documentation to match new Pro Micro nodes 2021-11-19 08:41:21 -08:00
Nick Winans
2001ed1f68 feat(boards): Remove usage of pro_micro_a/d nodes 2021-11-19 08:41:21 -08:00
Nick Winans
bd5782d2c1 feat(boards): Add D18-21 to Pro Micro pin mappings 2021-11-19 08:41:21 -08:00
Peter Johanson
79b717ec07 refactor(boards): Remove leftover right split name 2021-11-19 08:41:21 -08:00
Nick Winans
f0956b798e fix(docs): Update split naming system 2021-11-19 08:41:21 -08:00
Nick Winans
05bc1b4f17 refactor(boards): Remove "left" from split keyboard names 2021-11-19 08:41:21 -08:00
Nick Winans
595c3ca954 refactor(boards): Remove split right keyboard names 2021-11-19 08:41:21 -08:00
Peter Johanson
d18e03cca5 refactor(display): Saner font selection/defaults.
* Only select fonts for the default built in status screen
* Leverage theme default fonts, instead of hardcoding theme
  details in each component.
2021-11-19 08:41:21 -08:00
Peter Johanson
81307b32ab refactor(display): Output/layer/battery thread safety.
* Submit widget updates to display queue.
* Use mutex to control access to shared state for widgets.
2021-11-19 08:41:21 -08:00
Peter Johanson
14d7f968e5 feat(display): Optional dedicated work queue.
* Add new Kconfig settingsx to allow selecting system or dedicated
  work queue for performing UI updates.
* Allow UI updates to not block other system tasks when display is
  updating, especially important for e-ink displays.
2021-11-19 08:41:21 -08:00
Cem Aksoylar
6ab5e47cab fix(setup): Fix sed delimiters for Cradio 2021-11-19 08:41:21 -08:00
Richard Titmuss
daa1cde4d7 fix(docs): Typo EC11_CONFIG
This should be CONFIG_EC11
2021-11-19 08:41:21 -08:00
Xudong Zheng
192871b657 fix(hog): use OR instead of AND for bitmap 2021-11-19 08:41:21 -08:00