zaphyra's git: airpodsctl

Control and monitor your AirPods

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
{

  description = "airpodsctl";

  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";

  outputs = inputs: let
    forAllSystems = function:
      inputs.nixpkgs.lib.genAttrs [
        "x86_64-linux"
        "aarch64-linux"
        "aarch64-darwin"
      ] (system: function (import inputs.nixpkgs {
        system   = system;
        overlays = [ inputs.self.overlays.default ];
      }));

  in {

    packages = forAllSystems (pkgs: {
      default    = pkgs.airpodsctl;
      airpodsctl = pkgs.airpodsctl;
      kairpodsd  = pkgs.kairpodsd;
    });

    devShells = forAllSystems (pkgs: {
      default = pkgs.mkShell {
        buildInputs = with pkgs; [
          go
        ];
        shellHook = "";
      };
    });

    homeManagerModules.kairpodsd = import ./kairpodsd/homeManagerModule.nix;

    overlays.default = final: prev: {
      kairpodsd  = final.callPackage ./kairpodsd/package.nix {};
      airpodsctl = final.buildGoModule (finalAttrs: {
        name = "airpodsctl";
        src  = "${inputs.self}/src";
        vendorHash = "sha256-WUTGAYigUjuZLHO1YpVhFSWpvULDZfGMfOXZQqVYAfs=";

        meta.mainProgram = "airpodsctl";
      });
    };
  };

}