diff --git a/README.md b/README.md index e69de29..379c5b0 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/ergodox.json b/ergodox.json new file mode 100644 index 0000000..53191ec --- /dev/null +++ b/ergodox.json @@ -0,0 +1,167 @@ +{ + "version": 1, + "notes": "", + "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \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": "" +} \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..8c2c402 --- /dev/null +++ b/flake.lock @@ -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 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..305acf8 --- /dev/null +++ b/flake.nix @@ -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"; + }; + }; + + }); +}