{ 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; }; }