1{
2 inputs = {
3 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
4
5 zmk-nix = {
6 url = "github:lilyinstarlight/zmk-nix";
7 inputs.nixpkgs.follows = "nixpkgs";
8 };
9 };
10
11 outputs = { self, nixpkgs, zmk-nix }:
12 let
13 forAllSystems =
14 nixpkgs.lib.genAttrs (nixpkgs.lib.attrNames zmk-nix.packages);
15 in {
16 packages = forAllSystems (system: rec {
17 default = firmware;
18
19 firmware = zmk-nix.legacyPackages.${system}.buildSplitKeyboard {
20 name = "firmware";
21
22 src = nixpkgs.lib.sourceFilesBySuffices self [
23 ".conf"
24 ".keymap"
25 ".dtsi"
26 ".yml"
27 ".shield"
28 ".overlay"
29 ".defconfig"
30 ];
31
32 board = "nice_nano_v2";
33 shield = "urchin_%PART%";
34
35 zephyrDepsHash =
36 "sha256-DXOQ+Hu8p1qeLiB1loRmKG9YOVbkJWMOrDI/aVA472M=";
37
38 meta = {
39 description = "ZMK firmware";
40 license = nixpkgs.lib.licenses.mit;
41 platforms = nixpkgs.lib.platforms.all;
42 };
43 };
44
45 flash = zmk-nix.packages.${system}.flash.override { inherit firmware; };
46 update = zmk-nix.packages.${system}.update;
47 });
48
49 devShells = forAllSystems
50 (system: { default = zmk-nix.devShells.${system}.default; });
51 };
52}