Icon Theme Sync
VS Code can switch its color theme automatically between light and dark, but
workbench.iconTheme is a single value. An icon theme tuned for a dark
background stays put when the editor goes light.
This extension fixes that: pick an icon theme for light and one for dark, and it
switches them for you.
Why not just use a setting?
There isn't one. microsoft/vscode#271485 requests
preferredLightIconTheme / preferredDarkIconTheme; it sits in the backlog, and
an earlier PR adding them was rejected on the grounds that extensions should
handle it.
How it works
It follows the active color theme's kind, not the operating system. That
distinction matters: if you manually pick a light theme while your OS is still
dark, your icons still switch. Extensions and scripts that watch the OS
appearance miss that case entirely.
| Active color theme |
Icon theme applied |
| Light |
iconThemeSync.light |
| Dark |
iconThemeSync.dark |
| High Contrast Light |
iconThemeSync.light |
| High Contrast |
iconThemeSync.dark |
Setup
Run Icon Theme Sync: Configure from the Command Palette and pick an icon
theme for light and for dark. Or set them directly:
{
"iconThemeSync.light": "catppuccin-latte",
"iconThemeSync.dark": "catppuccin-frappe"
}
The values are icon theme IDs, not display names. The Configure command
lists the ID next to each installed theme so you don't have to hunt for it.
Settings
| Setting |
Default |
Description |
iconThemeSync.light |
"" |
Icon theme ID for light color themes. Empty leaves light themes unmanaged. |
iconThemeSync.dark |
"" |
Icon theme ID for dark color themes. Empty leaves dark themes unmanaged. |
Leaving a setting empty is not a half-configured state — it means "don't touch
the icon theme in this case." Clearing both disables the extension without
uninstalling it.
Behavior notes
- It writes
workbench.iconTheme to your user settings. If you keep
settings.json in a dotfiles repo, expect that line to change as you switch.
- It never overwrites an icon theme when the matching setting is empty.
- It skips the write when the correct theme is already active, so multiple open
windows don't fight over the file.
- If a configured icon theme isn't installed, it shows an error rather than
letting VS Code silently fall back to no icons at all.
- If a workspace or folder pins
workbench.iconTheme in its own settings,
that override wins, and this extension's write to your user settings won't
be visible in that window.
workbench.iconTheme is a single global value, so with two windows open on
different color themes, whichever window changed theme last determines the
icons in both. That's inherent to the setting, not a bug in this extension.
License
MIT