Skip to content

Appearance

Open the preferences with the menu item Preferences, or with Ctrl+,.

The preferences dialog

Theme

The Appearance group holds three settings:

SettingWhat it does
BaseSays who decides between light and dark.
Light paletteThe palette the window wears while the base is light.
Dark paletteThe palette the window wears while the base is dark.

Base has three values:

ValueWhat it does
Follow desktopThe desktop decides. A change to the desktop reaches the window at once, and a running job does not delay it.
Always lightThe window stays light, whatever the desktop does.
Always darkThe window stays dark, whatever the desktop does.

Under a held base, one of the two palette rows has nothing to say. That row goes grey, and you cannot change it until the base can reach it again.

Each palette list holds the palettes of its own base, and no other. A row gives the name of the palette alone, because the row above it already gives the base. The list has one section for each family, and the section header gives the family.

ListSections and rows
Light paletteSystemSystem light; CatppuccinLatte; DraculaAlucard; EverforestHard, Medium, Soft; KanagawaLotus
Dark paletteSystemSystem dark; CatppuccinFrappé, Macchiato, Mocha; DraculaDracula; EverforestHard, Medium, Soft; KanagawaDragon, Wave

A family appears in a list only if it holds a stylesheet of that base.

The window under the Dracula palette

Where the list comes from

The application reads the list at each start. It holds no palette name of its own.

assets/themes/<family>/<light|dark>/<name>.css

The first directory gives the family, the second gives the base, and the name of the file gives the rest of the row. A dash in a file name becomes a space, and each word starts with a capital letter. A directory with an other name than light or dark holds no palette, and the application passes it by.

To add a palette, put a CSS file at that place. To remove one, delete its file.

What a family says about itself

A family can hold one JSON file beside its light and dark directories:

assets/themes/<family>/family.json
json
{
  "name": "Catppuccin",
  "homepage": "https://catppuccin.com"
}
FieldWhat it does
nameThe name in the section header. Without it, the header takes the name of the directory.
homepageThe address of the family's own page. With it, the header shows a link button at its right; push the button to open the page in the browser.

Both fields are optional, and the file itself is optional. If the file cannot be parsed, only metadata are lost; the palettes stay in the list, and the application writes the reason of the parser on its error output. The System header has no link.

FamilyPage
Catppuccinhttps://catppuccin.com
Draculahttps://draculatheme.com
Everforesthttps://everforest.vercel.app
Kanagawahttps://github.com/rebelot/kanagawa.nvim

One picture of the queue for each palette, in the order the lists show them. Click a picture to open it in a new tab.

Catppuccin

Light

Dark

Dracula

Light

Dark

Everforest

Light

Dark

Kanagawa

Light

Dark