{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
zmk-nix = {
url = "github:lilyinstarlight/zmk-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, zmk-nix }: {
packages.x86_64-linux = rec {
lily58 = zmk-nix.legacyPackages.x86_64-linux.buildSplitKeyboard {
name = "firmware";
src = nixpkgs.lib.sourceFilesBySuffices self [ ".board" ".cmake" ".conf" ".defconfig" ".dts" ".dtsi" ".json" ".keymap" ".overlay" ".shield" ".yml" "_defconfig" ];
board = "nice_nano_v2";
shield = "lily58_%PART%";
zephyrDepsHash = "sha256-SHiCGErcstMH9EbvbQROXIhxFEbMf3AungYu5YvqMEg=";
postConfigure = ''
patch -d ../zmk/ -p1 < ${./patches/001-lily58-pin.patch}
patch -d ./zmk/ -p1 < ${./patches/003-turbo-key-pr-1414.patch}
'';
meta = {
description = "ZMK firmware";
license = nixpkgs.lib.licenses.mit;
platforms = nixpkgs.lib.platforms.all;
};
};
flash = zmk-nix.packages.x86_64-linux.flash.override { inherit lily58; };
update = zmk-nix.packages.x86_64-linux.update;
};
devShells.x86_64-linux.default = zmk-nix.devShells.x86_64-linux.default;
hydraJobs.packages = self.packages;
};
}