Themes
Arcana includes 7 built-in themes with custom backgrounds and color palettes for supported truecolor terminals. Each theme transforms the terminal UI — from the prompt colors and borders to background imagery and accent highlights.
Available Themes
Each theme includes a complete color palette with background, foreground, accent, and status colors. Here's a visual preview of each theme's color scheme:
bloodmooncovencryptdragonlichwraithdefaultSetting a Theme
You can set a theme using either the config command or the dedicated theme command:
# Set theme via config
arcana config set theme bloodmoon
# Or use the dedicated command
arcana theme set crypt
# Apply immediately without saving (session only)
arcana theme set dragon --temporary
Preview a Theme
Preview a theme without permanently switching to it:
# Preview a theme (revert on exit)
arcana theme preview lich
# List available themes with preview
arcana theme list --preview
Managing Themes
# List all available themes
arcana theme list
# Show current theme
arcana theme current
# Reset to default theme
arcana theme reset
# Export current theme to file
arcana theme export my-theme.json
Creating a Custom Theme
You can create your own theme by placing a JSON file in ~/.config/arcana/themes/. Themes use a simple color scheme format:
{
"name": "midnight-ocean",
"type": "dark",
"colors": {
"background": "#0a0e1a",
"foreground": "#c8d6e5",
"accent": "#54a0ff",
"success": "#5fcf80",
"warning": "#feca57",
"error": "#ee5a24",
"info": "#54a0ff",
"border": "#1e2a4a",
"selection": "#2e3a5a",
"muted": "#576574"
}
}
Custom themes appear automatically in arcana theme list once placed in the themes directory.
Color Reference
Each theme supports these color keys:
| Key | Usage | Example |
|---|---|---|
background | Main terminal background | #0c0a10 |
foreground | Primary text color | #faf4ef |
accent | Headings, links, highlights | #d4a8ff |
success | Success messages, checkmarks | #7ec9a8 |
warning | Warning messages, caution | #e8b86d |
error | Error messages, failures | #f08a8a |
info | Info messages, links | #8eb6e8 |
border | Borders, dividers | #1a1820 |
selection | Text selection highlight | #2e3a5a |
muted | Muted/secondary text | #576574 |
Example Custom Themes
Ocean Breeze
{
"name": "ocean-breeze",
"type": "dark",
"colors": {
"background": "#0a1628",
"foreground": "#e8f4f8",
"accent": "#00b4d8",
"success": "#48cae4",
"warning": "#f9c74f",
"error": "#f94144",
"info": "#0096c7",
"border": "#1a3a5c",
"selection": "#1a3a5c",
"muted": "#577590"
}
}
Sunset Glow
{
"name": "sunset-glow",
"type": "dark",
"colors": {
"background": "#1a0f0a",
"foreground": "#f5e6d3",
"accent": "#ff6b35",
"success": "#06d6a0",
"warning": "#ffd166",
"error": "#ef476f",
"info": "#118ab2",
"border": "#3a2a1a",
"selection": "#3a2a1a",
"muted": "#8d6e63"
}
}
Nord Frost
{
"name": "nord-frost",
"type": "dark",
"colors": {
"background": "#2e3440",
"foreground": "#eceff4",
"accent": "#88c0d0",
"success": "#a3be8c",
"warning": "#ebcb8b",
"error": "#bf616a",
"info": "#5e81ac",
"border": "#3b4252",
"selection": "#434c5e",
"muted": "#7b88a1"
}
}
Overriding Built-in Themes
To customize a built-in theme, create a file with the same name in your themes directory:
# Override the bloodmoon theme with custom colors
~/.config/arcana/themes/bloodmoon.json
Your override takes precedence over the built-in version.
Requirements
- Truecolor support — Arcana uses 24-bit truecolor. Supported by most modern terminals (iTerm2, Kitty, Alacritty, Windows Terminal, Gnome Terminal)
- Kitty image protocol (optional) — For background images in supported terminals
Theme File Locations
| Path | Purpose |
|---|---|
~/.config/arcana/themes/*.json | Custom user themes |
~/.config/arcana/themes/bloodmoon.json | Custom override of built-in theme |
~/.config/arcana/config.json | Theme setting in config |
Troubleshooting
- Colors look wrong? — Ensure your terminal supports truecolor. Run
arcana doctorto check. - Theme not showing? — Verify the JSON file is valid and in the correct directory.
- Want to revert? — Run
arcana theme resetto restore the default theme.