This repository builds custom ZMK firmware for the GEIST Totem split keyboard with Seeeduino XIAO BLE controllers. The active user layout is config/totem.keymap; the larger keymap under boards/shields/totem/ is the shield default.
The configuration provides four layers, mouse controls, sticky modifiers, Caps Word, NKRO, Bluetooth profile management and ZMK Studio support.
config/totem.keymap defines Base, Symbol, Navigation and Adjust layers. Pressing the Symbol and Navigation layer keys together activates Adjust through a conditional layer.
GitHub Actions builds left, right and settings-reset UF2 images from build.yaml. Studio RPC is enabled on the left half, allowing live keymap changes over USB; the configuration keeps Studio locking enabled.
Base uses QWERTY. Symbol contains brackets and operators, Navigation combines arrows, numbers and mouse controls, and Adjust contains media, Bluetooth and function keys.
Navigation provides pointer movement, buttons and scrolling through ZMK's pointing support.
One-shot modifiers use quick release and a one-second timeout. Caps Word continues through underscore, minus and backspace.
The left-half build includes Studio RPC over USB UART. Studio locking remains enabled in config/totem.conf.
NKRO is enabled, with commands for Bluetooth profile selection, clearing pairings and switching output between USB and Bluetooth.
The build matrix produces separate left/right UF2 files plus settings-reset firmware for recovery.