{ description = "Default environment"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nix-darwin.url = "github:nix-darwin/nix-darwin/master"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; nixvim.url = "github:nix-community/nixvim"; nixvim.inputs.nixpkgs.follows = "nixpkgs"; claude-code.url = "github:sadjow/claude-code-nix"; }; outputs = inputs@{ self, nix-darwin, nixpkgs, home-manager, nixvim, claude-code }: let configuration = { pkgs, ... }: { environment.systemPackages = [ pkgs.vim pkgs.git ]; nix.settings.experimental-features = "nix-command flakes"; nix.settings.substituters = [ "https://cache.nixos.org/" "https://nix-community.cachix.org" "https://devenv.cachix.org" ]; nix.settings.trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" ]; system.stateVersion = 6; nixpkgs.hostPlatform = "aarch64-darwin"; programs.zsh.enable = true; }; homeConfiguration = { pkgs, ... }: { imports = [ nixvim.homeManagerModules.nixvim ./modules/nvim.nix ./modules/tmux.nix ./modules/zsh.nix ./modules/ssh.nix ./modules/git.nix ./modules/termscp.nix ]; home.username = "yanlin"; home.homeDirectory = "/Users/yanlin"; home.stateVersion = "24.05"; home.packages = with pkgs; [ texlive.combined.scheme-full btop python312 python312Packages.pip python312Packages.virtualenv lftp termscp httpie lazysql sqlite claude-code.packages.aarch64-darwin.claude-code nerd-fonts.fira-code nerd-fonts.jetbrains-mono gitui ncdu ]; fonts.fontconfig.enable = true; programs.home-manager.enable = true; }; in { darwinConfigurations."iMac" = nix-darwin.lib.darwinSystem { modules = [ configuration ]; }; darwinConfigurations."MacBook-Air" = nix-darwin.lib.darwinSystem { modules = [ configuration ]; }; homeConfigurations.yanlin = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.aarch64-darwin; modules = [ homeConfiguration ]; extraSpecialArgs = { inherit claude-code nixvim; }; }; }; }