71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   description = "NixOS system configuration";
 | |
| 
 | |
|   inputs = {
 | |
|     nixpkgs.url = "nixpkgs/nixos-23.11";
 | |
|     agenix.url = "github:ryantm/agenix";
 | |
|     home-manager = {
 | |
|       url = "github:nix-community/home-manager/release-23.11";
 | |
|       inputs.nixpkgs.follows = "nixpkgs";
 | |
|     };
 | |
|     firefox-gnome-theme = {
 | |
|       url = "github:rafaelmardojai/firefox-gnome-theme";
 | |
|       flake = false;
 | |
|     };
 | |
|     thunderbird-gnome-theme = {
 | |
|       url = "github:rafaelmardojai/thunderbird-gnome-theme";
 | |
|       flake = false;
 | |
|     };
 | |
|     wallpapers = {
 | |
|       url = "git+ssh://git@git.vimium.com/jordan/wallpapers.git?shallow=1";
 | |
|       flake = false;
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   outputs = inputs @ { self, nixpkgs, agenix, home-manager, ... }:
 | |
|     let
 | |
|       nixpkgsForSystem = system: inputs.nixpkgs;
 | |
|       overlays = [
 | |
|         agenix.overlays.default
 | |
|         (import ./overlays/gnome.nix)
 | |
|       ];
 | |
|       commonModules = [
 | |
|         agenix.nixosModules.age
 | |
|         home-manager.nixosModule
 | |
|         ./modules
 | |
|       ];
 | |
|       nixosSystem = system: name:
 | |
|         let
 | |
|           nixpkgs = nixpkgsForSystem system;
 | |
|           lib = (import nixpkgs { inherit overlays system; }).lib;
 | |
|         in
 | |
|         inputs.nixpkgs.lib.nixosSystem {
 | |
|           inherit lib system;
 | |
|           specialArgs = { modulesPath = toString (nixpkgs + "/nixos/modules"); inherit inputs; };
 | |
|           baseModules = import (nixpkgs + "/nixos/modules/module-list.nix");
 | |
|           modules = commonModules ++ [
 | |
|             ({ config, ... }:
 | |
|               {
 | |
|                 nixpkgs.pkgs = import nixpkgs {
 | |
|                   inherit overlays system;
 | |
|                   config.allowUnfree = true;
 | |
|                 };
 | |
|                 networking.hostName = name;
 | |
|                 nix = {
 | |
|                   extraOptions = "experimental-features = nix-command flakes";
 | |
|                 };
 | |
|               })
 | |
|             ./hosts/${name}
 | |
|           ];
 | |
|         };
 | |
|       nixosConfigurations = {
 | |
|         atlas = nixosSystem "x86_64-linux" "atlas";
 | |
|         eos = nixosSystem "x86_64-linux" "eos";
 | |
|         helios = nixosSystem "x86_64-linux" "helios";
 | |
|         odyssey = nixosSystem "x86_64-linux" "odyssey";
 | |
|       };
 | |
|     in
 | |
|     { inherit nixosConfigurations; };
 | |
| }
 | |
| 
 |