<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qmk_firmware/builddefs/generic_features.mk, branch master</title>
<subtitle>QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)</subtitle>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/'/>
<entry>
<title>Refactor battery driver (#25550)</title>
<updated>2025-08-17T00:14:48+00:00</updated>
<author>
<name>Joel Challis</name>
<email>git@zvecr.com</email>
</author>
<published>2025-08-17T00:14:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=cc696a2ae838a9639335ca8eb3cb3b794c06bc33'/>
<id>cc696a2ae838a9639335ca8eb3cb3b794c06bc33</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement connection keycode logic (#25176)</title>
<updated>2025-04-21T21:27:56+00:00</updated>
<author>
<name>Joel Challis</name>
<email>git@zvecr.com</email>
</author>
<published>2025-04-21T21:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=c7cb7ba9765b35930a26ec247e362615ffd10ed2'/>
<id>c7cb7ba9765b35930a26ec247e362615ffd10ed2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Non-volatile memory data repository pattern (#24356)</title>
<updated>2025-03-21T12:38:34+00:00</updated>
<author>
<name>Nick Brassel</name>
<email>nick@tzarc.org</email>
</author>
<published>2025-03-21T12:38:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=2b00b846dce1d1267dfdb2a3c2972a367cc0dd44'/>
<id>2b00b846dce1d1267dfdb2a3c2972a367cc0dd44</id>
<content type='text'>
* First batch of eeconfig conversions.

* Offset and length for datablocks.

* `via`, `dynamic_keymap`.

* Fix filename.

* Commentary.

* wilba leds

* satisfaction75

* satisfaction75

* more keyboard whack-a-mole

* satisfaction75

* omnikeyish

* more whack-a-mole

* `generic_features.mk` to automatically pick up nvm repositories

* thievery

* deferred variable resolve

* whitespace

* convert api to structs/unions

* convert api to structs/unions

* convert api to structs/unions

* fixups

* code-side docs

* code size fix

* rollback

* nvm_xxxxx_erase

* Updated location of eeconfig magic numbers so non-EEPROM nvm drivers can use them too.

* Fixup build.

* Fixup compilation error with encoders.

* Build fixes.

* Add `via_ci` keymap to onekey to exercise VIA bindings (and thus dynamic keymap et.al.), fixup compilation errors based on preprocessor+sizeof.

* Build failure rectification.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* First batch of eeconfig conversions.

* Offset and length for datablocks.

* `via`, `dynamic_keymap`.

* Fix filename.

* Commentary.

* wilba leds

* satisfaction75

* satisfaction75

* more keyboard whack-a-mole

* satisfaction75

* omnikeyish

* more whack-a-mole

* `generic_features.mk` to automatically pick up nvm repositories

* thievery

* deferred variable resolve

* whitespace

* convert api to structs/unions

* convert api to structs/unions

* convert api to structs/unions

* fixups

* code-side docs

* code size fix

* rollback

* nvm_xxxxx_erase

* Updated location of eeconfig magic numbers so non-EEPROM nvm drivers can use them too.

* Fixup build.

* Fixup compilation error with encoders.

* Build fixes.

* Add `via_ci` keymap to onekey to exercise VIA bindings (and thus dynamic keymap et.al.), fixup compilation errors based on preprocessor+sizeof.

* Build failure rectification.</pre>
</div>
</content>
</entry>
<entry>
<title>[Core] get_keycode_string(): function to format keycodes as strings, for more readable debug logging. (#24787)</title>
<updated>2025-03-19T19:45:56+00:00</updated>
<author>
<name>Pascal Getreuer</name>
<email>50221757+getreuer@users.noreply.github.com</email>
</author>
<published>2025-03-19T19:45:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=3484f0a0dffd264ae3bef70ce2a8961489c16f50'/>
<id>3484f0a0dffd264ae3bef70ce2a8961489c16f50</id>
<content type='text'>
* keycode_string(): Format keycodes as strings.

This adds the `keycode_string()` function described in
https://getreuer.info/posts/keyboards/keycode-string/index.html
as a core feature.

* Fix formatting.

* keycode_string review revisions.

* Rename keycode_string() -&gt; get_keycode_string() for consistency with
  existing string utils like get_u8_str().

* Revise custom keycode names with separate _user and _kb tables.

* Correct indent in builddefs/generic_features.mk.

Co-authored-by: Ryan &lt;fauxpark@gmail.com&gt;

* Add KC_NUHS, KC_NUBS, and KC_CAPS.

* Fix linking error with custom names.

* Attempt at simplifying interface.

* Formatting fix.

* Several fixes and revisions.

* Don't use PSTR in KEYCODE_STRING_NAME, since this fails to build on
  AVR. Store custom names in RAM.
* Revise the internal table of common keycode names to use its own
  storage representation, still in PROGMEM, and now more efficiently
  stored flat in 8 bytes per entry.
* Support Swap Hands keycodes and a few other keycodes.

* Revert "Formatting fix."

This reverts commit 2a2771068c7ee545ffac4103aa07e847a9ec3816.

* Revert "Attempt at simplifying interface."

This reverts commit 8eaf67de76e75bc92d106a8b0decc893fbc65fa5.

* Simplify custom names API by sigprof's suggestion.

* Support more keycodes.

* Add QK_LOCK keycode.
* Add Secure keycodes.
* Add Joystick keycodes.
* Add Programmable Button keycodes.
* Add macro MC_ keycodes.
* For remaining keys in known code ranges, stringify them as
  "QK_&lt;feature&gt;+&lt;number&gt;". For instance, "QK_MIDI+7".

* Bug fix and a few improvements.

* Fix missing right-hand bit when displaying 5-bit mods numerically.
* Support KC_HYPR, KC_MEH, HYPR_T(kc), MEH_T(kc).
* Exclude one-shot keycodes when NO_ACTION_ONESHOT is defined.

---------

Co-authored-by: Ryan &lt;fauxpark@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* keycode_string(): Format keycodes as strings.

This adds the `keycode_string()` function described in
https://getreuer.info/posts/keyboards/keycode-string/index.html
as a core feature.

* Fix formatting.

* keycode_string review revisions.

* Rename keycode_string() -&gt; get_keycode_string() for consistency with
  existing string utils like get_u8_str().

* Revise custom keycode names with separate _user and _kb tables.

* Correct indent in builddefs/generic_features.mk.

Co-authored-by: Ryan &lt;fauxpark@gmail.com&gt;

* Add KC_NUHS, KC_NUBS, and KC_CAPS.

* Fix linking error with custom names.

* Attempt at simplifying interface.

* Formatting fix.

* Several fixes and revisions.

* Don't use PSTR in KEYCODE_STRING_NAME, since this fails to build on
  AVR. Store custom names in RAM.
* Revise the internal table of common keycode names to use its own
  storage representation, still in PROGMEM, and now more efficiently
  stored flat in 8 bytes per entry.
* Support Swap Hands keycodes and a few other keycodes.

* Revert "Formatting fix."

This reverts commit 2a2771068c7ee545ffac4103aa07e847a9ec3816.

* Revert "Attempt at simplifying interface."

This reverts commit 8eaf67de76e75bc92d106a8b0decc893fbc65fa5.

* Simplify custom names API by sigprof's suggestion.

* Support more keycodes.

* Add QK_LOCK keycode.
* Add Secure keycodes.
* Add Joystick keycodes.
* Add Programmable Button keycodes.
* Add macro MC_ keycodes.
* For remaining keys in known code ranges, stringify them as
  "QK_&lt;feature&gt;+&lt;number&gt;". For instance, "QK_MIDI+7".

* Bug fix and a few improvements.

* Fix missing right-hand bit when displaying 5-bit mods numerically.
* Support KC_HYPR, KC_MEH, HYPR_T(kc), MEH_T(kc).
* Exclude one-shot keycodes when NO_ACTION_ONESHOT is defined.

---------

Co-authored-by: Ryan &lt;fauxpark@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[Core] Add Layer Lock feature (#23430)</title>
<updated>2024-11-21T06:31:54+00:00</updated>
<author>
<name>Drashna Jaelre</name>
<email>drashna@live.com</email>
</author>
<published>2024-11-21T06:31:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=36b5559b997cedd14a352aa70891558936b8b3a3'/>
<id>36b5559b997cedd14a352aa70891558936b8b3a3</id>
<content type='text'>
Co-authored-by: Daniel &lt;1767914+iamdanielv@users.noreply.github.com&gt;
Co-authored-by: Pascal Getreuer &lt;getreuer@google.com&gt;
Co-authored-by: Pascal Getreuer &lt;50221757+getreuer@users.noreply.github.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Daniel &lt;1767914+iamdanielv@users.noreply.github.com&gt;
Co-authored-by: Pascal Getreuer &lt;getreuer@google.com&gt;
Co-authored-by: Pascal Getreuer &lt;50221757+getreuer@users.noreply.github.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Begin removal of bootmagic lite terminology (#22970)</title>
<updated>2024-01-28T22:51:58+00:00</updated>
<author>
<name>Joel Challis</name>
<email>git@zvecr.com</email>
</author>
<published>2024-01-28T22:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=5cd31fda9c1302044f4423d940be7c888d15ad1a'/>
<id>5cd31fda9c1302044f4423d940be7c888d15ad1a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Migrate some common features to generic (#22403)</title>
<updated>2023-11-09T02:01:44+00:00</updated>
<author>
<name>Joel Challis</name>
<email>git@zvecr.com</email>
</author>
<published>2023-11-09T02:01:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=147865cf57feaf9dfb59aeeffa8b1d541c064d93'/>
<id>147865cf57feaf9dfb59aeeffa8b1d541c064d93</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow generic_features to handle subdirectories (#22400)</title>
<updated>2023-11-04T20:33:52+00:00</updated>
<author>
<name>Joel Challis</name>
<email>git@zvecr.com</email>
</author>
<published>2023-11-04T20:33:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=3143a7597fc32dde3fefa484130dd9b33cac57bf'/>
<id>3143a7597fc32dde3fefa484130dd9b33cac57bf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move velocikey to within rgblight (#22123)</title>
<updated>2023-09-25T16:48:10+00:00</updated>
<author>
<name>Joel Challis</name>
<email>git@zvecr.com</email>
</author>
<published>2023-09-25T16:48:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=339bff63393cda8bd6e8358e09d04b50ff9ac010'/>
<id>339bff63393cda8bd6e8358e09d04b50ff9ac010</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Core] Add Repeat Key ("repeat last key") as a core feature. (#19700)</title>
<updated>2023-05-20T12:35:06+00:00</updated>
<author>
<name>Pascal Getreuer</name>
<email>50221757+getreuer@users.noreply.github.com</email>
</author>
<published>2023-05-20T12:35:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=3993b15f054265071730cdb450f43457dcf4c64a'/>
<id>3993b15f054265071730cdb450f43457dcf4c64a</id>
<content type='text'>
Co-authored-by: casuanoob &lt;96005765+casuanoob@users.noreply.github.com&gt;
Co-authored-by: Sergey Vlasov &lt;sigprof@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: casuanoob &lt;96005765+casuanoob@users.noreply.github.com&gt;
Co-authored-by: Sergey Vlasov &lt;sigprof@gmail.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
