Firmware for the IXKB nRF52840 keyboard, built against a pinned upstream ZMK revision.
The default ixkb//zmk target includes the key matrix, encoder, USB and Bluetooth
keyboard reports, battery monitoring, analog X/Y axes, and the dedicated joystick
HID reports over both USB and Bluetooth.
Docker is the only local prerequisite:
./scripts/build.shThe build uses an ignored west workspace under .workspaces/ and writes exactly
two files:
artifacts/ixkb.uf2
artifacts/settings-reset.uf2
GitHub Actions builds the same two entries from build.yaml.
Flash ixkb.uf2 for normal use.
To clear stored Bluetooth profiles and settings, flash settings-reset.uf2, allow
it to boot once, and then flash ixkb.uf2 again.
The upper-right key provides two local macro slots:
- Pressing it alone invokes
local_macro_1. - Pressing it with either Shift key invokes
local_macro_2.
Without a local configuration, these slots retain the existing F13 and Shift+F13 behavior. To define private sequences for local builds:
cp config/ixkb.local.overlay.example config/ixkb.local.overlayEdit the copied overlay, then run ./scripts/build.sh. The live overlay is ignored
by Git and rejected by the build if it becomes tracked or stops being ignored.
GitHub Actions never receives this local file.
Do not store passwords, tokens, or recovery codes in firmware macros. Generated firmware and debug data can expose the configured sequences.