fix(vscode): always install palette theme extensions
programs.vscode.profiles.default.userSettings.workbench.colorTheme is set unconditionally to the active palette's theme name (read from themes/palettes/<theme>/apps/vscode.json), but the matching theme extensions were bundled with devExtensions — which defaults to false. So out of the box, VSCode silently fell back to the built-in dark theme on every palette. Split themeExtensions out as always-installed and devExtensions as opt-in via nomarchy.vscode.devExtensions. themeExtensions covers the 6 palettes whose VSCode theme is packaged in nixpkgs (catppuccin, catppuccin-latte, nord, tokyo-night, rose-pine, gruvbox). The other 15 palettes (including the default summer-night, which uses sainnhe.everforest) still break because their theme extensions are on the VSCode marketplace but not yet in nixpkgs — handling that needs pkgs.vscode-utils.extensionFromVscodeMarketplace plus per-palette publisher/name/version/sha256 metadata. Logged separately.
This commit is contained in:
@@ -7,7 +7,26 @@ let
|
|||||||
else
|
else
|
||||||
{ name = "Default Dark Modern"; };
|
{ 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; [
|
devExtensions = with pkgs.vscode-extensions; [
|
||||||
# Language support
|
# Language support
|
||||||
ms-python.python
|
ms-python.python
|
||||||
@@ -22,13 +41,6 @@ let
|
|||||||
esbenp.prettier-vscode
|
esbenp.prettier-vscode
|
||||||
dbaeumer.vscode-eslint
|
dbaeumer.vscode-eslint
|
||||||
bradlc.vscode-tailwindcss
|
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
|
in
|
||||||
{
|
{
|
||||||
@@ -51,7 +63,10 @@ in
|
|||||||
"editor.fontFamily" = "'${config.nomarchy.fonts.monospace}', 'Droid Sans Mono', monospace";
|
"editor.fontFamily" = "'${config.nomarchy.fonts.monospace}', 'Droid Sans Mono', monospace";
|
||||||
"terminal.integrated.fontFamily" = config.nomarchy.fonts.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
|
||||||
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user