about summary refs log tree commit diff
path: root/users/glittershark/keyboard/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/glittershark/keyboard/default.nix')
-rw-r--r--users/glittershark/keyboard/default.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/users/glittershark/keyboard/default.nix b/users/glittershark/keyboard/default.nix
new file mode 100644
index 0000000000..18169b5be1
--- /dev/null
+++ b/users/glittershark/keyboard/default.nix
@@ -0,0 +1,49 @@
+{ nixpkgs ? import <nixpkgs> {}
+}:
+
+with nixpkgs;
+
+rec {
+  qmkSource = fetchgit {
+    url = "https://github.com/qmk/qmk_firmware";
+    rev = "ab1650606c36f85018257aba65d9c3ff8ec42e71";
+    sha256 = "1k59flkvhjzmfl0yz9z37lqhvad7m9r5wy1p1sjk5274rsmylh79";
+    fetchSubmodules = true;
+  };
+
+  qmk = import "${qmkSource}/shell.nix" {
+    avr = true;
+    teensy = true;
+    arm = false;
+  };
+
+  layout = stdenv.mkDerivation {
+    name = "ergodox_ez_grfn.hex";
+
+    src = qmkSource;
+
+    inherit (qmk) buildInputs AVR_CFLAGS AVR_ASFLAGS;
+
+    patches = [ ./increase-tapping-delay.patch ];
+
+    postPatch = ''
+      mkdir keyboards/ergodox_ez/keymaps/grfn
+      cp ${./keymap.c} keyboards/ergodox_ez/keymaps/grfn/keymap.c
+    '';
+
+    buildPhase = ''
+      make ergodox_ez:grfn
+    '';
+
+    installPhase = ''
+      cp ergodox_ez_grfn.hex $out
+    '';
+  };
+
+  flash = writeShellScript "flash.sh" ''
+    ${teensy-loader-cli}/bin/teensy-loader-cli \
+      -v \
+      --mcu=atmega32u4 \
+      -w ${layout}
+  '';
+}