94 lines
2.7 KiB
Nix
Executable File
94 lines
2.7 KiB
Nix
Executable File
{
|
|
description = "System Wide Config Controller";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
|
nixvim = {
|
|
url = "github:nix-community/nixvim/nixos-26.05";
|
|
};
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-26.05";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
impermanence.url = "github:nix-community/impermanence";
|
|
sops-nix = {
|
|
url = "github:Mic92/sops-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
firefox-addons = {
|
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
nixvim,
|
|
home-manager,
|
|
disko,
|
|
impermanence,
|
|
sops-nix,
|
|
firefox-addons,
|
|
}@inputs:
|
|
# Place all config differences between laptop/desktop here
|
|
# If they grow sufficiently different, maybe split them out completely
|
|
let
|
|
platforms = [
|
|
{
|
|
name = "roy-laptop";
|
|
hostId = "4cb9fc76";
|
|
hashedPass = "$y$j9T$4yOAv6R7Xtn23XmhSSC8g.$T1CckfWgxjEyZshjBzcaMO9WidP.q..OG7LwtXFTw12";
|
|
}
|
|
{
|
|
name = "roy-desktop";
|
|
hostId = "67cf9bc4";
|
|
hashedPass = "$y$j9T$6u38YtgJqXZ6Yq11mIZq//$SyZo1UEj5csiElp3a2zoDbdFGCdYktel09lfIkgKKd0";
|
|
}
|
|
];
|
|
in
|
|
{
|
|
nixosConfigurations = builtins.listToAttrs (
|
|
map (platform: {
|
|
name = platform.name;
|
|
value = nixpkgs.lib.nixosSystem {
|
|
specialArgs.meta = {
|
|
hostname = platform.name;
|
|
hostId = platform.hostId;
|
|
hashedPass = platform.hashedPass;
|
|
};
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
./configuration.nix
|
|
./hardware-configuration.nix
|
|
./disk-config.nix
|
|
disko.nixosModules.disko
|
|
impermanence.nixosModules.impermanence
|
|
sops-nix.nixosModules.sops
|
|
home-manager.nixosModules.home-manager
|
|
{
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
|
home-manager.users.roy =
|
|
{ ... }:
|
|
{
|
|
imports = [
|
|
./home-manager/home.nix
|
|
nixvim.homeModules.nixvim
|
|
sops-nix.homeManagerModules.sops
|
|
];
|
|
};
|
|
}
|
|
];
|
|
};
|
|
}) platforms
|
|
);
|
|
};
|
|
}
|