nixos/flake.nix

141 lines
3.8 KiB
Nix
Executable File

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
stylix.url = "github:danth/stylix";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
nixvim.url = "github:nix-community/nixvim";
home-manager.url = "github:nix-community/home-manager";
ignis = {
url = "github:ignis-sh/ignis";
inputs.nixpkgs.follows = "nixpkgs"; # recommended
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v1.0.0";
# Optional but recommended to limit the size of your system closure.
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
stylix,
spicetify-nix,
nixvim,
home-manager,
lanzaboote,
...
}@inputs:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
in
{
nixosConfigurations.cyberia = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
lanzaboote.nixosModules.lanzaboote
(
{
pkgs,
lib,
config,
...
}:
{
imports = [
./hardware-configuration-cyberia.nix
./stylix.nix
];
networking.hostName = "cyberia";
environment.systemPackages = [
pkgs.sbctl
];
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
hardware.nvidia.modesetting.enable = true;
hardware.nvidia.open = true;
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
}
)
./configuration.nix
{
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
home-manager.users.lucy = {
imports = [
inputs.ignis.homeManagerModules.default
nixvim.homeModules.nixvim
spicetify-nix.homeManagerModules.spicetify
./home/home.nix
];
};
}
];
};
nixosConfigurations.wired = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
{
networking.hostName = "wired";
imports = [
./hardware-configuration-wired.nix
./stylix.nix
];
}
./configuration.nix
{
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
home-manager.users.lucy = {
imports = [
inputs.ignis.homeManagerModules.default
nixvim.homeModules.nixvim
spicetify-nix.homeManagerModules.spicetify
./home/home.nix
];
};
}
];
};
homeConfigurations.lucy = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = { inherit inputs; };
modules = [
stylix.homeModules.stylix
nixvim.homeModules.nixvim
./home/home.nix
./home/programs.nix
];
};
};
}