76 lines
1.8 KiB
Nix
76 lines
1.8 KiB
Nix
{ config
|
|
, lib
|
|
, inputs
|
|
, self
|
|
, pkgs
|
|
, ...
|
|
}:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.my.programs.nix;
|
|
in
|
|
{
|
|
options.my.programs.nix = {
|
|
gc = {
|
|
enable = mkEnableOption "nix-gc";
|
|
minimumFreedGB = mkOption {
|
|
default = 32;
|
|
type = types.int;
|
|
apply = number: toString (number * 1024 * 1024 * 1024);
|
|
};
|
|
};
|
|
optimise.enable = mkEnableOption "nix-optimise";
|
|
};
|
|
|
|
config.nix = {
|
|
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
|
|
|
package = pkgs.nix-super;
|
|
|
|
extraOptions = "experimental-features = nix-command flakes";
|
|
|
|
gc = {
|
|
automatic = cfg.gc.enable;
|
|
options = "--max-freed ${cfg.gc.minimumFreedGB} --delete-older-than 14d";
|
|
dates = "weekly";
|
|
};
|
|
|
|
optimise = {
|
|
automatic = cfg.optimise.enable;
|
|
dates = [ "weekly" ];
|
|
};
|
|
|
|
registry = {
|
|
master-upstream.to = {
|
|
type = "github";
|
|
owner = "nixos";
|
|
repo = "nixpkgs";
|
|
};
|
|
master.flake = inputs.master;
|
|
nixpkgs.flake = inputs.nixpkgs;
|
|
stable.flake = inputs.stable;
|
|
dotfiles.flake = self;
|
|
default.flake = self;
|
|
};
|
|
|
|
settings = {
|
|
substituters = [
|
|
"https://cache.nixos.org/"
|
|
"https://jupyterwith.cachix.org"
|
|
"https://nix-community.cachix.org"
|
|
"https://pre-commit-hooks.cachix.org"
|
|
"https://hyprland.cachix.org"
|
|
];
|
|
trusted-public-keys = [
|
|
"jupyterwith.cachix.org-1:/kDy2B6YEhXGJuNguG1qyqIodMyO4w8KwWH4/vAc7CI="
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
|
"pre-commit-hooks.cachix.org-1:Pkk3Panw5AW24TOv6kz3PvLhlH8puAsJTBbOPmBo7Rc="
|
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
];
|
|
|
|
trusted-users = [ "root" "@wheel" ];
|
|
};
|
|
};
|
|
}
|