<feed xmlns='http://www.w3.org/2005/Atom'>
<title>zmk.git/app/tests, branch core/peripheral-behavior-invocation</title>
<subtitle>ZMK Bluetooth keyboard firmware.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/'/>
<entry>
<title>test(conditional-layers): Add tests for edge cases</title>
<updated>2021-11-15T10:49:23+00:00</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-10-02T05:15:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=30ed2375335acf47da0216c6832ecfd30ea7097c'/>
<id>30ed2375335acf47da0216c6832ecfd30ea7097c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test(conditional-layers): Add interleaved up/downs</title>
<updated>2021-11-15T10:49:23+00:00</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-10-02T04:27:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=6cd1734851c31884cdf14b40fddc5a9df273b296'/>
<id>6cd1734851c31884cdf14b40fddc5a9df273b296</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test(conditional-layers): Add multi-config tests</title>
<updated>2021-11-15T10:49:23+00:00</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-10-02T04:02:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=a908396013f4af15dd906cc882e23baa121bf89c'/>
<id>a908396013f4af15dd906cc882e23baa121bf89c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test(conditional-layers): Add basic unit tests</title>
<updated>2021-11-15T10:49:23+00:00</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-06-09T23:55:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=df110beac4c028ac658eb58925dc79176e0b334c'/>
<id>df110beac4c028ac658eb58925dc79176e0b334c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: hold/tap flavor tap-unless-interrupted</title>
<updated>2021-11-09T06:07:05+00:00</updated>
<author>
<name>jding</name>
<email>jding@roblox.com</email>
</author>
<published>2021-11-06T21:31:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=4e62319982ea258741eca2b79cf952fe7b8d6b3b'/>
<id>4e62319982ea258741eca2b79cf952fe7b8d6b3b</id>
<content type='text'>
Implements new hold/tap flavor, tap-unless-interrupted
Adds tests
Adds docs
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implements new hold/tap flavor, tap-unless-interrupted
Adds tests
Adds docs
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(behaviors) Required keys for tap-hold behaviors</title>
<updated>2021-11-01T16:37:20+00:00</updated>
<author>
<name>jmding8</name>
<email>44815547+jmding8@users.noreply.github.com</email>
</author>
<published>2021-11-01T16:37:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=19ee7849f80e18d8f29ac47ffeee3bb223c35a80'/>
<id>19ee7849f80e18d8f29ac47ffeee3bb223c35a80</id>
<content type='text'>
* 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. </content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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. </pre>
</div>
</content>
</entry>
<entry>
<title>fix(behaviors): Fix timing of delayed hold-tap trigger</title>
<updated>2021-06-13T14:44:18+00:00</updated>
<author>
<name>Okke Formsma</name>
<email>okke@formsma.nl</email>
</author>
<published>2021-03-07T13:50:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=efa497c69b813852d3704dbd96207f1186eb941a'/>
<id>efa497c69b813852d3704dbd96207f1186eb941a</id>
<content type='text'>
A hold-tap timer event would be triggered too soon if the hold-tap
was delayed for longer than its tapping-term. This may cause
accidental hold behavior when the correct behavior would be tap.

By queuing the timer event instead of executing it immediately,
other delayed events get a chance to be processed properly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A hold-tap timer event would be triggered too soon if the hold-tap
was delayed for longer than its tapping-term. This may cause
accidental hold behavior when the correct behavior would be tap.

By queuing the timer event instead of executing it immediately,
other delayed events get a chance to be processed properly.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(combos): Check each combo key, not just last</title>
<updated>2021-06-09T00:35:58+00:00</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-06-08T15:56:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=4e69a32103a2905b9a32c80c8d3d798fbb0d9a0f'/>
<id>4e69a32103a2905b9a32c80c8d3d798fbb0d9a0f</id>
<content type='text'>
The current combo completion check only makes sure the last key in the
combo is set. This works when the combo is typed correctly initially, or
when reraising events in a combo of length two. However, it fails for
longer combos since the last event in pressed_keys might be set, but the
first (or subsequent) event in pressed_keys can be NULL thanks to
release_pressed_keys.

Also added a regression test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current combo completion check only makes sure the last key in the
combo is set. This works when the combo is typed correctly initially, or
when reraising events in a combo of length two. However, it fails for
longer combos since the last event in pressed_keys might be set, but the
first (or subsequent) event in pressed_keys can be NULL thanks to
release_pressed_keys.

Also added a regression test.
</pre>
</div>
</content>
</entry>
<entry>
<title>test(combo): Add unit test for complete long combo</title>
<updated>2021-06-09T00:35:58+00:00</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-06-08T15:47:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=eecc12c98022c1dce4a228914887ed328b1774c2'/>
<id>eecc12c98022c1dce4a228914887ed328b1774c2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(combos): Rename existing long combo test</title>
<updated>2021-06-09T00:35:58+00:00</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-06-08T15:43:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=bba1599824dc98284656d96748c7f09f10d5a00e'/>
<id>bba1599824dc98284656d96748c7f09f10d5a00e</id>
<content type='text'>
This test doesn't test a long combo that completes, but rather one
that's incomplete (so the combo doesn't trigger). Renaming to avoid
confusion when we add more long combo tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This test doesn't test a long combo that completes, but rather one
that's incomplete (so the combo doesn't trigger). Renaming to avoid
confusion when we add more long combo tests.
</pre>
</div>
</content>
</entry>
</feed>
