settei/hosts/default.nix

87 lines
2.1 KiB
Nix

{
config,
self,
inputs,
lib,
...
}: {
imports = [
./kazuki
./hijiri-vm
./hijiri
./legion
# TODO: Custom installer ISO
# ./installer
./ude
./kogata
];
builders = let
# FIXME: Move to common
sharedOptions = {
inputs',
lib,
...
}: {
_file = ./default.nix;
settei = {
username = lib.mkDefault "niko";
sane-defaults = {
enable = lib.mkDefault true;
allSshKeys = config.assets.sshKeys.user;
tailnet = "discus-macaroni.ts.net";
};
flake-qol = {
enable = true;
inputs = inputs // {settei = self;};
};
user = {
enable = true;
config = {
home.packages = let
extraPkgs = [inputs'.nh.packages.default];
in
[inputs'.settei.packages.base-packages] ++ extraPkgs;
programs.git.enable = true;
home.sessionVariables.EDITOR = "hx";
};
};
};
time.timeZone = lib.mkDefault "Europe/Warsaw";
};
in {
nixos = name: module:
inputs.nixpkgs.lib.nixosSystem {
modules = [
inputs.agenix.nixosModules.age
inputs.disko.nixosModules.disko
inputs.mailserver.nixosModules.default
inputs.home-manager.nixosModules.home-manager
inputs.hercules-ci-agent.nixosModules.agent-service
inputs.nvidia-patch.nixosModules.nvidia-patch
self.nixosModules.settei
self.nixosModules.common
sharedOptions
module
];
specialArgs.configurationName = name;
};
darwin = name: module:
inputs.darwin.lib.darwinSystem {
modules = [
inputs.agenix.darwinModules.age
inputs.home-manager.darwinModules.home-manager
inputs.hercules-ci-agent.darwinModules.agent-service
self.darwinModules.settei
self.darwinModules.common
sharedOptions
module
];
specialArgs.configurationName = name;
};
};
}