Security-hardened QMK firmware for the Corne v4.1 (crkbd rev4_1 standard). Designed for high-security environments where dynamic memory access (VIA/Vial) and unidentified USB devices are prohibited by IT security policies.
Unlike standard firmwares, this setup is a Static Source of Truth:
- No Dynamic Storage: VIA, Vial, and Raw HID are completely disabled. Layout changes require a physical re-flash.
- USB Stealth Identity: Identifies as a "Generic USB HID Keyboard" to bypass USB whitelists and security scanners.
- German Umlaute: Fast access to
ä, ö, ü, ßvia the Raise Layer (mapped to US-ANSI AltGr combinations). - Numpad Homing: Numeric
5is hardcoded on theJkey (homing bar) for blind, calculator-style typing. - Home Row Combos: Essential symbols (`[ ] { } ( ) \ | ~ ``) accessible via simultaneous keypresses on the home row.
- Shift-Backspace Morph:
Shift + Backspaceautomatically sendsDelete. - Mod-Tap Logic:
Tabacts asControlwhen held, andTabwhen tapped. - Feature Lockdown: RGB, console, and command interfaces disabled for minimal attack surface.
- Corporate Compliance & Banking
- Digital Forensics / Incident Response (DFIR)
- Focus & Minimalist Workflow
- E-Sports / Competitive Play
- Prerequisites
- Installation
- Configuration Details
- Combo Reference
- Building and Flashing
- Security Audit
- Web-Editor Workflow
Install the required build tools (Example for Fedora):
sudo dnf install arm-none-eabi-gcc-cs arm-none-eabi-newlib dfu-util git
# Install QMK CLI
uv tool install qmk
qmk setup# Clone the repository
git clone <your-repo-url>
cd corne-restricted-environment-config
# Create a symlink to your QMK firmware directory
ln -s "$PWD" ~/qmk_firmware/keyboards/crkbd/rev4_1/standard/keymaps/restrictedTo minimize the attack surface and power consumption:
RGB_MATRIX_ENABLE = no- All LEDs disabledCONSOLE_ENABLE = no- No debug data sent over USBCOMMAND_ENABLE = no- Disables "Magic" boot commandsVIA_ENABLE = no- Prevents unauthorized layout changes
| Keys (Layer 0) | Result | Description |
|---|---|---|
| J + K | ESC |
Escape |
| D + F | ( |
Left Parenthesis |
| H + J | ) |
Right Parenthesis |
| R + T | [ |
Left Bracket |
| Y + U | ] |
Right Bracket |
| V + B | { |
Left Brace |
| N + M | } |
Right Brace |
| . + / | \ |
Backslash |
| / + Shift | | |
Pipe |
| L + ; | ~ |
Tilde |
| ; + ' | ` |
Backtick / Grave |
chmod +x flashscript.sh
./flashscript.shSingle-Flash (Recommended):
Connect both keyboard halves together with the TRRS cable before flashing. This allows flashing both halves in one step:
- Connect the TRRS cable between both halves.
- Start the script.
- Put the left half into Bootloader Mode (double-tap the Reset button).
- The firmware will be flashed to both halves automatically.
Dual-Flash (Separate):
If flashing halves independently:
- Start the script.
- Put the left half into Bootloader Mode.
- Wait for flash to complete.
- Repeat for the right half.
To verify the firmware's integrity:
- Source Check: Review
rules.mkto ensureVIAL_ENABLEandVIA_ENABLEare set tono. - Device Identity: After flashing, the OS will list the device as a "Generic USB HID Keyboard".
- Static Analysis: All macros and combos are hardcoded in
keymap.c, leaving no writeable user-space memory.
For those who prefer a visual interface, use the QMK Configurator. To maintain security, you must convert the JSON output back to a static C file.
qmk c2json -kb crkbd/rev4_1/standard -km restricted keymap.c > keymap.jsonUpload this keymap.json to the "Import" section on the QMK website.
After downloading your edited keymap.json from the web-editor:
qmk json2c keymap.json > keymap.cNote: Custom C-features (Key Overrides, Combos, and special Umlaut-Logic) must be manually re-verified in the
keymap.cafter conversion, as the JSON format does not support complex logic blocks.

