← All extensions

Xscriptor Themes

v0.1.0 · by Xscriptor · added 3 November 2026

Twelve Xscriptor color palettes for Zed: X, Madrid, Lahabana, Miami, Paris, Tokio, Oslo, Helsinki, Berlin, London, Praha and Bogota.

Themes

How to install

With Forge Super installed, the button above opens the app on this extension, where you press Install. Nothing is installed until you do.

You can also open the Extensions panel in the app and search for Xscriptor Themes. The extension's id is xscriptor-theme.

Don't have Forge Super yet? Download it here.

README

From the extension's repository, written by its authors and not by Mentenaz. See the source.

Xscriptor Themes for Zed

Twelve Xscriptor color palettes ported to Zed as a single theme extension.

ThemeAppearance
Xscriptor Xdark
Xscriptor Madridlight
Xscriptor Lahabanadark
Xscriptor Miamidark
Xscriptor Parisdark
Xscriptor Tokiodark
Xscriptor Oslodark
Xscriptor Helsinkilight
Xscriptor Berlindark
Xscriptor Londonlight
Xscriptor Prahadark
Xscriptor Bogotadark

Every theme is generated from the palettes in colors.json (background, foreground and the 16 ANSI colors) and keeps the original Xscriptor names.

Install

From the Zed extension registry

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"
  }
}

Manual install

Copy the theme files into Zed's user themes directory:

cp themes/*.json "${XDG_CONFIG_HOME:-$HOME/.config}/zed/themes/"

Install as a dev extension

From the Extensions page, click Install Dev Extension and select this directory (the one containing extension.toml).

Regenerate

python3 generate.py

generate.py reads colors.json and rewrites themes/, one Zed theme family per palette.

Format notes

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, with terminal.ansi.dim_* derived by dimming the base ANSI colors and terminal.bright_foreground/terminal.dim_foreground taken from the palette.
  • The cursor and selection colors are mapped to the first entry of players.
  • Diagnostics colors (editor.diagnostics.*) are mapped to the current error, warning, info and hint roles.
  • Syntax entries are objects ({"color": ...}); bold is 700; underline emphasis is not supported by the schema, so only its color is kept.
  • Syntax covers Zed's canonical captures (number, boolean, property, attribute, enum, variant, title, link_text, link_uri, selector, preproc, string.escape, string.special.symbol, diff.*, ...) plus common legacy names; any color below 3:1 contrast against the background is nudged toward the foreground.
  • The accent color drives text.accent, icon.accent and the accents array.
  • UI surfaces (panels, tabs, title/status bars, elements, borders, scrollbars, search matches, status colors, version-control colors) are derived from background/foreground through blends and alpha, so the whole UI stays in the palette instead of falling back to Zed's defaults.

Publishing

The extension is ready to submit to the Zed extension registry:

  1. Fork zed-industries/extensions.

  2. Add this repository as a submodule under extensions/xscriptor-theme (HTTPS URL) and add an entry to the top-level extensions.toml:

    [xscriptor-theme]
    submodule = "extensions/xscriptor-theme"
    version = "0.1.0"
    
  3. Run pnpm sort-extensions and 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.