Giter VIP home page Giter VIP logo

kmk_firmware's Introduction

KMK: Clackety Keyboards Powered by Python

GitHub GitHub contributors Discord Lines of code GitHub issues GitHub closed issues

Documentation available at ๐Ÿ“– kmkfw.io.

KMK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in CircuitPython.

KMK is currently looking for maintainers. If you like keyboards and/or Python, and ideally have contributed to KMK in the past, and are interested in (co-)maintaining KMK, comment on the relevant GitHub issue or drop by the Matrix channel below.

If you need support with KMK or just want to say hi, find us in #kmkfw:klar.sh on Matrix. This channel is bridged to Discord here for convenience.

Features

Getting Started

KMK requires CircuitPython version 7.0 or higher. Our getting started guide can be found here.

The KMK Team

KMK was originally authored by @klardotsh and @kdb424 over the winter of 2018-19, and has been contributed to by numerous others since. Contributions are welcome from all, whether it's in the form of code, documentation, hardware designs, feature ideas, or anything else that comes to mind. A list of KMK's contributors can be found on GitHub.

While Adafruit employees and affiliates are occasionally found in the commit log and their help has been crucial to KMK's success, KMK is not an official Adafruit project, and the Core team is not compensated by Adafruit for its development.

Code Style

KMK uses Black with a Python 3.6 target and, (controversially?) single quotes. Further code styling is enforced with isort and flake8 with several plugins. make fix-isort fix-formatting before a commit is a good idea, and CI will fail if inbound code does not adhere to these formatting rules. Some exceptions are found in setup.cfg loosening the rules in isolated cases, notably user_keymaps (which is also not subject to Black formatting for reasons documented in pyproject.toml).

Tests

Unit tests within the tests folder mock various CircuitPython modules to allow them to be executed in a desktop development environment.

Execute tests using the command python -m unittest.

License, Copyright, and Legal

All software in this repository is licensed under the GNU Public License, version 3. All documentation and hardware designs are licensed under the Creative Commons Attribution-ShareAlike 4.0 license. Contributions to this repository must use these licenses unless otherwise agreed to by the Core team.

Due to ethical and legal concerns, any works derived from GitHub Copilot or similar artificial intelligence tooling are unacceptable for inclusion in any first-party KMK repository or other code collection. We further recommend not using GitHub Copilot while developing anything KMK-related, regardless of intent to submit upstream.

kmk_firmware's People

Contributors

andersontorres avatar atsuyuki avatar bigtuna94 avatar crazyiop avatar daysgobye avatar doesntfazer avatar dzervas avatar elric91 avatar fivetide avatar giovanniborella avatar glebsexy avatar hbbisenieks avatar hendrix04 avatar honboubao avatar jawfish avatar jpconstantineau avatar kdb424 avatar klardotsh avatar ldsands avatar leon-anavi avatar lukedrussell avatar masiullah avatar morrijr avatar nogg3r5 avatar patrickmcquay avatar rrotter avatar slabua avatar tonasz avatar vyldr avatar yoichiro avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.