{ user, home }: { config, lib, pkgs, ... }: let hmConfig = config.home-manager.users.${user}; in { # FIXME: https://github.com/microsoft/vscode/issues/3884 # Also for Discord, but those guys are even bigger bastards. environment.persistence."/persist/state"."${home}/.config/Code" = { }; home-manager.users.${user} = { programs.vscode = { enable = true; mutableExtensionsDir = false; profiles.default = { extensions = with pkgs.vscode-extensions; [ mkhl.direnv mhutchie.git-graph ms-vsliveshare.vsliveshare ms-vscode-remote.remote-ssh naumovs.color-highlight ]; userSettings = { "diffEditor.ignoreTrimWhitespace" = false; "editor.accessibilitySupport" = "off"; "editor.cursorBlinking" = "phase"; "editor.cursorSmoothCaretAnimation" = "on"; "editor.fontFamily" = builtins.concatStringsSep ", " hmConfig.theme.font.monospace.names; "editor.fontLigatures" = true; "editor.fontSize" = hmConfig.theme.font.size; "editor.formatOnPaste" = true; "editor.formatOnSave" = true; "editor.formatOnType" = true; "editor.indentSize" = "tabSize"; "editor.inlineSuggest.enabled" = true; "editor.largeFileOptimizations" = false; "editor.linkedEditing" = true; "editor.renderFinalNewline" = "on"; "editor.smoothScrolling" = true; "editor.stickyScroll.enabled" = true; "editor.suggestSelection" = "first"; "editor.tabSize" = 2; "editor.unicodeHighlight.includeComments" = true; "editor.unicodeHighlight.nonBasicASCII" = true; "explorer.confirmDelete" = false; "explorer.confirmDragAndDrop" = false; "explorer.confirmPasteNative" = false; "extensions.autoCheckUpdates" = false; "extensions.autoUpdate" = false; "extensions.ignoreRecommendations" = true; "files.autoSave" = "afterDelay"; "files.enableTrash" = false; "files.eol" = "\n"; "files.insertFinalNewline" = true; "files.trimFinalNewlines" = true; "files.trimTrailingWhitespace" = true; "git.allowForcePush" = true; "git.alwaysSignOff" = true; "git.autofetch" = true; "git.blame.editorDecoration.enabled" = true; "git.closeDiffOnOperation" = true; "git.confirmForcePush" = false; "git.confirmSync" = false; "git.discardUntrackedChangesToTrash" = false; "git.enableCommitSigning" = true; "git.enableSmartCommit" = true; "git.ignoreRebaseWarning" = true; "git.openRepositoryInParentFolders" = "always"; "git.path" = lib.meta.getExe pkgs.git; "mergeEditor.diffAlgorithm" = "advanced"; "security.workspace.trust.enabled" = false; "telemetry.telemetryLevel" = "off"; "terminal.external.linuxExec" = "kitty"; "terminal.integrated.confirmOnExit" = "hasChildProcesses"; "terminal.integrated.copyOnSelection" = true; "terminal.integrated.fontFamily" = builtins.concatStringsSep ", " hmConfig.theme.font.monospace.names; "terminal.integrated.fontSize" = hmConfig.theme.font.size; "terminal.integrated.smoothScrolling" = true; "update.mode" = "none"; "window.autoDetectColorScheme" = true; "window.autoDetectHighContrast" = false; "window.menuBarVisibility" = "toggle"; "workbench.editor.historyBasedLanguageDetection" = true; "workbench.list.smoothScrolling" = true; }; }; }; home.file.".vscode/argv.json".source = (pkgs.formats.json { }).generate "argv.json" { enable-crash-reporter = false; crash-reporter-id = "00000000-0000-0000-0000-000000000000"; password-store = "basic"; }; }; }