{ lib, config, ... }: with lib; let cfg = config.module.docker; in { options = { module.docker = { enable = mkEnableOption "Enable Cocker"; rootless = mkOption { default = false; type = types.bool; }; autostart = mkOption { default = false; type = types.bool; }; }; }; config = mkIf cfg.enable (mkMerge [ { virtualisation.docker.enable = true; systemd = if cfg.autostart then { } else { services = { docker-prune.wantedBy = mkForce [ ]; docker.wantedBy = mkForce [ ]; }; sockets.docker.wantedBy = mkForce [ ]; }; } (mkIf cfg.rootless { virtualisation.docker.rootless = { enable = true; setSocketVariable = true; }; }) ]); }