abstracted host definitions in flake.nix
This commit is contained in:
197
flake.nix
197
flake.nix
@@ -7,8 +7,6 @@
|
||||
hyprpicker.url = "github:hyprwm/hyprpicker";
|
||||
stylix.url = "github:danth/stylix";
|
||||
disko.url = "github:nix-community/disko";
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
ghostty.url = "github:ghostty-org/ghostty";
|
||||
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim";
|
||||
@@ -32,176 +30,39 @@
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, home-manager, disko, nixpkgs, impermanence, nixvim, stylix, ... }@inputs:
|
||||
outputs = { ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
username = "pagedmov";
|
||||
nixpkgsConfig = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
in {
|
||||
homeConfigurations = {
|
||||
oganessonHome = let host = "oganesson"; in home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = nixpkgsConfig;
|
||||
overlays = [
|
||||
(import ./overlay/overlay.nix { inherit host; root = self; })
|
||||
];
|
||||
};
|
||||
extraSpecialArgs = {
|
||||
inherit host self username inputs;
|
||||
};
|
||||
|
||||
modules = [
|
||||
./hosts/desktop/home.nix
|
||||
./modules/home
|
||||
stylix.homeModules.stylix
|
||||
nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
phosphorousHome = let host = "phosphorous"; in home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = nixpkgsConfig;
|
||||
overlays = [
|
||||
(import ./overlay/overlay.nix { inherit host; root = self; })
|
||||
];
|
||||
};
|
||||
extraSpecialArgs = {
|
||||
inherit host self username inputs;
|
||||
};
|
||||
|
||||
modules = [
|
||||
./hosts/work/home.nix
|
||||
./modules/home
|
||||
stylix.homeModules.stylix
|
||||
nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
|
||||
mercuryHome = let host = "mercury"; in home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = nixpkgsConfig;
|
||||
overlays = [
|
||||
(import ./overlay/overlay.nix { inherit host; root = self; })
|
||||
];
|
||||
};
|
||||
extraSpecialArgs = {
|
||||
inherit host self username inputs;
|
||||
};
|
||||
|
||||
modules = [
|
||||
./hosts/laptop/home.nix
|
||||
./modules/home
|
||||
stylix.homeModules.stylix
|
||||
nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
|
||||
xenonHome = let host = "xenon"; in home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = nixpkgsConfig;
|
||||
overlays = [
|
||||
(import ./overlay/overlay.nix { inherit host; root = self; })
|
||||
];
|
||||
};
|
||||
extraSpecialArgs = {
|
||||
inherit host self username inputs;
|
||||
};
|
||||
|
||||
modules = [
|
||||
./hosts/server/home.nix
|
||||
./modules/home
|
||||
stylix.homeModules.stylix
|
||||
nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
};
|
||||
movLib = import ./lib {
|
||||
inherit inputs;
|
||||
username = "pagedmov";
|
||||
};
|
||||
|
||||
nixosConfigurations = {
|
||||
oganesson = nixpkgs.lib.nixosSystem { # Desktop
|
||||
specialArgs = {
|
||||
inherit self inputs username;
|
||||
host = "oganesson";
|
||||
overlays = [
|
||||
(import ./overlay/overlay.nix { root = self; })
|
||||
];
|
||||
};
|
||||
inherit system;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = nixpkgsConfig;
|
||||
overlays = [
|
||||
(import ./overlay/overlay.nix { root = self; })
|
||||
];
|
||||
};
|
||||
modules = [
|
||||
./hosts/desktop/config.nix
|
||||
./modules/sys
|
||||
stylix.nixosModules.stylix
|
||||
];
|
||||
};
|
||||
|
||||
phosphorous = nixpkgs.lib.nixosSystem { # Desktop
|
||||
specialArgs = {
|
||||
inherit self inputs username;
|
||||
host = "oganesson";
|
||||
overlays = [
|
||||
(import ./overlay/overlay.nix { root = self; })
|
||||
];
|
||||
};
|
||||
inherit system;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = nixpkgsConfig;
|
||||
overlays = [
|
||||
(import ./overlay/overlay.nix { root = self; })
|
||||
];
|
||||
};
|
||||
modules = [
|
||||
./hosts/work/config.nix
|
||||
./modules/sys
|
||||
stylix.nixosModules.stylix
|
||||
];
|
||||
};
|
||||
|
||||
mercury = nixpkgs.lib.nixosSystem { # Laptop
|
||||
specialArgs = {
|
||||
inherit self inputs username;
|
||||
host = "mercury";
|
||||
};
|
||||
inherit system;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = nixpkgsConfig;
|
||||
};
|
||||
modules = [
|
||||
./hosts/laptop/config.nix
|
||||
./modules/sys
|
||||
stylix.nixosModules.stylix
|
||||
];
|
||||
};
|
||||
|
||||
xenon = nixpkgs.lib.nixosSystem { # Server
|
||||
specialArgs = {
|
||||
inherit self inputs username;
|
||||
host = "xenon";
|
||||
};
|
||||
inherit system;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = nixpkgsConfig;
|
||||
};
|
||||
modules = [
|
||||
./hosts/server/config.nix
|
||||
./modules/sys
|
||||
hosts = movLib.foldHosts [
|
||||
{
|
||||
host = "oganesson";
|
||||
hostDir = "desktop";
|
||||
kind = "both";
|
||||
}
|
||||
{
|
||||
host = "phosphorous";
|
||||
hostDir = "work";
|
||||
kind = "both";
|
||||
}
|
||||
{
|
||||
host = "mercury";
|
||||
hostDir = "laptop";
|
||||
kind = "both";
|
||||
}
|
||||
{
|
||||
host = "xenon";
|
||||
hostDir = "server";
|
||||
kind = "both";
|
||||
extraNixosModules = [
|
||||
./modules/server
|
||||
stylix.nixosModules.stylix
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
in {
|
||||
inherit (hosts) nixosConfigurations homeConfigurations;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user