{ lib, config, ... }: let cfg = config.module.docker; in { config = lib.mkIf cfg.enable ( lib.mkMerge [ { virtualisation.docker.enable = true; systemd = if cfg.autostart then { } else { sockets.docker.wantedBy = lib.mkForce [ ]; services = { docker-prune.wantedBy = lib.mkForce [ ]; docker.wantedBy = lib.mkForce [ ]; }; }; } (lib.mkIf cfg.rootless { virtualisation.docker.rootless = { enable = true; setSocketVariable = true; }; }) ] ); }