This is the rustenuine firmware for the Chew keyboard!
It performs some cool hacks that keyboard enthusiasts love:
- Layers
- Set default
- Activated as long as a key is held down (the best ❤️)
- Dead key style (activated until another key is pressed)
- Homerows
- Hold down to activate a modifier
- Press to print a regular key
- Combos
- Two keys pressed at once result in a third one
- Leader key
- Once activated, it allows you to hit a sequence (3 keys max) to produce another key
- Leave it with Escape or a wrong key
- Macros
- One key can produce a chain of keys (e.g. to automate accents or email addresses)
- Mouse emulation
- No mods
- Prevent modifiers with specific keys (e.g. no shifted symbols)
- Caplock
- Deactivated by itself or Escape
Here's my current layout which uses the US international extended keymap.
The letter positions come from Ergo-L which is the best French layout.
Clone this repo:
git clone https://github.com/flinguenheld/rustychew
Then, hold down the controller's boot button and plug in the usb cable.
Mount the controller's drive and use one of these commands:
cargo run --release --bin mono
Split with the 0xCB-Gemini controller
This controller has a vbus detection that allows the keyboard to know which side is connected to the computer.
Therefore once you have flashed both sides with the split command, you'll be able to use any of them as master.
cargo run --release --bin split
Split with the RP2040-Zéro controller
For this one, the position of the master is fixed, you have to make your choice and flash both side with one of these commands:
cargo run --release --bin split --features master
cargo run --release --bin split --features slave
Rusty Chew uses the usbd-human-interface-device crate which simplifies
the usb management a lot ❤️.
Also the pio-uart which allowed me to create a UART half-duplex protocol.
And the rp-hal-boards that I used as a base to use the RP2040-zero controller.