{ config, pkgs, ... }: let configDir = "Code"; userDir = if pkgs.stdenv.hostPlatform.isDarwin then "Library/Application Support/${configDir}/User" else "${config.xdg.configHome}/${configDir}/User"; in { programs.vscode = { enable = true; userSettings = { "editor.tabSize" = 4; "workbench.preferredDarkColorTheme" = "SynthWave '84"; "editor.fontSize" = 24; "editor.fontFamily" = "'Comic Code'"; "terminal.integrated.fontSize" = 24; "editor.codeLensFontFamily" = "'Comic Code'"; "editor.inlayHints.fontFamily" = "'Comic Code'"; "markdown.preview.fontFamily" = "'Comic Code'"; "terminal.integrated.fontFamily" = "'Comic Code'"; "files.autoSave" = "afterDelay"; "synthwave84.disableGlow" = true; }; }; # make config changeable home = { activation = { afterWriteBoundary = { after = [ "writeBoundary" ]; before = [ ]; data = '' vscodeDir="$HOME/${userDir}" $DRY_RUN_CMD cat "$vscodeDir/settings.json" > "$vscodeDir/settings_whatever.json" $DRY_RUN_CMD rm -f "$vscodeDir/settings.json" $DRY_RUN_CMD cp "$vscodeDir/settings_whatever.json" "$vscodeDir/settings.json" ''; }; }; }; }