{ config, pkgs, lib, ... }: { options = { vscode = { enable = lib.mkEnableOption { description = "Enable Visual Studio Code"; default = false; }; }; }; config = lib.mkIf (config.gui.enable && config.vscode.enable) { home-manager.users.${config.user} = { nixpkgs.config.allowUnfree = true; programs.vscode = { enable = true; enableUpdateCheck = false; enableExtensionUpdateCheck = false; mutableExtensionsDir = false; extensions = [ pkgs.vscode-extensions.catppuccin.catppuccin-vsc pkgs.vscode-extensions.ms-azuretools.vscode-docker pkgs.vscode-extensions.dbaeumer.vscode-eslint pkgs.vscode-extensions.vue.volar pkgs.vscode-extensions.esbenp.prettier-vscode pkgs.vscode-extensions.firefox-devtools.vscode-firefox-debug pkgs.vscode-extensions.davidanson.vscode-markdownlint pkgs.vscode-extensions.bbenoist.nix pkgs.vscode-extensions.brettm12345.nixfmt-vscode pkgs.vscode-extensions.golang.go pkgs.vscode-extensions.mkhl.direnv pkgs.vscode-extensions.ms-vscode-remote.remote-ssh pkgs.vscode-extensions.ms-vscode-remote.remote-containers pkgs.vscode-extensions.sumneko.lua ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "vscode-wow-toc"; publisher = "stanzilla"; version = "0.0.6"; sha256 = "sha256-XEeqfnl+MxuElx1xaJ2OFjfl7YAh13StZzZN4f3DE74="; } { name = "wow-bundle"; publisher = "septh"; version = "1.3.0"; sha256 = "sha256-L0hdiKIzoOUC/+WxXHfWeuvINWf2EM7GPk2FzLmF07Y="; } { name = "wow-api"; publisher = "ketho"; version = "0.17.6"; sha256 = "sha256-5g3j+Ta7e4L5uNh/Fb3blesVu4dSJyQe2vPF0MQHJPc="; } ]; userSettings = { "workbench.colorTheme" = "Catppuccin Mocha"; "editor.tabSize" = 2; "editor.insertSpaces" = true; "git.autofetch" = true; "git.confirmSync" = false; }; }; }; }; }