1{ 2 description = "m1emi1em NixOS Flake"; 3 4 inputs = { 5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 6 7 home-manager = { 8 url = "github:nix-community/home-manager"; 9 inputs.nixpkgs.follows = "nixpkgs"; 10 }; 11 12 flake-parts = { 13 url = "github:hercules-ci/flake-parts"; 14 inputs.nixpkgs-lib.follows = "nixpkgs"; 15 }; 16 17 easy-hosts.url = "github:tgirlcloud/easy-hosts"; 18 19 agenix.url = "github:ryantm/agenix"; 20 21 bb-scripts = { 22 url ="github:m1emi1em/bb-scripts"; 23 inputs.nixpkgs.follows = "nixpkgs"; 24 inputs.flake-parts.follows = "flake-parts"; 25 }; 26 emacs-overlay = { 27 url = "github:nix-community/emacs-overlay"; 28 inputs.nixpkgs.follows = "nixpkgs"; 29 }; 30 catppuccin.url = "github:catppuccin/nix"; 31 32 nix-index-database = { 33 url = "github:nix-community/nix-index-database"; 34 inputs.nixpkgs.follows = "nixpkgs"; 35 }; 36 }; 37 38 outputs = { self, nixpkgs, home-manager, agenix, flake-parts, easy-hosts, catppuccin, ... } @ inputs: let 39 # mkHomeManagerModule = {} : { 40 # home-manager.useGlobalPkgs = true; 41 # home-manager.useUserPackages = true; 42 # home-manager.users.emily = ./home.nix; 43 # }; 44 45 baseHost = { 46 arch = "x86_64"; 47 class = "nixos"; 48 }; 49 50 # :3c 51 buildHost = host: baseHost // host; 52 53 myHosts = { 54 emerald = { 55 modules = [ 56 ./desktop.nix 57 ./systems/emerald/hardware-configuration.nix 58 ]; 59 }; 60 quartz = { 61 modules = [ 62 ./laptop.nix 63 ./systems/quartz/hardware-configuration.nix 64 ]; 65 }; 66 }; 67 68 in 69 flake-parts.lib.mkFlake {inherit inputs;} ({ withSystem, ...}: { 70 systems = [ "x86_64-linux" ]; 71 imports = [ easy-hosts.flakeModule ]; 72 73 easy-hosts = { 74 shared = { 75 specialArgs = { inherit inputs; }; 76 modules = [ 77 ./base-system.nix 78 home-manager.nixosModules.home-manager 79 # (mkHomeManagerModule {}) 80 # ({inputs', ...}: {home-manager.extraSpecialArgs = {inherit inputs';};} ) 81 # {home-manager.extraSpecialArgs = { inherit inputs; }; } 82 agenix.nixosModules.default 83 catppuccin.nixosModules.catppuccin 84 ./home 85 # {nixpkgs.overlays = [inputs.hyprpanel.overlay];} 86 ]; 87 }; 88 # >:3c 89 hosts = builtins.mapAttrs (name: buildHost) myHosts; 90 }; 91 flake.homeConfigurations."emily" = withSystem "x86_64-linux" ({inputs', system, ...}: 92 home-manager.lib.homeManagerConfiguration 93 { 94 # pkgs = nixpkgs.legacyPackages.x86_64-linux; 95 pkgs = import nixpkgs { 96 inherit system; 97 overlays = with inputs; [ 98 emacs-overlay.overlay 99 ]; 100 allowUnfree = true; 101 }; 102 extraSpecialArgs = { 103 inherit inputs'; 104 inherit inputs; 105 }; 106 modules = [ 107 ./home/emily 108 ]; 109 }); 110 }); 111}