Nix-Config/flake.nix

105 lines
2.6 KiB
Nix

{
description = "~tsv's system config";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
devenv.url = "github:cachix/devenv/latest";
hyprland.url = "github:hyprwm/Hyprland";
hyprcontrib.url = "github:hyprwm/contrib";
flake-utils.url = "github:numtide/flake-utils";
codeium = {
url = "github:jcdickinson/codeium.nvim";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ nixpkgs, home-manager, devenv, hyprland, hyprcontrib, codeium, ... }: {
nixosConfigurations = {
ritchie = nixpkgs.lib.nixosSystem { # My work machine
system = "x86_64-linux";
specialArgs.inputs = inputs;
modules = [
./system/ritchie/ritchie.nix
hyprland.nixosModules.default
{
programs.hyprland = {
enable = true;
enableNvidiaPatches = true;
xwayland = {
enable = true;
};
};
}
home-manager.nixosModules.home-manager {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.tsv = import users/tsv/ritchie.nix;
users.foxsoft = import users/foxsoft/home.nix;
users.root = import users/root/home.nix;
};
}
];
};
thompson = nixpkgs.lib.nixosSystem { # My personal laptop
system = "x86_64-linux";
specialArgs.inputs = inputs;
modules = [
./system/thompson/thompson.nix
hyprland.nixosModules.default
{ programs.hyprland.enable = true; }
home-manager.nixosModules.home-manager {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.tsv = import users/tsv/thompson.nix;
};
}
];
};
miyamoto = nixpkgs.lib.nixosSystem { # Kid's game and music box
system = "x86_64-linux";
specialArgs.inputs = inputs;
modules = [
./system/miyamoto/miyamoto.nix
];
};
kernighan = nixpkgs.lib.nixosSystem { # Pi home server
system = "aarch64-linux";
specialArgs.inputs = inputs;
modules = [
./system/kernighan/kernighan.nix
];
};
eno = nixpkgs.lib.nixosSystem { # Music player/alarm clock
system = "aarch64-linux";
specialArgs.inputs = inputs;
modules = [
./system/eno/eno.nix
];
};
};
};
}