config for my ergodox

init

+10
README.md
···
··· 1 + ### qmk-config 2 + 3 + qmk configuration for ergodox 4 + Uses nix to build and flash the firmware 5 + The configurations are generated by qmk online tool 6 + 7 + ### flash 8 + 9 + To flash, simply run nix run `.#$KEYBOARD` where `$KEYBOARD` is the desired keyboard 10 + Or you can manually use qmk command line if you use nix develop.
+167
ergodox.json
···
··· 1 + { 2 + "version": 1, 3 + "notes": "", 4 + "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", 5 + "keyboard": "ergodox_ez/base", 6 + "keymap": "ergodox_ez_base_layout_ergodox_pretty_2025-09-28", 7 + "layout": "LAYOUT_ergodox_pretty", 8 + "layers": [ 9 + [ 10 + "KC_ESC", 11 + "KC_1", 12 + "KC_2", 13 + "KC_3", 14 + "KC_4", 15 + "KC_5", 16 + "KC_LEFT", 17 + "KC_RGHT", 18 + "KC_6", 19 + "KC_7", 20 + "KC_8", 21 + "KC_9", 22 + "KC_0", 23 + "KC_EQL", 24 + "KC_GRV", 25 + "KC_QUOT", 26 + "KC_COMM", 27 + "KC_DOT", 28 + "KC_P", 29 + "KC_Y", 30 + "KC_LBRC", 31 + "KC_RBRC", 32 + "KC_F", 33 + "KC_G", 34 + "KC_C", 35 + "KC_R", 36 + "KC_L", 37 + "KC_BSLS", 38 + "KC_BSPC", 39 + "KC_A", 40 + "KC_O", 41 + "KC_E", 42 + "KC_U", 43 + "KC_I", 44 + "KC_D", 45 + "KC_H", 46 + "KC_T", 47 + "KC_N", 48 + "KC_S", 49 + "KC_SLSH", 50 + "KC_LSFT", 51 + "KC_SCLN", 52 + "KC_Q", 53 + "KC_J", 54 + "KC_K", 55 + "KC_X", 56 + "KC_LPRN", 57 + "KC_RPRN", 58 + "KC_B", 59 + "KC_M", 60 + "KC_W", 61 + "KC_V", 62 + "KC_Z", 63 + "KC_MINS", 64 + "KC_LCTL", 65 + "LALT(KC_LSFT)", 66 + "KC_NO", 67 + "KC_LEFT", 68 + "KC_RGHT", 69 + "KC_UP", 70 + "KC_DOWN", 71 + "KC_NO", 72 + "KC_RALT", 73 + "KC_RCTL", 74 + "LCG(KC_ENT)", 75 + "LCTL(KC_B)", 76 + "LCTL(KC_W)", 77 + "LCTL(KC_P)", 78 + "LCTL(KC_O)", 79 + "LCTL(KC_E)", 80 + "KC_SPC", 81 + "KC_ENT", 82 + "LT(1,KC_NO)", 83 + "LT(1,KC_NO)", 84 + "KC_TAB", 85 + "KC_LGUI" 86 + ], 87 + [ 88 + "KC_NO", 89 + "KC_F1", 90 + "KC_F2", 91 + "KC_F3", 92 + "KC_F4", 93 + "KC_F5", 94 + "KC_TRNS", 95 + "KC_TRNS", 96 + "KC_F6", 97 + "KC_F7", 98 + "KC_F8", 99 + "KC_F9", 100 + "KC_F10", 101 + "KC_F11", 102 + "KC_TRNS", 103 + "KC_EXLM", 104 + "KC_AT", 105 + "KC_UP", 106 + "KC_DLR", 107 + "KC_PERC", 108 + "KC_TRNS", 109 + "KC_TRNS", 110 + "KC_PMNS", 111 + "KC_7", 112 + "KC_8", 113 + "KC_9", 114 + "KC_ASTR", 115 + "KC_F12", 116 + "KC_TRNS", 117 + "KC_LPRN", 118 + "KC_LEFT", 119 + "KC_DOWN", 120 + "KC_RGHT", 121 + "KC_RPRN", 122 + "KC_PPLS", 123 + "KC_4", 124 + "KC_5", 125 + "KC_6", 126 + "KC_EQL", 127 + "KC_TRNS", 128 + "KC_TRNS", 129 + "KC_LBRC", 130 + "KC_RBRC", 131 + "KC_HASH", 132 + "KC_LCBR", 133 + "KC_RCBR", 134 + "KC_TRNS", 135 + "KC_TRNS", 136 + "KC_0", 137 + "KC_1", 138 + "KC_2", 139 + "KC_3", 140 + "KC_BSLS", 141 + "KC_TRNS", 142 + "EE_CLR", 143 + "KC_TRNS", 144 + "KC_TRNS", 145 + "KC_TRNS", 146 + "KC_TRNS", 147 + "KC_TRNS", 148 + "KC_DOT", 149 + "KC_0", 150 + "KC_EQL", 151 + "KC_TRNS", 152 + "UG_NEXT", 153 + "KC_TRNS", 154 + "UG_TOGG", 155 + "ANY(RGB_M_P)", 156 + "KC_TRNS", 157 + "KC_TRNS", 158 + "UG_VALD", 159 + "UG_VALU", 160 + "KC_TRNS", 161 + "KC_TRNS", 162 + "UG_HUED", 163 + "UG_HUEU" 164 + ] 165 + ], 166 + "author": "" 167 + }
+61
flake.lock
···
··· 1 + { 2 + "nodes": { 3 + "flake-utils": { 4 + "inputs": { 5 + "systems": "systems" 6 + }, 7 + "locked": { 8 + "lastModified": 1731533236, 9 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 10 + "owner": "numtide", 11 + "repo": "flake-utils", 12 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 13 + "type": "github" 14 + }, 15 + "original": { 16 + "owner": "numtide", 17 + "repo": "flake-utils", 18 + "type": "github" 19 + } 20 + }, 21 + "nixpkgs": { 22 + "locked": { 23 + "lastModified": 1759036355, 24 + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", 25 + "owner": "nixos", 26 + "repo": "nixpkgs", 27 + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", 28 + "type": "github" 29 + }, 30 + "original": { 31 + "owner": "nixos", 32 + "ref": "nixpkgs-unstable", 33 + "repo": "nixpkgs", 34 + "type": "github" 35 + } 36 + }, 37 + "root": { 38 + "inputs": { 39 + "flake-utils": "flake-utils", 40 + "nixpkgs": "nixpkgs" 41 + } 42 + }, 43 + "systems": { 44 + "locked": { 45 + "lastModified": 1681028828, 46 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 + "owner": "nix-systems", 48 + "repo": "default", 49 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 + "type": "github" 51 + }, 52 + "original": { 53 + "owner": "nix-systems", 54 + "repo": "default", 55 + "type": "github" 56 + } 57 + } 58 + }, 59 + "root": "root", 60 + "version": 7 61 + }
+36
flake.nix
···
··· 1 + { 2 + description = "Configuration and build from my qmk keyboards"; 3 + 4 + inputs = { 5 + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 6 + flake-utils.url = "github:numtide/flake-utils"; 7 + }; 8 + 9 + outputs = { self, nixpkgs, flake-utils, ... }: 10 + flake-utils.lib.eachDefaultSystem (system: 11 + let pkgs = import nixpkgs { inherit system; }; 12 + in with pkgs; { 13 + devShells.default = mkShell { 14 + QMK_HOME = "./qmk_firmware"; 15 + nativeBuildInputs = [ qmk ]; 16 + }; 17 + 18 + apps = let 19 + flash = kb: 20 + pkgs.writeShellApplication { 21 + name = "flash"; 22 + runtimeInputs = with pkgs; [ qmk ]; 23 + text = '' 24 + export QMK_HOME=./qmk_firmware 25 + qmk flash -c ./${kb}.json 26 + ''; 27 + }; 28 + in { 29 + sol3 = { 30 + type = "app"; 31 + program = "${flash "sol3"}/bin/flash"; 32 + }; 33 + }; 34 + 35 + }); 36 + }