diff --git a/features/apps/vscode.nix b/features/apps/vscode.nix index a85e2fe..9b55701 100644 --- a/features/apps/vscode.nix +++ b/features/apps/vscode.nix @@ -7,7 +7,26 @@ let else { name = "Default Dark Modern"; }; - # Development extensions that match the system theme + # Theme extensions matching palette vscode.json `extension` fields. Always + # installed because workbench.colorTheme is set unconditionally from the + # active palette — without the matching extension VSCode silently falls + # back to its default theme. Only the extensions available in + # pkgs.vscode-extensions are listed. Palettes whose theme extension is on + # the VSCode marketplace but not packaged in nixpkgs (sainnhe.everforest — + # affects the DEFAULT summer-night palette — plus qufiwefefwoyn.kanagawa, + # monokai.theme-monokai-pro-vscode, oldjobobo.*, Bjarne.*, + # shadesOfBuntu.flexoki-light, jovejonovski.ocean-green, TahaYVR.matteblack) + # still break and need pkgs.vscode-utils.extensionFromVscodeMarketplace — + # tracked in ROADMAP Later. + themeExtensions = with pkgs.vscode-extensions; [ + catppuccin.catppuccin-vsc # catppuccin, catppuccin-latte + enkia.tokyo-night # tokyo-night + arcticicestudio.nord-visual-studio-code # nord + mvllow.rose-pine # rose-pine + jdinhlife.gruvbox # gruvbox + ]; + + # Development extensions — opt-in via nomarchy.vscode.devExtensions. devExtensions = with pkgs.vscode-extensions; [ # Language support ms-python.python @@ -22,13 +41,6 @@ let esbenp.prettier-vscode dbaeumer.vscode-eslint bradlc.vscode-tailwindcss - - # Theme extensions (provide color themes matching nomarchy palettes) - catppuccin.catppuccin-vsc - enkia.tokyo-night - arcticicestudio.nord-visual-studio-code - sainnhe.everforest - mvllow.rose-pine ]; in { @@ -51,7 +63,10 @@ in "editor.fontFamily" = "'${config.nomarchy.fonts.monospace}', 'Droid Sans Mono', monospace"; "terminal.integrated.fontFamily" = config.nomarchy.fonts.monospace; }; - extensions = lib.mkIf config.nomarchy.vscode.devExtensions (lib.mkDefault devExtensions); + extensions = lib.mkDefault ( + themeExtensions + ++ lib.optionals config.nomarchy.vscode.devExtensions devExtensions + ); }; }; }