kanata-keyberon-0.190.0/.cargo_vcs_info.json0000644000000001460000000000100142570ustar { "git": { "sha1": "b111e370d2ec9fcff17a8a5193a1dbee775b88d9" }, "path_in_vcs": "keyberon" }kanata-keyberon-0.190.0/.gitignore000064400000000000000000000000751046102023000150400ustar 00000000000000# Ignore Cargo.lock since this is a library crate Cargo.lock kanata-keyberon-0.190.0/CHANGELOG.md000064400000000000000000000027051046102023000146630ustar 00000000000000# v0.2.0 * New Keyboard::leds_mut function for getting underlying leds object. * Made Layout::current_layer public for getting current active layer. * Added a procedural macro for defining layouts (`keyberon::layout::layout`) * Corrected HID report descriptor * Add max_packet_size() to HidDevice to allow differing report sizes * Allows default layer to be set on a Layout externally * Add Chording for multiple keys pressed at the same time to equal another key Breaking changes: * Row and Column pins are now a simple array. For the STM32 MCU, you should now use `.downgrade()` to have an homogenous array. * `Action::HoldTap` now takes a configuration for different behaviors. * `Action::HoldTap` now takes the `tap_hold_interval` field. Not implemented yet. * `Action` is now generic, for the `Action::Custom(T)` variant, allowing custom actions to be handled outside of keyberon. This functionality can be used to drive non keyboard actions, such as resetting the microcontroller, driving leds (for backlight or underglow for example), managing a mouse emulation, or any other ideas you can have. As there is a default value for the type parameter, the update should be transparent. * Layers don't sum anymore, the last pressed layer action set the layer. * Rename MeidaCoffee in MediaCoffee to fix typo. # v0.1.1 * HidClass::control_xxx: check interface number [#26](https://github.com/TeXitoi/keyberon/pull/26) # v0.1.0 First published version. kanata-keyberon-0.190.0/Cargo.lock0000644000000100750000000000100122340ustar # This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 4 [[package]] name = "arraydeque" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" [[package]] name = "atomic-polyfill" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" dependencies = [ "critical-section", ] [[package]] name = "autocfg" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "byteorder" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "critical-section" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "hash32" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" dependencies = [ "byteorder", ] [[package]] name = "heapless" version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" dependencies = [ "atomic-polyfill", "hash32", "rustc_version", "spin", "stable_deref_trait", ] [[package]] name = "kanata-keyberon" version = "0.190.0" dependencies = [ "arraydeque", "heapless", "kanata-keyberon-macros", "rustc-hash", ] [[package]] name = "kanata-keyberon-macros" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f6f83f03390a5c13bbf68abea76a2b9527e197f5c00026805fd7af62a34752" dependencies = [ "proc-macro2", "quote", ] [[package]] name = "lock_api" version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", ] [[package]] name = "proc-macro2" version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] [[package]] name = "quote" version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] [[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "semver" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" dependencies = [ "lock_api", ] [[package]] name = "stable_deref_trait" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "unicode-ident" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" kanata-keyberon-0.190.0/Cargo.toml0000644000000024640000000000100122620ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" name = "kanata-keyberon" version = "0.190.0" authors = [ "Guillaume Pinot ", "Robin Krahl ", "jtroo ", ] build = false autolib = false autobins = false autoexamples = false autotests = false autobenches = false description = "Pure Rust keyboard firmware. Fork intended for use with kanata." documentation = "https://docs.rs/keyberon" readme = "README.md" keywords = [ "keyboard", "kanata", ] categories = ["no-std"] license = "MIT" repository = "https://github.com/TeXitoi/keyberon" [lib] name = "kanata_keyberon" path = "src/lib.rs" [dependencies.arraydeque] version = "0.5.1" default-features = false [dependencies.heapless] version = "0.7.16" [dependencies.kanata-keyberon-macros] version = "0.2.0" [dependencies.rustc-hash] version = "1.1.0" kanata-keyberon-0.190.0/Cargo.toml.orig000064400000000000000000000011661046102023000157410ustar 00000000000000[package] name = "kanata-keyberon" version = "0.190.0" authors = ["Guillaume Pinot ", "Robin Krahl ", "jtroo "] edition = "2021" description = "Pure Rust keyboard firmware. Fork intended for use with kanata." documentation = "https://docs.rs/keyberon" repository = "https://github.com/TeXitoi/keyberon" keywords = ["keyboard", "kanata"] categories = ["no-std"] license = "MIT" readme = "README.md" [dependencies] kanata-keyberon-macros = { version = "0.2.0" } heapless = "0.7.16" rustc-hash = "1.1.0" arraydeque = { version = "0.5.1", default-features = false } kanata-keyberon-0.190.0/KEYBOARDS.md000064400000000000000000000067021046102023000147200ustar 00000000000000| Keyboard | PCB or Handwired | MCU | Feature Status | | - | - | - | - | | [KeySeeBee](https://github.com/TeXitoi/keyseebee) | PCB | STM32F072 |
  • [x] Matrix
  • [x] Split
| | [Keyberon-f4](https://github.com/TeXitoi/keyberon-f4) | Handwired | STM32F401 |
  • [x] Matrix
| | [Arisu](https://github.com/help-14/arisu-handwired) | Handwired | STM32F401 |
  • [x] Matrix
| | [ortho60-keyberon](https://github.com/TeXitoi/ortho60-keyberon) | PCB | STM32F103 |
  • [x] Matrix
| | [keyberon-grid](https://github.com/TeXitoi/keyberon-grid) | Handwired | STM32F103 |
  • [x] Matrix
| | [Clueboard 66% LP](https://github.com/wezm/clueboard-rust-firmware) | PCB | STM32F303 |
  • [x] Matrix
  • [ ] LEDs
  • [ ] Speakers
| | [anne-keyberon](https://github.com/hdhoang/anne-keyberon) | PCB | STM32L151 |
  • [ ] Matrix
  • [ ] BT proto
  • [ ] LED proto
  • [ ] LED MCU
| | [corne-xiao](https://github.com/lehmanju/corne-xiao) | PCB | ATSAMD21 |
  • [x] Matrix
| | [pinci](https://github.com/camrbuss/pinci) | PCB | RP2040 |
  • [x] Matrix
  • [x] Split
| | [nibble-rp2040-rs](https://github.com/DrewTChrist/nibble-rp2040-rs) | PCB | RP2040 |
  • [x] Matrix
  • [ ] Rotary Encoder
  • [ ] RGB LEDs
  • [ ] OLED
| | [keyboard-labs](https://github.com/rgoulter/keyboard-labs) | PCB | STM32F401 |
  • [x] Matrix
  • [x] Split
| | [makerdiary M60](https://github.com/jamesmunns/m60-keyboard/) | PCB | nRF52840 |