This commit is contained in:
Anish Lakhwara 2025-09-28 17:09:14 -07:00
parent 972aea0b76
commit c26df3e1a6
4 changed files with 274 additions and 0 deletions

View file

@ -0,0 +1,10 @@
### qmk-config
qmk configuration for ergodox
Uses nix to build and flash the firmware
The configurations are generated by qmk online tool
### flash
To flash, simply run nix run `.#$KEYBOARD` where `$KEYBOARD` is the desired keyboard
Or you can manually use qmk command line if you use nix develop.

167
ergodox.json Normal file
View file

@ -0,0 +1,167 @@
{
"version": 1,
"notes": "",
"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",
"keyboard": "ergodox_ez/base",
"keymap": "ergodox_ez_base_layout_ergodox_pretty_2025-09-28",
"layout": "LAYOUT_ergodox_pretty",
"layers": [
[
"KC_ESC",
"KC_1",
"KC_2",
"KC_3",
"KC_4",
"KC_5",
"KC_LEFT",
"KC_RGHT",
"KC_6",
"KC_7",
"KC_8",
"KC_9",
"KC_0",
"KC_EQL",
"KC_GRV",
"KC_QUOT",
"KC_COMM",
"KC_DOT",
"KC_P",
"KC_Y",
"KC_LBRC",
"KC_RBRC",
"KC_F",
"KC_G",
"KC_C",
"KC_R",
"KC_L",
"KC_BSLS",
"KC_BSPC",
"KC_A",
"KC_O",
"KC_E",
"KC_U",
"KC_I",
"KC_D",
"KC_H",
"KC_T",
"KC_N",
"KC_S",
"KC_SLSH",
"KC_LSFT",
"KC_SCLN",
"KC_Q",
"KC_J",
"KC_K",
"KC_X",
"KC_LPRN",
"KC_RPRN",
"KC_B",
"KC_M",
"KC_W",
"KC_V",
"KC_Z",
"KC_MINS",
"KC_LCTL",
"LALT(KC_LSFT)",
"KC_NO",
"KC_LEFT",
"KC_RGHT",
"KC_UP",
"KC_DOWN",
"KC_NO",
"KC_RALT",
"KC_RCTL",
"LCG(KC_ENT)",
"LCTL(KC_B)",
"LCTL(KC_W)",
"LCTL(KC_P)",
"LCTL(KC_O)",
"LCTL(KC_E)",
"KC_SPC",
"KC_ENT",
"LT(1,KC_NO)",
"LT(1,KC_NO)",
"KC_TAB",
"KC_LGUI"
],
[
"KC_NO",
"KC_F1",
"KC_F2",
"KC_F3",
"KC_F4",
"KC_F5",
"KC_TRNS",
"KC_TRNS",
"KC_F6",
"KC_F7",
"KC_F8",
"KC_F9",
"KC_F10",
"KC_F11",
"KC_TRNS",
"KC_EXLM",
"KC_AT",
"KC_UP",
"KC_DLR",
"KC_PERC",
"KC_TRNS",
"KC_TRNS",
"KC_PMNS",
"KC_7",
"KC_8",
"KC_9",
"KC_ASTR",
"KC_F12",
"KC_TRNS",
"KC_LPRN",
"KC_LEFT",
"KC_DOWN",
"KC_RGHT",
"KC_RPRN",
"KC_PPLS",
"KC_4",
"KC_5",
"KC_6",
"KC_EQL",
"KC_TRNS",
"KC_TRNS",
"KC_LBRC",
"KC_RBRC",
"KC_HASH",
"KC_LCBR",
"KC_RCBR",
"KC_TRNS",
"KC_TRNS",
"KC_0",
"KC_1",
"KC_2",
"KC_3",
"KC_BSLS",
"KC_TRNS",
"EE_CLR",
"KC_TRNS",
"KC_TRNS",
"KC_TRNS",
"KC_TRNS",
"KC_TRNS",
"KC_DOT",
"KC_0",
"KC_EQL",
"KC_TRNS",
"UG_NEXT",
"KC_TRNS",
"UG_TOGG",
"ANY(RGB_M_P)",
"KC_TRNS",
"KC_TRNS",
"UG_VALD",
"UG_VALU",
"KC_TRNS",
"KC_TRNS",
"UG_HUED",
"UG_HUEU"
]
],
"author": ""
}

61
flake.lock Normal file
View file

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1759036355,
"narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

36
flake.nix Normal file
View file

@ -0,0 +1,36 @@
{
description = "Configuration and build from my qmk keyboards";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let pkgs = import nixpkgs { inherit system; };
in with pkgs; {
devShells.default = mkShell {
QMK_HOME = "./qmk_firmware";
nativeBuildInputs = [ qmk ];
};
apps = let
flash = kb:
pkgs.writeShellApplication {
name = "flash";
runtimeInputs = with pkgs; [ qmk ];
text = ''
export QMK_HOME=./qmk_firmware
qmk flash -c ./${kb}.json
'';
};
in {
sol3 = {
type = "app";
program = "${flash "sol3"}/bin/flash";
};
};
});
}