A dark theme for VS Code, inspired by the album art of Megadeth's 1990 metal masterpiece, Rust in Peace.
The complete palette, including ANSI terminal colours, lives in src/palette.json — the single source of truth the VS Code theme, its lighter variants, and everything below are generated from at build time.
Hand-picked from the record's rusted, cobalt-blue cover art.
Rust in Peace![]() |
Hangar 18![]() |
Polaris![]() |
Dawn Patrol![]() |
Install straight from the Visual Studio Marketplace, or from inside the editor:
- Open the Extensions sidebar in VS Code —
View → Extensions - Search for
Megadeth(curse you, rust-lang!!!) - Click Install
Code → Preferences → Color Theme →Rust in Peace — or one of its lighter variants, Hangar 18 (a subtle lift) and Polaris (lighter still), or Dawn Patrol, the light theme
The VS Code theme isn't the only target. src/palette.json is the single source of truth, and matching themes for other tools are generated from it into ports/. Every target ships all four variants — core, Hangar 18, Polaris, and Dawn Patrol (light) — as separate files, except Zed, whose single file is a theme family carrying all four:
| Tool | Generated files |
|---|---|
| Helix | ports/helix/*.toml |
| Herdr | ports/herdr/*.toml |
| Zed | ports/zed/rust-in-peace.json |
| Zellij | ports/zellij/*.kdl |
| Ptyxis | ports/ptyxis/*.palette |
Copy the relevant file into your tool's theme directory, then select rust-in-peace (or a variant slug). Run just build-ports to regenerate them all after a palette change.
Herdr has no standalone theme files — its files are config fragments to merge into
~/.config/herdr/config.toml, recolouring thetokyo-nightbase theme (tokyo-night-dayfor Dawn Patrol).
To add another target, drop a generator in scripts/targets/ and register it in scripts/build_ports.py; it reuses the shared palette loader and resolver in scripts/palette.py.
To work on the theme:
- Clone this repo and open it in VS Code
- Open
View → Run - Click Launch Extension — this opens a second VS Code window
- Target scopes with the Developer: Inspect Editor Tokens and Scopes command
- Edit
src/rust-in-peace.ymland runnpm run build; changes appear live in the window from step 3
Colours live in src/palette.json; src/rust-in-peace.yml maps them onto VS Code keys via {{group.key}} placeholders. Edit the palette to shift a colour everywhere at once.
Please include before & after screenshots of your changes in pull requests.
Maintainer & publishing notes
Local tasks run through just — run just to list them all.
| Recipe | Purpose |
|---|---|
just check |
Run the full code-quality suite (lint, types, tests + coverage, dead code, duplication, secrets) |
just build |
Regenerate the theme JSON from the YAML source |
just build-ports |
Regenerate the companion themes (Helix, Herdr, Zed, Zellij, Ptyxis) |
just install |
Build, package, and install the extension into local VS Code |
just publish-patch |
Bump the patch version, tag, and push to publish |
just publish-minor |
Bump the minor version, tag, and push to publish |
just publish-patch / just publish-minor cover steps 1–5 below; run them by hand if you'd rather not use just.
- Bump the version in
package.json git commit -m 'Fire'— commit the changesgit tag v2.0.666— tag the commit with the version numbergit push origin --tags— push the taggit push— push the changes- Create a release on GitHub with the same version number
- GitHub Actions publishes the extension to the marketplace
- Profit!
Also check out the Slayer Reign in Blood theme.



