{ user ? throw "user argument is required" }: { inputs, lib, pkgs, ... }: { home-manager.users."${user.name}" = { programs.vscode = { enable = true; mutableExtensionsDir = false; userSettings = { "diffEditor.ignoreTrimWhitespace" = false; "editor.accessibilitySupport" = "off"; "editor.cursorBlinking" = "phase"; "editor.cursorSmoothCaretAnimation" = "on"; "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; "files.autoSave" = "afterDelay"; "files.eol" = "\n"; "files.insertFinalNewline" = true; "files.trimFinalNewlines" = true; "files.trimTrailingWhitespace" = true; "git.allowForcePush" = true; "git.alwaysSignOff" = true; "git.autofetch" = "all"; "git.closeDiffOnOperation" = true; "git.confirmForcePush" = false; "git.confirmSync" = false; "git.enableCommitSigning" = true; "git.enableSmartCommit" = true; "git.ignoreRebaseWarning" = true; "git.openRepositoryInParentFolders" = "always"; "git.path" = lib.meta.getExe pkgs.git; "mergeEditor.diffAlgorithm" = "advanced"; "open-in-browser.default" = "firefox"; "security.workspace.trust.enabled" = false; "telemetry.telemetryLevel" = "off"; "terminal.external.linuxExec" = "kitty"; "terminal.integrated.confirmOnExit" = "hasChildProcesses"; "terminal.integrated.copyOnSelection" = true; "window.autoDetectHighContrast" = false; "window.menuBarVisibility" = "toggle"; "workbench.editor.historyBasedLanguageDetection" = true; "workbench.list.smoothScrolling" = true; }; }; imports = [ ./langs/nix.nix ]; home.persistence = { "/persist${user.home}".directories = [ ".config/Code" ]; # Bastard: https://github.com/microsoft/vscode/issues/3884 "/cache${user.home}".directories = [ ".config/Code/Cache" ".config/Code/CachedConfigurations" ".config/Code/CachedData" ".config/Code/CachedExtensionVSIXs" ".config/Code/CachedExtensions" ".config/Code/CachedProfilesData" ".config/Code/Code Cache" ".config/Code/DawnCache" ".config/Code/GPUCache" ".config/Code/Service Worker/CacheStorage" ".config/Code/Service Worker/ScriptCache" ]; }; }; }