infrastructure/nixos/klipper.nix

31 lines
841 B
Nix

{
config,
gensokyo-zone,
lib,
...
}: let
inherit (gensokyo-zone.lib) mkAlmostOptionDefault;
inherit (lib.modules) mkIf mkDefault;
inherit (config.services) moonraker octoprint;
cfg = config.services.klipper;
in {
services = {
klipper = {
enable = mkDefault true;
octoprintIntegration = mkIf octoprint.enable (mkDefault true);
user = mkIf moonraker.enable (mkAlmostOptionDefault "moonraker");
group = mkIf moonraker.enable (mkAlmostOptionDefault "moonraker");
mutableConfig = true;
mutableConfigFolder = mkIf moonraker.enable (mkDefault "${moonraker.stateDir}/config");
settings = {};
};
};
systemd = mkIf cfg.enable {
services.klipper = {
restartIfChanged = false;
serviceConfig.LogFilterPatterns = [
''~INFO:root:Stats''
];
};
};
}