config/flake.nix

142 lines
3.6 KiB
Nix

{
description = "Nixos config flake";
nixConfig = {
extra-substituters = [
"https://zackartz.cachix.org"
];
extra-trusted-public-keys = [
"zackartz.cachix.org-1:nrEfVZF8MVX0Lnt73KwYzH2kwDzFuAoR5VPjuUd4R30="
];
};
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs_stable.url = "github:nixos/nixpkgs/nixos-23.11";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager_stable = {
url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs_stable";
};
resume.url = "git+https://git.zackmyers.io/zack/resume";
anyrun.url = "github:Kirottu/anyrun";
anyrun.inputs.nixpkgs.follows = "nixpkgs";
ags.url = "github:Aylur/ags";
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
agenix.inputs.darwin.follows = "";
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs";
};
blog.url = "github:zackartz/zmio";
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.3.0";
# Optional but recommended to limit the size of your system closure.
inputs.nixpkgs.follows = "nixpkgs";
};
hypridle = {
url = "github:hyprwm/hypridle";
inputs.nixpkgs.follows = "nixpkgs";
};
catppuccin.url = "github:catppuccin/nix";
hyprland = {
url = "github:hyprwm/Hyprland/v0.40.0";
};
kb-gui = {
url = "github:zackartz/kb-gui";
inputs.nixpkgs.follows = "nixpkgs";
};
waybar = {
url = "github:Alexays/Waybar";
inputs.nixpkgs.follows = "nixpkgs";
};
neovim-nightly-overlay = {
url = "github:nix-community/neovim-nightly-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
rio-term = {
url = "github:raphamorim/rio";
inputs.nixpkgs.follows = "nixpkgs";
};
systems.url = "github:nix-systems/default";
spicetify-nix = {
url = "github:the-argus/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
nixpkgs_stable,
systems,
...
} @ inputs: let
eachSystem = f:
nixpkgs.lib.genAttrs (import systems) (
system:
f nixpkgs.legacyPackages.${system}
);
in {
nixosConfigurations.pluto = nixpkgs_stable.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/pluto/configuration.nix
inputs.home-manager_stable.nixosModules.default
inputs.blog.nixosModule
inputs.agenix.nixosModules.default
];
};
nixosConfigurations.earth = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/earth/configuration.nix
inputs.lanzaboote.nixosModules.lanzaboote
inputs.home-manager.nixosModules.default
inputs.agenix.nixosModules.default
];
};
nixosConfigurations.live = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix"
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"
# ./hosts/live/configuration.nix
];
};
devShells = eachSystem (pkgs: {
default = pkgs.mkShell {
buildInputs = [
pkgs.nixd
pkgs.alejandra
pkgs.stylua
pkgs.lua-language-server
pkgs.luajitPackages.lua-lsp
];
};
});
};
}