imperator-vscode-theme
Overview
A VS Code / Positron extension packaging the Imperator theme — an amber CRT sci-fi palette inspired by the universe of Dune — as an installable .vsix package, distinct from the Neovim/Obsidian ports in this repo in that it ships as a real, versioned VS Code extension rather than a config file dropped into place.
Design Philosophy
- Two variants, one identity.
Imperator – Sardaukar Night (dark) and Imperator – Arrakis Sunrise (light) share the same semantic palette — background/foreground ramps, accent family, and per-token roles — regraded for a dark or a light surface instead of being two unrelated themes.
- Restrained, ceremonial, not neon-cyberpunk. Comments are intentionally quiet, the editor chrome stays subdued, and only key syntax elements (function definitions, headings) carry the brighter imperial tones — the same luminance-hierarchy rule enforced across every UI element.
- Versioned as a real package, not a symlinked config.
package.json's version/engines.vscode fields and the built .vsix artifact reflect that this component is distributed and installed like any other marketplace extension, not deployed via dotfile-style symlinking.
Key Features
- Two selectable theme variants registered as VS Code
contributes.themes entries: Imperator – Sardaukar Night (vs-dark) and Imperator – Arrakis Sunrise (vs).
- Sardaukar Night: Deep Void (
#0E0C08) background family with Amber Light (#CDA44C) foreground and Golden Signal (#EFC92E) as the singular primary accent.
- Arrakis Sunrise: warm sand (
#DDC79A) background family with dark ember (#4A3812) foreground and Old Gold (#8F5F00) as the primary accent — the same roles as Night, regraded for a light surface.
- A full semantic-role palette per variant, not just a background/foreground swap: distinct hues for strings, numbers/params, keywords, math (LaTeX), errors, success, info, and decorators.
- Compatible with both VS Code and Positron (the RStudio-successor IDE), per
engines.vscode: "^1.75.0".
Configuration Breakdown
| File |
Responsibility |
Why it exists |
package.json |
Extension manifest — name, publisher, icon, repository, VS Code engine compatibility, and the contributes.themes registration for both variants |
Required by VS Code's extension system to recognize this as an installable theme extension |
themes/Imperator-Night.json |
The dark variant |
Default/flagship variant |
themes/Imperator-Sunrise.json |
The light variant |
For users working in bright environments |
icon.png |
Extension marketplace/list icon |
Referenced by package.json's icon field |
prueba-theme.py |
A visual test/scratch script exercising comments, docstrings, decorators, type hints, f-strings, and other syntax categories (Spanish "prueba" = "test") |
Open it with a variant enabled to eyeball token coverage; not part of the packaged extension itself |
Dependencies
- VS Code ≥ 1.75.0, or Positron (VS Code-compatible extension host)
vsce (Visual Studio Code Extension manager) — only needed if rebuilding the .vsix from source rather than using the committed pre-built package
Usage
Install directly from the pre-built package: code --install-extension imperator-theme-1.0.0.vsix (or via Positron's equivalent extension-install command), then select a variant (Imperator – Sardaukar Night or Imperator – Arrakis Sunrise) from the editor's theme picker (Ctrl+K Ctrl+T).
Customization
- Colors: edit the relevant
themes/*.json file directly — VS Code theme JSON uses the standard colors (UI) and tokenColors (syntax) sections.
- Adding a new variant: create a new theme JSON file under
themes/ and register it as an additional entry in package.json's contributes.themes array.
- Rebuilding the package: after editing a theme file, bump
version in package.json and rebuild with vsce package to produce a new .vsix.
- Theme extensions are declarative JSON with no runtime code — VS Code's own theme-application cost applies equally regardless of which variant is active.
- Committing the built
.vsix binary increases repository size modestly but removes the need for a build step at install time.
Notes
prueba-theme.py and the .claude/settings.local.json file present in this directory are development/tooling artifacts, excluded from the packaged .vsix via .vscodeignore — the extension's actual contents are fully described by package.json's contributes and the themes/ directory.
- Distinct from
impr-obsidian and the Neovim imperator colorscheme: this component targets VS Code/Positron's own theme JSON schema, not a shared cross-editor format — palette drift between the three editor themes is possible if one is updated without the others.
| |