Skip to content

Palette Workspace

alsi-lawr edited this page Jul 22, 2026 · 1 revision

Palette workspace

:NeothemePalette manages local families and themes. It can open before the colorscheme is loaded.

Navigate

  • 1 selects Families; 2 selects Themes.
  • <Tab> and <S-Tab> move between the two lists.
  • <C-h> and <C-l> move between the navigator and role editor.
  • q or <Esc> closes a clean workspace.

The family list includes disabled families and diagnostics for invalid state files. v toggles family visibility. a creates a family. d deletes an empty local family after confirmation; built-in and non-empty families are not deleted.

Create or clone a theme

On Themes, a creates either a Simplified or Full palette. The initial dark or light template is chosen from the current background; it does not copy the selected theme.

c clones the selected theme. Local themes retain their source mode. Built-in and provider themes clone into editable local Full records because their runtime palette is the available source.

Theme and family names are lowercase ASCII slugs.

Edit

e opens a local theme. Built-in and provider themes are read-only and must be cloned first.

The centre panel edits field = #RRGGBB lines and a background = dark|light row. Simplified mode has four categories; Full mode has seven. Number keys select a category and [ or ] move between categories.

Valid changes update the private preview. Invalid fields are reported in place, retain the last valid preview, and block movement and saving.

Save or discard

  • :write validates and atomically saves without prompting.
  • C validates and asks for commit? Y/n before saving.
  • :q! discards changes and closes.
  • q or <Esc> on a dirty workspace keeps the editor open and points to the save/discard actions.

d deletes a local theme after confirmation unless it is configured, active, or retained as a session override.

Storage

Neotheme writes state under stdpath("state")/neotheme:

  • families/<family>.json
  • palettes/<family>/<theme>.json

Theme records use schema version 2 and record mode = "simplified"|"full". Existing strict mode-less version 1 records load as Full and upgrade on their next save. Malformed records are omitted from runtime selection and listed as diagnostics instead of preventing startup.

To repair a malformed record, edit or remove the named JSON file and reopen the workspace. Converting an existing theme between Simplified and Full is not supported.

Clone this wiki locally