Press Ctrl+P and choose Theme… to see every theme. As you move through the list, Posting
previews each one, so you can see how it looks before you choose it. Press Enter to use the
highlighted theme, or Esc to go back to the theme you had.
The theme picker. Change the theme of these docs with the picker at the top of the page to see a few of them.
A theme chosen in the palette lasts until you quit. To keep it, set it in your
configuration file:
theme:lantern
or with the POSTING_THEME environment variable.
If moving through the list feels slow in your terminal, turn off the live preview with
command_palette.theme_preview: false.
Each theme is a YAML file in that directory, ending in .yaml or .yml. Here's an example:
name:harbour# the name you use in your config and see in the pickerdark:true# false for a light themeprimary:'#4e78c4'# the main colour: GET labels, JSON keys, dialog borderssecondary:'#f39c12'# a second colour, used for smaller highlightsaccent:'#e74c3c'# a third colour, used to show what has focusbackground:'#0e1726'# the screen's backgroundsurface:'#17202a'# inputs, text areas and tablespanel:'#1f2b38'# raised surfaces, a step above `surface`text:'#e6edf3'# the main text coloursuccess:'#2ecc71'# successful responses, variables that have a valuewarning:'#f1c40f'# redirects, unsaved changeserror:'#e74c3c'# errors, variables that have no value
Only name and primary are required. Colours must be hex values (#rgb, #rrggbb or #rrggbbaa).
Any colour you leave out is taken from a built-in theme (galaxy for dark themes and
catppuccin-latte for light ones), so you can start with just a couple of colours and add more as you go.
The file's name doesn't matter: the theme is known by its name, and a theme with the same name as a
built-in theme replaces it.
Themes are loaded when Posting starts, so restart Posting to see changes to a theme file.
If a theme file has a problem, Posting names the file and the problem in a notification when it starts.
Your themes are listed first in the theme picker, under Yours. To list only your own themes, set
load_builtin_themes: false. To ignore the themes directory, set load_user_themes: false.
To keep your themes somewhere else, set theme_directory.
Posting 3 reads Posting 2 theme files, as long as their colours are hex values: a theme that uses
colour names or rgb(…) needs its colours changed to hex first. The colours listed above are used, and other settings in the
file are ignored, including author, description and homepage, and the custom styles under
text_area, syntax, url, method and variable. Syntax highlighting and method colours come
from the theme's colours instead (see below).
Syntax highlighting, the URL bar and the method labels all use the theme's colours, so every theme
gets a consistent set of colours without any extra configuration:
Posting can draw icons in the sidebar tabs, the header and notifications using a
Nerd Font. Icons are on by default in terminals that come with
Nerd Font symbols built in (currently Ghostty), and off elsewhere, since they show up as boxes
without one. If you use a Nerd Font, turn them on with: