Twelve Xscriptor color palettes ported to Zed as a single theme extension.
| Theme | Appearance |
|---|---|
| Xscriptor X | dark |
| Xscriptor Madrid | light |
| Xscriptor Lahabana | dark |
| Xscriptor Miami | dark |
| Xscriptor Paris | dark |
| Xscriptor Tokio | dark |
| Xscriptor Oslo | dark |
| Xscriptor Helsinki | light |
| Xscriptor Berlin | dark |
| Xscriptor London | light |
| Xscriptor Praha | dark |
| Xscriptor Bogota | dark |
Every theme is generated from the palettes in colors.json (background, foreground and the 16 ANSI colors) and keeps the original Xscriptor names.
Once the extension is published: open the Extensions page in Zed (zed: extensions), search for Xscriptor Themes and install it. Then pick a theme from the theme selector (theme selector: toggle) or set it in settings.json:
{
"theme": {
"mode": "dark",
"dark": "Xscriptor X",
"light": "Xscriptor Madrid"
}
}Copy the theme files into Zed's user themes directory:
cp themes/*.json "${XDG_CONFIG_HOME:-$HOME/.config}/zed/themes/"From the Extensions page, click Install Dev Extension and select this directory (the one containing extension.toml).
python3 generate.pygenerate.py reads colors.json and rewrites themes/, one Zed theme family per palette.
The themes target the current Zed theme schema (https://zed.dev/schema/themes/v0.2.0.json, one theme family per file):
- Legacy CSS-style colors (
rgba(...)) were converted to Zed's hex formats (#rrggbb,#rrggbbaa). - Terminal colors use the flat
terminal.ansi.*keys. - The cursor and selection colors are mapped to the first entry of
players. - Diagnostics colors (
editor.diagnostics.*) are mapped to the currenterror,warning,infoandhintroles. - Syntax entries are objects (
{"color": ...}); bold is700;underlineemphasis is not supported by the schema, so only its color is kept. - The accent color drives
text.accent,icon.accentand theaccentsarray. - UI roles that the palettes do not define (panels, tabs, elements, etc.) fall back to Zed's defaults.
The extension is ready to submit to the Zed extension registry:
-
Fork
zed-industries/extensions. -
Add this repository as a submodule under
extensions/xscriptor-theme(HTTPS URL) and add an entry to the top-levelextensions.toml:[xscriptor-theme] submodule = "extensions/xscriptor-theme" version = "0.1.0"
-
Run
pnpm sort-extensionsand open a PR.
Checklist: extension ID ends with -theme, provides only themes, ships an allowed license (MIT), and all user-facing text is in English.