<feed xmlns='http://www.w3.org/2005/Atom'>
<title>zmk.git/app/tests, branch main</title>
<subtitle>ZMK Bluetooth keyboard firmware.</subtitle>
<id>http://git.nvandoorn.com/zmk.git/atom/app/tests?h=main</id>
<link rel='self' href='http://git.nvandoorn.com/zmk.git/atom/app/tests?h=main'/>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/'/>
<updated>2021-06-13T14:44:18Z</updated>
<entry>
<title>fix(behaviors): Fix timing of delayed hold-tap trigger</title>
<updated>2021-06-13T14:44:18Z</updated>
<author>
<name>Okke Formsma</name>
<email>okke@formsma.nl</email>
</author>
<published>2021-03-07T13:50:30Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=efa497c69b813852d3704dbd96207f1186eb941a'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>fix(combos): Check each combo key, not just last</title>
<updated>2021-06-09T00:35:58Z</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-06-08T15:56:02Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=4e69a32103a2905b9a32c80c8d3d798fbb0d9a0f'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>test(combo): Add unit test for complete long combo</title>
<updated>2021-06-09T00:35:58Z</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-06-08T15:47:23Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=eecc12c98022c1dce4a228914887ed328b1774c2'/>
<id>urn:sha1:eecc12c98022c1dce4a228914887ed328b1774c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor(combos): Rename existing long combo test</title>
<updated>2021-06-09T00:35:58Z</updated>
<author>
<name>Jonathan Rascher</name>
<email>jon@bcat.name</email>
</author>
<published>2021-06-08T15:43:27Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=bba1599824dc98284656d96748c7f09f10d5a00e'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>fix(behaviors): Fix sticky keys quick-release for normal keypresses</title>
<updated>2021-05-09T11:52:41Z</updated>
<author>
<name>Okke Formsma</name>
<email>okke@formsma.nl</email>
</author>
<published>2021-04-05T18:07:39Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=de4979bf58a628692547b056c80a75678005a647'/>
<id>urn:sha1:de4979bf58a628692547b056c80a75678005a647</id>
<content type='text'>
Quick release for sticky keys failed for non-layer keys. The sticky key
was released just before the key that was supposed to be modified was
handled.

The issue was caused by an error in the sticky key logic, which released
the sticky key before handling the key up event.

Fixes #696.
</content>
</entry>
<entry>
<title>fix(combos): Fix stuck keys when pressing long combos.</title>
<updated>2021-03-11T21:23:45Z</updated>
<author>
<name>Okke Formsma</name>
<email>okke@formsma.nl</email>
</author>
<published>2021-02-27T21:34:15Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=0df71100581d040178bd0fe8ec0382d84dc59a40'/>
<id>urn:sha1:0df71100581d040178bd0fe8ec0382d84dc59a40</id>
<content type='text'>
To properly retrigger hold-taps when a combo is not activated, some
position down events are reraised instead of released. The corresponding
position up events were never reraised, causing a potential stuck key.
</content>
</entry>
<entry>
<title>feature(hold-tap): no-hold-flash for retro taps</title>
<updated>2021-02-24T12:24:27Z</updated>
<author>
<name>Okke Formsma</name>
<email>okke@formsma.nl</email>
</author>
<published>2021-02-09T19:20:54Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=0c1940bb799ec8d97bb2f80661778a1396e9277e'/>
<id>urn:sha1:0c1940bb799ec8d97bb2f80661778a1396e9277e</id>
<content type='text'>
This is an improvement on retro-tap, solving the 'flashing hold' issue
users people experience.

When the tapping-term expires, the hold key is normally pressed. When
retro-tap is enabled, this is undesirable; only an interrupted hold-tap
should trigger the hold behavior.

This change disables the hold behavior for the 'STATUS_HOLD_TIMER'
state when retro-tap is enabled, and makes sure the
'STATUS_HOLD_INTERRUPT' state will be triggered when appropriate.
</content>
</entry>
<entry>
<title>feature(hold-tap): Retro tapping</title>
<updated>2021-02-24T12:24:27Z</updated>
<author>
<name>Okke Formsma</name>
<email>okke@formsma.nl</email>
</author>
<published>2021-02-06T19:58:04Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=89ed816c670abdc74fe02b484fe148bc5658564c'/>
<id>urn:sha1:89ed816c670abdc74fe02b484fe148bc5658564c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor(hold-tap): pretty print decision_moment</title>
<updated>2021-02-24T12:24:27Z</updated>
<author>
<name>Okke Formsma</name>
<email>okke@formsma.nl</email>
</author>
<published>2021-02-04T13:30:53Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=9c4c266b17f6fec4866d65bec0889233845b6282'/>
<id>urn:sha1:9c4c266b17f6fec4866d65bec0889233845b6282</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor(hold-tap): split hold state into interrupt and timer</title>
<updated>2021-02-24T12:24:27Z</updated>
<author>
<name>Okke Formsma</name>
<email>okke@formsma.nl</email>
</author>
<published>2021-02-04T12:50:13Z</published>
<link rel='alternate' type='text/html' href='http://git.nvandoorn.com/zmk.git/commit/?id=abc60fc7cb5c145bff9029a1aadd73c5adbf4a7b'/>
<id>urn:sha1:abc60fc7cb5c145bff9029a1aadd73c5adbf4a7b</id>
<content type='text'>
</content>
</entry>
</feed>
