Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
What Happens When | 36,710 | 5 days ago | 712 | |||||||
An attempt to answer the age old interview question "What happens when you type google.com into your browser and press enter?" | ||||||||||
How Web Works | 13,390 | 3 months ago | 6 | |||||||
What happens behind the scenes when we type www.google.com in a browser? | ||||||||||
Tmk_keyboard | 3,802 | a month ago | 167 | C | ||||||
Keyboard firmwares for Atmel AVR and Cortex-M | ||||||||||
Mechanical Keyboard | 2,246 | 11 days ago | ||||||||
DIY mechanical keyboard and where to find them | ||||||||||
Usbdriveby | 1,086 | 6 years ago | 6 | gpl-2.0 | Arduino | |||||
USBdriveby exploits the trust of USB devices by emulating an HID keyboard and mouse, installing a cross-platform firewall-evading backdoor, and rerouting DNS within seconds of plugging it in. | ||||||||||
Duckypad | 1,012 | 2 days ago | 46 | mit | C | |||||
Do-It-All Mechanical Macropad | ||||||||||
Kmk_firmware | 951 | a day ago | 75 | other | Python | |||||
Clackety Keyboards Powered by Python | ||||||||||
Keyberon | 780 | 1 | 2 months ago | 4 | July 16, 2022 | 20 | mit | Rust | ||
A rust crate to create a pure rust keyboard firmware. | ||||||||||
Discipline | 695 | 2 years ago | 19 | other | ||||||
65% keyboard assembled with only through hole components, including usb type-c | ||||||||||
Android Keyboard Gadget | 652 | 3 years ago | 60 | apache-2.0 | C | |||||
Convert your Android device into USB keyboard/mouse, control your PC from your Android device remotely, including BIOS/bootloader. |
KMK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in CircuitPython.
For asynchronous support and chatter about KMK, join our Zulip community!
If you ask for help in chat or open a bug report, if possible make sure your copy of KMK is up-to-date. In particular, swing by the Zulip chat before opening a GitHub Issue about configuration, documentation, etc. concerns.
The former Matrix and Discord rooms once linked to in this README are no longer officially supported, please do not use them!
KC.LWIN(KC.L)
to lock the screen on a Windows PCKMK requires CircuitPython version 7.0 or higher. Our getting started guide can be found here.
KMK uses Black with a Python 3.11 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
).
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
.
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.