From 1a1e1ec8355573ada7767e0acd2191ea4971fe71 Mon Sep 17 00:00:00 2001 From: xs Date: Thu, 19 Feb 2026 16:27:49 +0000 Subject: [PATCH 1/2] docs: report project status as unmaintained --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index ed49890ea..c1a185914 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,13 @@ KMK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in [CircuitPython](https://github.com/adafruit/circuitpython). +## Status + +KMK is no longer actively maintained and on limited life support. +Issues and pull requests will not be addressed for the time being. +Volunteers for taking on the project can voice their interest in the +[Zulip Chat](https://kmkfw.zulipchat.com). + ## Support For asynchronous support and chatter about KMK, [join our Zulip From 0473487af159fa5e721d84614f83df638e93a69d Mon Sep 17 00:00:00 2001 From: "regicidal.plutophage" <36969337+regicidalplutophage@users.noreply.github.com> Date: Thu, 19 Feb 2026 19:08:04 +0100 Subject: [PATCH 2/2] fix spelling: scanners.md --- docs/en/scanners.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/scanners.md b/docs/en/scanners.md index cc34ef167..43280b3c0 100644 --- a/docs/en/scanners.md +++ b/docs/en/scanners.md @@ -184,7 +184,7 @@ class MyKeyboard(KMKKeyboard): ] ``` -If your design requires symetrical encoders (e.g. one on each half of a split keyboard), see Multiple Scanners section below for more details. +If your design requires symmetrical encoders (e.g. one on each half of a split keyboard), see Multiple Scanners section below for more details. ## `Scanner` base class @@ -223,7 +223,7 @@ class MyKeyboard(KMKKeyboard): #### Adding Single-Pin Buttons or Rotary Encoders to Keymap Using Scanners and Split -In many cases, split keybaords are symetrical in form and function. Some split keyboards also have additional hardware like one or more rotary encoders, or non-matrix-connected media or macro buttons. In this case, you will want to configure multiple scanners. +In many cases, split keyboards are symmetrical in form and function. Some split keyboards also have additional hardware like one or more rotary encoders, or non-matrix-connected media or macro buttons. In this case, you will want to configure multiple scanners. The `Split` class that you're probably already using creates the `coord_mapping` indexes automatically. However, the `add_buttons` argument will cause it to append any additional "buttons" (or encoder actions) to the `coord_mapping` for _each half_ of the keyboard. @@ -271,7 +271,7 @@ if __name__ == '__main__': #### Multiple Scanners `coord_mapping` and keymap changes For a more manually-controlled configuration, you can add any other scanners that you need and create your `coord_mapping` in your own code (leaving off the `add_buttons` argument when initializing `Split`) -Creating and assigning a custom `coord_mapping` should be done before intitializing `Split` or any scanners. +Creating and assigning a custom `coord_mapping` should be done before initializing `Split` or any scanners. The below examples illustrate how the additional encoder actions are assigned to the `coord_mapping`. Your configuration should follow this pattern. @@ -309,4 +309,4 @@ Notice that, despite the visual layout, all of the encoder keys are at the **_en Therefore, 4 more key codes can be added in the corresponding places in the `keyboard.keymap`, and they will be assigned to the encoders' actions. -Also note, it may be necessary to configure `Split().split_offset` when configuring your own `coord_mapping` to make sure that the encoders are assigned properly. The value will usually be the first/lowest index value of the right side. In the case of the second example above, the offset value would be 32, but this also depends on your `coord_mapping` layout. \ No newline at end of file +Also note, it may be necessary to configure `Split().split_offset` when configuring your own `coord_mapping` to make sure that the encoders are assigned properly. The value will usually be the first/lowest index value of the right side. In the case of the second example above, the offset value would be 32, but this also depends on your `coord_mapping` layout.