Skip to content

Instantly share code, notes, and snippets.

@stvhay
Created March 6, 2026 16:14
Show Gist options
  • Select an option

  • Save stvhay/3660b0772fee84aa2ebe10a85174fd5e to your computer and use it in GitHub Desktop.

Select an option

Save stvhay/3660b0772fee84aa2ebe10a85174fd5e to your computer and use it in GitHub Desktop.
nix config

Here it is:

{
  description = "nix-darwin system flake";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-25.11-darwin";
    claude-code.url = "github:sadjow/claude-code-nix";
    nix-darwin = {
      url = "github:nix-darwin/nix-darwin/nix-darwin-25.11";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = inputs@{ self, nix-darwin, nixpkgs, claude-code }:
  let
    configuration = { pkgs, ... }: {
      nix.settings.experimental-features = [ "nix-command" "flakes" ];
      nixpkgs.config = import ./conf/nixpkgs.config.nix { lib = pkgs.lib; };
      nixpkgs.hostPlatform = "aarch64-darwin";
      nixpkgs.overlays = [ claude-code.overlays.default ];

      environment = {
        etc."newsyslog.d/nixdarwin-upgrade.conf".text = ''
          # logfilename                          mode count size when  flags
          /var/log/nixdarwin-upgrade.log          644  3     512  *     J
          /var/log/nixdarwin-upgrade-error.log    644  3     512  *     J
        '';
        shells = [ pkgs.bash ];
        systemPackages = import ./conf/environment.systemPackages.nix pkgs;
        variables = {
          EDITOR = "nvim";
          VISUAL = "nvim";
        };
      };

      fonts.packages = import ./conf/fonts.packages.nix pkgs;

      homebrew = {
        enable  = true;
        brews   = import ./conf/homebrew.brews.nix;
        casks   = import ./conf/homebrew.casks.nix;
        masApps = import ./conf/homebrew.masApps.nix;
      };

      launchd.daemons.nixDarwinUpgrade = import ./conf/launchd.daemons.nixDarwinUpgrade.nix pkgs;
      programs = import ./conf/programs.nix;
      security = import ./conf/security.nix;
      system = import ./conf/system.nix self;
    };
  in
  {
    darwinConfigurations."mbp16" = nix-darwin.lib.darwinSystem {
      modules = [ configuration ];
    };
  };
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment