{ config, lib, pkgs, ... }: let packages = builtins.attrValues { inherit (pkgs) dockfmt; # Format Dockerfiles inherit (pkgs.nodePackages) dockerfile-language-server-nodejs # LSP for Dockerfiles ; }; in { options = { my.dev.docker.enable = lib.mkEnableOption "Install Docker tooling globally"; devShells.docker = lib.mkOption { type = lib.types.package; default = pkgs.mkShell { inherit packages; name = "docker-dev-shell"; shellHook = '' echo "🐳 Docker dev environment" ''; }; description = "Docker and Dockerfile tooling shell"; }; }; config = lib.mkMerge [ (lib.mkIf config.my.dev.docker.enable { users.users.jawz = { inherit packages; }; }) { environment.variables.DOCKER_CONFIG = "\${XDG_CONFIG_HOME}/docker"; } ]; }