about summary refs log tree commit diff
path: root/users/flokli/keyboards/dilemma/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/flokli/keyboards/dilemma/default.nix')
-rw-r--r--users/flokli/keyboards/dilemma/default.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/users/flokli/keyboards/dilemma/default.nix b/users/flokli/keyboards/dilemma/default.nix
new file mode 100644
index 0000000000..265f8e56db
--- /dev/null
+++ b/users/flokli/keyboards/dilemma/default.nix
@@ -0,0 +1,45 @@
+{ depot, pkgs, ... }:
+
+rec {
+  firmware = pkgs.stdenv.mkDerivation {
+    name = "keychron-bastardkb-dilemma-firmware";
+
+    src = pkgs.fetchFromGitHub {
+      owner = "qmk";
+      repo = "qmk_firmware";
+      rev = "728aa576b0cd65c6fb7cf77132fdcd06fcedb643"; # develop branch
+      hash = "sha256-YmdX8nEsB1R8d265HAmvwejPjEHJdoTnm4QNigzrcyw=";
+      fetchSubmodules = true;
+    };
+
+    patches = [ ./enable-taps.patch ];
+
+    postPatch = ''
+      patchShebangs util/uf2conv.py
+    '';
+
+    nativeBuildInputs = [
+      pkgs.python3
+      pkgs.qmk
+    ];
+
+    buildPhase = ''
+      mkdir -p keyboards/bastardkb/dilemma/3x5_3/keymaps/flokli
+      cp ${./keymap.c} keyboards/bastardkb/dilemma/3x5_3/keymaps/flokli/keymap.c
+      cp ${./rules.mk} keyboards/bastardkb/dilemma/3x5_3/keymaps/flokli/rules.mk
+
+      make bastardkb/dilemma/3x5_3:flokli
+    '';
+
+    installPhase = ''
+      mkdir -p $out
+      cp bastardkb_dilemma_3x5_3_flokli.uf2 $out/
+    '';
+  };
+
+  flash = pkgs.writeShellScript "flash.sh" ''
+    ${pkgs.qmk}/bin/qmk flash ${firmware}/bastardkb_dilemma_3x5_3_flokli.uf2
+  '';
+
+  meta.ci.targets = [ "firmware" ];
+}