{ config, pkgs, lib, ... }: { ### VSCode Server ### imports = [ "${fetchTarball { url = "https://github.com/msteen/nixos-vscode-server/tarball/master"; sha256 = "1rdn70jrg5mxmkkrpy2xk8lydmlc707sk0zb35426v1yxxka10by"; }}/modules/vscode-server/home.nix" ]; config = lib.mkIf config.homeModules.vscode.enable { services.vscode-server.enable = true; # Optional: extra settings # services.vscode-server.enableFHS = true; # services.vscode-server.nodejsPackage = pkgs.nodejs_20; ### VSCode Editor ### programs.vscode = { enable = true; profiles.default = { enableUpdateCheck = false; enableExtensionUpdateCheck = false; userSettings = { "editor.formatOnSave" = true; "editor.inlineSuggest.enabled" = true; "editor.minimap.enabled" = false; "editor.minimap.autohide" = true; "editor.minimap.renderCharacters" = false; "explorer.autoReveal" = false; "explorer.excludeGitIgnore" = true; "extensions.autoUpdate" = false; "git.autofetch" = true; "git.suggestSmartCommit" = false; "git.confirmSync" = false; "security.workspace.trust.enabled" = false; "security.workspace.trust.untrustedFiles" = "open"; "workbench.colorTheme" = "SynthWave '84"; "workbench.iconTheme" = "material-icon-theme"; "workbench.startupEditor" = "none"; "workbench.tree.indent" = 16; "rust-analyzer.lens.implementations.enable" = false; "chat.agent.enabled" = false; "[typescript]" = { "editor.defaultFormatter" = "esbenp.prettier-vscode"; }; "[vue]" = { "editor.defaultFormatter" = "Vue.volar"; }; "[mdx]" = { "editor.defaultFormatter" = "unifiedjs.vscode-mdx"; }; "[astro]" = { "editor.defaultFormatter" = "astro-build.astro-vscode"; }; "[nix]" = { "editor.defaultFormatter" = "jnoortheen.nix-ide"; }; }; extensions = with pkgs.vscode-extensions; [ # Nix bbenoist.nix # Rust rust-lang.rust-analyzer tamasfe.even-better-toml # JS/TS dbaeumer.vscode-eslint esbenp.prettier-vscode astro-build.astro-vscode # Misc yzhang.markdown-all-in-one foxundermoon.shell-format # Git waderyan.gitblame #mhutchie.git-graph donjayamanne.githistory codezombiech.gitignore ]; }; }; }; }