{ config, inputs, lib, pkgs, ... }: with lib; let cfg = config.nixfiles.modules.docker; in { options.nixfiles.modules.docker.enable = mkEnableOption "Docker"; config = mkIf cfg.enable { assertions = [ { assertion = !config.nixfiles.modules.podman.enable; message = "Pick only one!"; } ]; secrets.containers-auth = { file = "${inputs.self}/secrets/containers-auth"; path = "${config.my.home}/.docker/config.json"; owner = my.username; inherit (config.my) group; }; virtualisation.docker.enable = true; environment.systemPackages = with pkgs; [docker-compose]; my.extraGroups = ["docker"]; hm.programs.bash = { shellAliases.d = "docker"; initExtra = mkAfter '' _complete_alias d _docker docker ''; }; }; }