{ description = "dart"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-homebrew.url = "github:zhaofengli-wip/nix-homebrew"; homebrew-core = { url = "github:homebrew/homebrew-core"; flake = false; }; homebrew-cask = { url = "github:homebrew/homebrew-cask"; flake = false; }; }; outputs = { self, nixpkgs, nix-darwin, home-manager, rust-overlay, nix-homebrew, homebrew-core, homebrew-cask, }: let system = "aarch64-darwin"; pkgs = import nixpkgs { inherit system; overlays = [ rust-overlay.overlays.default ]; config.allowUnfree = true; }; in { darwinConfigurations."dart" = nix-darwin.lib.darwinSystem { inherit system; specialArgs = { inherit rust-overlay; }; modules = [ { nix.enable = false; } home-manager.darwinModules.home-manager nix-homebrew.darwinModules.nix-homebrew { nix-homebrew = { enable = true; enableRosetta = true; user = "atridad"; autoMigrate = true; taps = { "homebrew/homebrew-core" = homebrew-core; "homebrew/homebrew-cask" = homebrew-cask; }; mutableTaps = false; }; } ./modules/system.nix ./modules/packages/cli.nix ./modules/packages/languages.nix ./modules/packages/media.nix ./modules/packages/networking.nix ./modules/homebrew.nix ./modules/librewolf.nix ./modules/home/default.nix ]; }; devShells.${system}.default = pkgs.mkShell { packages = with pkgs; [ (rust-bin.stable.latest.default.override { extensions = [ "rust-src" "rust-analyzer" ]; targets = [ "aarch64-apple-darwin" ]; }) helix ]; }; }; }