整理services

This commit is contained in:
陈浩南 2023-07-25 23:33:37 +08:00
parent a1f99f53bb
commit d69f6effd4
3 changed files with 74 additions and 44 deletions

View File

@ -149,6 +149,7 @@
./modules/boot
./modules/system
./modules/virtualization
./modules/services
(inputs: { config =
{
nixos =
@ -233,6 +234,11 @@
kvmGuest.enable = true;
nspawn = [ "arch" "ubuntu-22.04" ];
};
services =
{
impermanence.enable = true;
snapper = { enable = true; configs.persistent = "/nix/persistent"; };
};
};
boot.kernelParams = [ "i915.force_probe=46a6" ];
}; })
@ -240,7 +246,6 @@
./modules/basic.nix
./modules/fonts.nix
./modules/sops.nix
./modules/boot/chn-PC.nix
[ ./modules/hardware/nvidia-prime.nix { intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; } ]
./modules/hardware/chn-PC.nix
./modules/networking/samba.nix

View File

@ -1,43 +0,0 @@
inputs:
{
config =
{
# impermanence
environment.persistence."/nix/persistent" =
{
hideMounts = true;
directories =
[
"/etc/NetworkManager/system-connections"
"/home"
"/root"
"/var"
];
files =
[
"/etc/machine-id"
"/etc/ssh/ssh_host_ed25519_key.pub"
"/etc/ssh/ssh_host_ed25519_key"
"/etc/ssh/ssh_host_rsa_key.pub"
"/etc/ssh/ssh_host_rsa_key"
];
};
# services
services =
{
snapper.configs.persistent =
{
SUBVOLUME = "/nix/persistent";
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_MIN_AGE = 1800;
TIMELINE_LIMIT_HOURLY = "10";
TIMELINE_LIMIT_DAILY = "7";
TIMELINE_LIMIT_WEEKLY = "1";
TIMELINE_LIMIT_MONTHLY = "0";
TIMELINE_LIMIT_YEARLY = "0";
};
};
};
}

View File

@ -0,0 +1,68 @@
inputs:
{
options.nixos.services = let inherit (inputs.lib) mkOption types; in
{
impermanence =
{
enable = mkOption { type = types.bool; default = false; };
persistence = mkOption { type = types.nonEmptyStr; default = "/nix/persistent"; };
};
snapper =
{
enable = mkOption { type = types.bool; default = false; };
configs = mkOption { type = types.attrsOf types.nonEmptyStr; default = {}; };
};
};
config = let inherit (inputs.lib) mkMerge mkIf; inherit (inputs.localLib) stripeTabs attrsToList; in mkMerge
[
(
mkIf inputs.config.nixos.services.impermanence.enable
{
environment.persistence."${inputs.config.nixos.services.impermanence.persistence}" =
{
hideMounts = true;
directories =
[
"/etc/NetworkManager/system-connections"
"/home"
"/root"
"/var"
];
files =
[
"/etc/machine-id"
"/etc/ssh/ssh_host_ed25519_key.pub"
"/etc/ssh/ssh_host_ed25519_key"
"/etc/ssh/ssh_host_rsa_key.pub"
"/etc/ssh/ssh_host_rsa_key"
];
};
}
)
(
mkIf inputs.config.nixos.services.snapper.enable
{
services.snapper.configs =
let
f = (config:
{
inherit (config) name;
value =
{
SUBVOLUME = config.value;
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_MIN_AGE = 1800;
TIMELINE_LIMIT_HOURLY = "10";
TIMELINE_LIMIT_DAILY = "7";
TIMELINE_LIMIT_WEEKLY = "1";
TIMELINE_LIMIT_MONTHLY = "0";
TIMELINE_LIMIT_YEARLY = "0";
};
});
in
builtins.listToAttrs (builtins.map f (attrsToList inputs.config.nixos.services.snapper.configs));
}
)
];
}