nixos-config/flake.nix

99 lines
2.7 KiB
Nix

{
description = "My nixos config with WM switch capacity";
inputs = {
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
home-manager-stable = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs-stable";
};
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable-small";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nur.url = "github:nix-community/NUR";
agenix.url = "github:ryantm/agenix";
nvim-config.url = "git+https://govel.porzh.me/DuN0z/neovim-config.git";
};
outputs = {
nixpkgs-stable,
nixpkgs-unstable,
home-manager-stable,
home-manager,
nur,
agenix,
nvim-config,
...
}: let
mkUnstablePkgsWithNur = {
system,
config ? {},
}:
import nixpkgs-unstable {
inherit system;
overlays = [nur.overlays.default];
inherit config;
};
in {
nixosConfigurations = {
pennsardin = nixpkgs-unstable.lib.nixosSystem {
specialArgs = { inherit nvim-config; };
system = "x86_64-linux";
pkgs = mkUnstablePkgsWithNur {
system = "x86_64-linux";
config = {
allowUnfree = true;
allowUnsupportedSystem = true;
};
};
modules = [
./hosts/pennsardin/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager = {
useGlobalPkgs = true ;
useUserPackages = true ;
extraSpecialArgs = {inherit nvim-config; };
};
}
];
};
terre-neuvas = nixpkgs-stable.lib.nixosSystem {
specialArgs = { inherit agenix; inherit nvim-config; };
system = "x86_64-linux";
modules = [
./hosts/terre-neuvas/configuration.nix
home-manager-stable.nixosModules.home-manager
{
home-manager = {
useGlobalPkgs = true ;
useUserPackages = true ;
extraSpecialArgs = {inherit nvim-config; };
};
}
agenix.nixosModules.default
];
};
forbann = nixpkgs-stable.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/forbann/configuration.nix
"${nixpkgs-stable}/nixos/modules/profiles/qemu-guest.nix"
];
};
};
# --- DevShell (x86_64 uniquement) ---
devShells.x86_64-linux.default = import ./devshell.nix {
pkgs = import nixpkgs-stable {system = "x86_64-linux";};
};
# --- Formatter (x86_64 uniquement) ---
formatter.x86_64-linux =
(import nixpkgs-stable {system = "x86_64-linux";}).alejandra;
};
}