{ pkgs , config , ... }: let pythonEnv = pkgs.python3.withPackages (p: with p; [ black click isort pylsp-mypy requests types-requests pip ipython virtualenv ]); in { programs.go = { enable = true; goPath = ".local/share/pkg.go"; goBin = ".local/bin.go"; package = pkgs.go_1_21; }; home.packages = with pkgs; [ go-tools golangci-lint gopls dive # explore layers in docker images pythonEnv kubectl google-cloud-sdk rnix-lsp alejandra nil ]; home.sessionPath = [ config.home.sessionVariables.GOBIN ]; programs.zsh.shellAliases = { kc = "kubectl"; }; programs.vscode = { enable = true; # Workaround https://github.com/nix-community/home-manager/issues/3507 mutableExtensionsDir = false; extensions = with pkgs.vscode-extensions; [ #go golang.go # nix arrterian.nix-env-selector bbenoist.nix jnoortheen.nix-ide # python ms-python.python ms-python.vscode-pylance # utils mkhl.direnv editorconfig.editorconfig tamasfe.even-better-toml ]; userSettings = { editor.fontSize = 16; "editor.formatOnSave" = true; "editor.minimap.enabled" = false; workbench.colorTheme = "Default Light Modern"; workbench.sideBar.location = "right"; "telemetry.telemetryLevel" = "off"; "files.autoSave" = "afterDelay"; # in milliseconds "files.autoSaveDelay" = 100; "nix.serverPath" = "nil"; "nix.serverSettings" = { "nil" = { "formatting" = { "command" = [ "alejandra" ]; }; }; }; "nix.enableLanguageServer" = true; }; }; home.sessionVariables = with config.xdg; { IPYTHONDIR = "${cacheHome}/ipython"; PIP_LOG = "${cacheHome}/pip/pip.log"; PYLINTHOME = "${cacheHome}/pylint"; PYTHON_EGG_CACHE = "${cacheHome}/python-eggs"; MYPY_CACHE_DIR = "${cacheHome}/mypy"; }; }