Files
nixos/flake.nix
2025-09-17 14:31:57 -04:00

147 lines
4.7 KiB
Nix

{
description = "System Flake";
inputs = {
nixpkgs.url = "github:NixOs/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
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 = {
url = "git+https://git.th3r00t.net/th3r00t/nvim-config.git?ref=New-Master";
# url = "git+ssh://git@git.th3r00t.net/th3r00t/nvim-config.git?ref=main";
flake = false;
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self, nixpkgs, home-manager, nix-index-database, sops-nix, disko,
nixos-hardware, nixvim, ...
}@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"
];
});
})
(final: prev: {
dwl = prev.dwl.overrideAttrs {
src = ./modules/dwl/source;
patches = [
./modules/dwl/patches/focusdir.patch
];
};
})
];
in {
nixosConfigurations.xps13 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit overlays inputs; };
modules = [
{ nixpkgs.overlays = overlays; }
sops-nix.nixosModules.sops
./modules/configurations/configuration-xps13.nix
./modules/hardware/hardware-configuration-xps13.nix
nixos-hardware.nixosModules.dell-xps-13-9370
home-manager.nixosModules.home-manager {
# Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix
home-manager.extraSpecialArgs = { inherit inputs; };
# 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;
};
};
}
];
};
nixosConfigurations.Titan = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit overlays inputs; };
modules = [
{ nixpkgs.overlays = overlays; }
disko.nixosModules.disko
sops-nix.nixosModules.sops
./modules/configurations/configuration-server.nix
./modules/hardware/hardware-configuration-titan.nix
home-manager.nixosModules.home-manager {
# home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules = [ {nixpkgs.overlays = overlays;} ];
home-manager.extraSpecialArgs = { inherit inputs; };
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;
}
];
};
nixosConfigurations.Athena = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit overlays inputs; };
modules = [
{ nixpkgs.overlays = overlays; }
disko.nixosModules.disko
sops-nix.nixosModules.sops
./modules/hardware/hardware-configuration-athena.nix
./modules/configurations/configuration-Athena.nix
home-manager.nixosModules.home-manager {
# home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules = [ {nixpkgs.overlays = overlays;} ];
home-manager.extraSpecialArgs = { inherit inputs; };
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;
}
];
};
};
}