Skip to content

Theme Customization

John Donaghy edited this page Mar 11, 2026 · 1 revision

Theme Customization

VimCode ships with 4 built-in color themes and supports importing VSCode color themes.

Built-in themes

Name Description
onedark One Dark (default) — dark background with muted colors
gruvbox-dark Gruvbox Dark — warm retro colors
tokyo-night Tokyo Night — blue-tinted dark theme
solarized-dark Solarized Dark — Ethan Schoonover's precision colors

Switching themes

:colorscheme gruvbox-dark      " Switch to Gruvbox
:colorscheme                   " List all available themes

Or change in settings.json:

{
    "colorscheme": "tokyo-night"
}

The theme can also be changed from the Settings sidebar (gear icon in the activity bar) — the colorscheme picker shows all available themes including custom ones.

Importing VSCode themes

VimCode can load VSCode color theme .json files directly:

  1. Find a theme — download a VSCode .json theme file (e.g., from a VS Code extension's themes/ directory)

  2. Place it in the themes directory:

    mkdir -p ~/.config/vimcode/themes
    cp my-theme.json ~/.config/vimcode/themes/
  3. Activate it:

    :colorscheme my-theme

The theme name is derived from the filename (without .json).

What gets imported

VimCode reads the following from VSCode theme JSON files:

  • Editor colors: background, foreground, selection, cursor, line highlight
  • Syntax colors: from tokenColors — keywords, strings, comments, functions, types, etc.
  • UI colors: sidebar, activity bar, status bar, tab bar
  • Semantic token colors: if the theme defines them

Limitations

  • Not all VSCode theme properties are supported — VimCode maps the most common ones
  • Some VSCode themes rely on editor-specific token scopes that may not map perfectly to VimCode's tree-sitter-based highlighting
  • Themes designed for specific VS Code extensions may have unsupported properties

Theme in the settings sidebar

The Settings sidebar (gear icon) includes a Colorscheme picker that:

  • Lists all built-in themes
  • Lists all custom .json themes from ~/.config/vimcode/themes/
  • Applies the theme immediately on selection
  • Persists the choice to settings.json

Semantic token colors

VimCode's theme system includes 8 semantic token colors that overlay tree-sitter highlighting when LSP semantic tokens are available:

Token type Description
parameter Function parameters
property Object/struct properties
namespace Namespaces/modules
enum_member Enum variants
interface Interfaces/traits
type_parameter Generic type parameters
decorator Decorators/attributes
macro Macros

These colors are defined in each built-in theme and can be customized in imported themes via VSCode's semanticTokenColors section.

Clone this wiki locally