Skip to content
| Marketplace
Sign in
Visual Studio Code>Themes>TarnishedNew to Visual Studio Code? Get it now.
Tarnished

Tarnished

Tushar-9802

|
3 installs
| (0) | Free
A dark gold theme with cinematic git overlays and looping background music, inspired by soulslike UI.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Tarnished

A dark gold VS Code theme with cinematic git overlays and a looping background track.

Theme

Warm void black (#0B0907) rather than neutral grey, with a deliberate colour hierarchy:

Role Colour
Keywords, tags, module symbols gold #E8C56A
Functions and methods pale gold #F5E2A7
Types, classes, interfaces jade #7FA69C
Numbers, constants, attributes bronze #B08442
Strings parchment #D9C9A3
Variables bone #C8D2C2
Comments ash #5F5C52, italic
Errors #B8484A

Gold accents carry through the cursor, active line number, tab top border, activity bar, scrollbar and focus rings. Bracket pairs cycle gold → jade → bronze → sage. Semantic highlighting is on, so Pylance and similar language servers drive the finer colours. The outline panel and IntelliSense glyphs (symbolIcon.*) follow the same palette.

File icons

A matching file icon theme: 20 hand-drawn SVG glyphs covering 77 extensions, keyed to the same palette — jade for Python, gold for JS and markup, bronze for data and archives, parchment for prose, blood red for git files. Enable it with Preferences: File Icon Theme → Tarnished.

Product icons

A product icon theme replacing VS Code's own UI glyphs — activity bar, chevrons, close, play, search, terminal, gear, diagnostics — with 24 drawn in the same geometric language as the file icons. The font is generated in build_producticons.py and matches codicon.ttf metrics (300 units/em, baseline at the icon's foot). Icons not defined here keep VS Code's defaults.

Enable with Preferences: Product Icon Theme → Tarnished.

Markdown preview

Markdown previews get serif gold headings, a fading rule under the title, gold list markers, bronze-bordered code blocks and quote bars. Body colours come from the active theme's own variables, so previews stay readable if you switch away from Tarnished.

Wallpapers

Three abstract 2560×1440 wallpapers — ring, ashfall, grace — generated from primitives in build_wallpapers.py. Tarnished: Save wallpapers to Desktop copies them out for use as a desktop background; the welcome view (Tarnished: Open welcome) uses one at random as its own background.

Point tarnished.wallpaper.folder at a folder of your own images to use those instead, in both the welcome view and — with tarnished.overlay.background set to wallpaper — as a dimmed backdrop behind overlay text. Only the generated wallpapers ship with the extension; anything in your own folder stays on your machine.

VS Code has no supported way to put an image behind the editor itself. Extensions that do it patch the workbench HTML, which trips the "installation is corrupt" warning and breaks on updates, so this extension does not attempt it.

Fonts

Cormorant Garamond (SIL Open Font License) ships with the extension and is used by the overlay and welcome views, loaded as a webview resource — remote @import is blocked inside webviews, so a bundled file is the only reliable route.

Victor Mono ships with the extension (SIL Open Font License). Run Tarnished: Set up the editor font and it installs the four faces into your user font directory — ~/Library/Fonts on macOS, %LOCALAPPDATA%\Microsoft\Windows\Fonts plus a per-user registry entry on Windows, ~/.local/share/fonts and fc-cache on Linux. No admin rights, nothing touched system-wide, and it sets editor.fontFamily for you.

Its cursive italics are the reason it is the default suggestion: this theme italicises comments, so they render as script.

Fonts are read once when VS Code starts, so fully quit and reopen afterwards — "Reload Window" is not enough. The fallback chain keeps Nirmala UI so Devanagari still renders.

Overlays

A full-screen overlay on git events, in four styles:

  • pushed — gold, a light bar opening from centre, shimmer sweep, drifting embers
  • grace — a quieter golden bloom, no band
  • felled — a bright sheet wiping across behind the text
  • death — crimson, slower, heavier grain

Each builds from the same stage: film grain, vignette, blur-to-sharp letter reveal with the tracking tightening as it lands, and a slow scale across the full duration. prefers-reduced-motion disables the motion.

Push fires an overlay by default. Commit and task-failure overlays are off until you set them.

Preview any style from the command palette: Tarnished: Preview '…' overlay.

Background music

A looping track, started from the status bar control or Tarnished: Toggle background music. Volume is configurable, and tarnished.music.playOnStartup starts it with the editor.

One track ships with the extension: "Breves dies hominis", a solo vocal setting of a 12th–13th century Latin piece, performed by Magdalen Kadel and released under CC0 via OpenGameArt. The composition is public domain by age and the recording is public domain by licence.

Point tarnished.music.file at any other file to use your own instead.

Playback uses ffplay (from ffmpeg) when available, which handles looping and volume on every platform. On Windows without ffmpeg it falls back to Windows Media Player's COM interface.

Settings

Setting Default
tarnished.overlay.enabled true Master switch for overlays
tarnished.overlay.onPush pushed Style after a successful push
tarnished.overlay.onCommit none Style after a commit
tarnished.overlay.onTaskFailure none Style when a task exits non-zero
tarnished.overlay.duration 6000 Milliseconds on screen
tarnished.overlay.soundFile "" Sound played with the overlay
tarnished.overlay.text.* Overlay wording per event
tarnished.music.file "" Looping background track
tarnished.music.volume 35 0–100
tarnished.music.playOnStartup false Start the track on launch
tarnished.music.showStatusBarItem true Status bar play/stop control

Audio and licensing

Everything that ships here is public domain:

  • Background track — "Breves dies hominis", performed by Magdalen Kadel, CC0 via OpenGameArt. The composition is 12th–13th century, public domain by age.
  • Overlay sounds — short excerpts from "Fantasy Choir" by César da Rocha, CC0 via OpenGameArt, cut and fade-shaped for use as UI stingers.

tarnished.overlay.soundFile and tarnished.music.file override these with your own audio. Game soundtracks are copyrighted and are not redistributed here; point those settings at files you have the right to use.

Building

python build.py          # regenerates themes/tarnished-color-theme.json and media/icon.png
npx @vscode/vsce package # produces tarnished-<version>.vsix

The palette lives in build.py; edit it there rather than in the generated theme file.

Licence

MIT. Not affiliated with, endorsed by, or derived from any game or its publisher.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft