oizys/modules/oizys.nix

88 lines
1.4 KiB
Nix

{
inputs,
lib,
self,
hostName,
pkgs,
config,
...
}:
let
inherit (lib)
mkEnableOption
mkOption
loadOverlays
oizysSettings
tryPkgsFromFile
listToAttrs
;
in
{
imports = with self.nixosModules; [
users
runes
essentials
nix-improved
cli
nvim
vpn
gpg
lock
qtile
hyprland
plasma
virtualbox
docker
podman
gui
fonts
hp-scanner
languages
# programs
chrome
vscode
nix-ld
restic
llm
utils
];
options.oizys = {
user = mkOption {
type = lib.types.str;
default = "daylin";
description = "main user account";
};
desktop.enable = mkEnableOption "is desktop";
docker.enable = mkEnableOption "enable docker support";
packages = mkOption {
type = lib.types.attrsOf lib.types.package;
description = "attr set of all packages, for use with nix-eval-jobs by `oizys cache`";
};
};
config = {
networking.hostName = hostName;
time.timeZone = "US/Central";
nixpkgs.overlays = import ../overlays { inherit inputs loadOverlays; };
oizys = oizysSettings hostName // {
packages =
config.environment.systemPackages
|> map (drv: {
name = drv.name;
value = drv;
})
|> listToAttrs;
};
environment.systemPackages = tryPkgsFromFile { inherit hostName pkgs; };
};
}