NixOS/flake.nix

84 lines
2.3 KiB
Nix

{
description = "JawZ NixOS flake setup";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
nixpkgs11.url = "github:nixos/nixpkgs?ref=nixos-24.11";
ucodenix.url = "github:e-tho/ucodenix";
doom-emacs.url = "github:marienz/nix-doom-emacs-unstraightened";
jawz-scripts = {
url = "git+ssh://git@gitlab.com/CaptainJawZ/scripts-flake.git";
inputs.nixpkgs.follows = "nixpkgs";
};
nur = {
url = "github:nix-community/nur";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-gaming = {
url = "github:fufexan/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixtendo-switch = {
url = "github:nyawox/nixtendo-switch";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ self, ... }@inputs:
let
inherit (self) outputs;
system = "x86_64-linux";
mkpkgs =
repo:
import repo {
inherit system;
config.allowUnfree = true;
};
lib = inputs.nixpkgs.lib // inputs.home-manager.lib;
createConfig =
name:
lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs outputs;
};
modules = [
{
nixpkgs.overlays = [
(import ./overlay.nix { inherit mkpkgs inputs; })
inputs.doom-emacs.overlays.default
];
}
./hosts/${name}/configuration.nix
inputs.nur.modules.nixos.default
inputs.sops-nix.nixosModules.sops
inputs.stylix.nixosModules.stylix
inputs.nixtendo-switch.nixosModules.nixtendo-switch
];
};
in
{
nixosConfigurations = {
workstation = "workstation" |> createConfig;
miniserver = "miniserver" |> createConfig;
server = "server" |> createConfig;
};
};
}