A small VS Code extension that puts a color-theme switcher in the status bar and lets you "pin" a curated subset of themes for one-click access — no more scrolling through the full theme list every time.
Features
- Status bar control: shows the active theme; click the label to cycle to the next pinned theme, or click the chevron to open the pinned-themes picker.
- Pinned themes picker: lists only your pinned themes. Theme is applied on Enter (no live-preview thrash). Includes a fallback row to open VS Code's built-in full-theme picker.
- Pin manager: a single quick-pick listing every installed theme, with a star button on each row to pin/unpin in place. Persists to settings.
Settings
| Setting | Default | Purpose |
|---|---|---|
themePicker.pinned |
[] |
Ordered list of pinned theme labels. Order = cycle order. |
themePicker.statusBar.alignment |
"right" |
"left" or "right". Reload required. |
themePicker.statusBar.priority |
100 |
Status bar slot priority. Higher = further left. Reload required. |
themePicker.includeAllThemesEntry |
true |
Show "Pick from all themes…" row in the pinned picker. |
Commands
Theme Picker: Cycle to Next Pinned ThemeTheme Picker: Open Pinned Themes PickerTheme Picker: Manage Pinned Themes…Theme Picker: Pin Current ThemeTheme Picker: Unpin Current Theme
The Pin Current / Unpin Current commands are unbound by default — assign
them keybindings if you want one-keystroke pinning.
Development
Prerequisites: Node.js 18+ and npm.
cd D:\playground\theme-picker
npm install
npm run compile # one-shot
npm run watch # incremental
Open this folder in VS Code and press F5 to launch an Extension Development Host with the extension loaded.
Notes on behaviour
- Pinned themes that are no longer installed are shown in the picker with a warning marker and cannot be applied; cycling skips them automatically.
- The pin-manager picker keeps its cursor on the row you toggled, so you can rapidly star/unstar several themes without losing your place.
- The pinned-themes picker deliberately does not preview themes as you arrow through the list — themes only change on Enter.
Building a VSIX locally
npm install --no-save @vscode/vsce
npx vsce package
code --install-extension theme-picker-0.1.0.vsix
Publishing to the VS Code Marketplace
Prerequisite: a publisher account at https://marketplace.visualstudio.com/manage and an Azure DevOps Personal Access Token with Marketplace → Manage scope.
cd D:\playground\theme-picker
npm install --no-save @vscode/vsce
npx vsce login besuns-havok # paste PAT when prompted (one-time)
npx vsce package # produces theme-picker-<ver>.vsix locally
npx vsce publish # bumps + uploads to the Marketplace
License
MIT — see LICENSE.