{ description = "System Flake"; inputs = { nixpkgs.url = "github:NixOs/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-index-database.url = "github:nix-community/nix-index-database"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; disko.url = "github:nix-community/disko"; sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; neovim-config = { # pick ONE of these URLs: # Public over HTTPS: url = "git+https://git.th3r00t.net/th3r00t/nvim-config.git?ref=master"; # OR private over SSH (recommended if the repo is private): # url = "git+ssh://git@git.th3r00t.net/th3r00t/nvim-config.git?ref=main"; flake = false; }; }; outputs = { self, nixpkgs, home-manager, nix-index-database, sops-nix, disko, nixos-hardware, ... }@inputs: let overlays = [ inputs.neovim-nightly-overlay.overlays.default (final: prev: { dosbox-x = prev.dosbox-x.overrideAttrs (old: { buildInputs = (old.buildInputs or []) ++ [ prev.libGL prev.glew ]; configureFlags = (old.configureFlags or []) ++ [ "--enable-sdl2" "--enable-opengl" ]; }); }) ]; in { nixosConfigurations.xps13 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit overlays; }; modules = [ { nixpkgs.overlays = overlays; } sops-nix.nixosModules.sops ./modules/configuration-xps13.nix ./modules/hardware-configuration-xps13.nix nixos-hardware.nixosModules.dell-xps-13-9370 home-manager.nixosModules.home-manager { # home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.sharedModules = [ {nixpkgs.overlays = overlays;} ]; home-manager.users.th3r00t = { imports = [ ./home-xps13.nix nix-index-database.homeModules.nix-index ]; home.file.".config/nvim" = { source = inputs.neovim-config; recursive = true; executable = true; }; }; # Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix } ]; }; nixosConfigurations.Titan = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit overlays; }; modules = [ { nixpkgs.overlays = overlays; } disko.nixosModules.disko sops-nix.nixosModules.sops ./modules/hardware-configuration-titan.nix ./modules/configuration-server.nix home-manager.nixosModules.home-manager { # home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.sharedModules = [ {nixpkgs.overlays = overlays;} ]; home-manager.users.th3r00t = { imports = [ ./home-server.nix nix-index-database.homeModules.nix-index ]; home.file.".config/nvim" = { source = inputs.neovim-config; recursive = true; executable = true; }; }; # home-manager.users.th3r00t = import ./home.nix; # Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix } ]; }; nixosConfigurations.Athena = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit overlays; }; modules = [ { nixpkgs.overlays = overlays; } disko.nixosModules.disko sops-nix.nixosModules.sops ./modules/hardware-configuration-athena.nix ./modules/configuration-Athena.nix home-manager.nixosModules.home-manager { # home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.sharedModules = [ {nixpkgs.overlays = overlays;} ]; home-manager.users.th3r00t = { imports = [ ./home-server.nix nix-index-database.homeModules.nix-index ]; home.file.".config/nvim" = { source = inputs.neovim-config; recursive = true; executable = true; }; }; # home-manager.users.th3r00t = import ./home.nix; # Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix } ]; }; }; }