Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Theming

IntelliShell's appearance is fully customizable, allowing you to tailor the colors and styles of the Terminal User Interface (TUI) to perfectly match your terminal's color scheme. All theming options are configured within the [theme] section of your config.toml file.

Style Formatting

Styles are defined using a string that combines optional modifiers with an optional color. For example, a style for an important but subdued text might be "bold italic yellow".

Supported Modifiers

You can apply one or more of the following text attributes:

  • bold
  • dim
  • italic
  • underline

Supported Colors

Colors can be specified in several formats:

  • Named Colors: Standard ANSI colors like black, red, green, dark yellow, etc
  • RGB: rgb(15, 15, 15)
  • Hexadecimal: #112233
  • ANSI 8-bit Index: An integer from 0 to 255 as a string (e.g., "8")
  • Default: Use default or an empty string ("") to inherit your terminal's colors

Configuration Options

Here is a breakdown of each available key in the [theme] section.

KeyDescription
primaryThe main style for elements like selected items or important text
secondaryA less prominent style, often used for unselected items
accentUsed to draw attention to specific parts of the text, like aliases
commentThe style for descriptions and explanatory text
errorThe style used to display error messages
highlightThe background color for the highlighted item in a list (use "none" to skip)
highlight_symbolThe character(s) displayed to the left of the highlighted item
highlight_primaryOverrides the primary style for the highlighted item only
highlight_secondaryOverrides the secondary style for the highlighted item only
highlight_accentOverrides the accent style for the highlighted item only
highlight_commentOverrides the comment style for the highlighted item only

Default Configuration

# Configuration for the visual theme of the Terminal User Interface (TUI).
#
# Styles are defined using a string that can consist of one or more optional modifiers
# followed by an optional color. Modifiers and colors should be space-separated.
#
# Supported Modifiers: `bold`, `dim`, `italic`, `underline`
#
# Supported Color Formats:
# - Keep the original terminal color (no ANSI escape codes): "default" or an empty string (`""`)
# - Named colors (standard ANSI): "black", "red", etc.
# - RGB color value: "rgb(15, 15, 15)"
# - Hexadecimal color value: "#112233"
# - ANSI 8-bit indexed color (integer string from 0 to 255): "8", "13", etc.
[theme]
# The primary style used for main elements, like selected items or important text
primary = "default"
# The secondary style used for less prominent elements, like unselected items
secondary = "dim"
# An accent style used to highlight specific elements, like aliases or keywords
accent = "yellow"
# The style used for comments or explanatory text
comment = "italic green"
# The style used for errors
error = "dark red"
# The background color for the highlighted item in a list. Use "none" for no background color
highlight = "dark gray"
# The string symbol displayed next to the highlighted item
highlight_symbol = "» "
# The primary style applied specifically to a highlighted item
highlight_primary = "default"
# The secondary style applied specifically to a highlighted item
highlight_secondary = "dim"
# The accent style applied specifically to a highlighted item
highlight_accent = "yellow"
# The comments style applied specifically to a highlighted item
highlight_comment = "italic green"

Sample Themes

The IntelliShell repository includes several pre-made themes to get you started.

Gruvbox

A theme inspired by the popular Gruvbox color scheme, featuring a warm, retro feel.

Gruvbox Theme Preview

[theme]
primary = "#ebdbb2"
secondary = "#a89984"
accent = "bold #b8bb26"
comment = "italic #928374"
error = "bold #fb4934"
highlight = "#458588"
highlight_symbol = "» "
highlight_primary = "#ebdbb2"
highlight_secondary = "dim #ebdbb2"
highlight_accent = "bold #fabd2f"
highlight_comment = "italic dim #ebdbb2"

Nord

A theme based on the arctic, north-bluish color palette of Nord.

Nord Theme Preview

[theme]
primary = "#eceff4"
secondary = "#81a1c1"
accent = "bold #a3be8c"
comment = "italic #4c566a"
error = "bold #bf616a"
highlight = "#434c5e"
highlight_symbol = "❄ "
highlight_primary = "#eceff4"
highlight_secondary = "dim #d8dee9"
highlight_accent = "bold #ebcb8b"
highlight_comment = "italic #d8dee9"

Solarized

A theme that implements the balanced and functional Solarized color palette.

Solarized Theme Preview

[theme]
primary = "#93a1a1"
secondary = "#657b83"
accent = "bold #d33682"
comment = "italic #586e75"
error = "bold #dc322f"
highlight = "none"
highlight_symbol = "→ "
highlight_primary = "bold #fdf6e3"
highlight_secondary = "#859900"
highlight_accent = "bold #cb4b16"
highlight_comment = "italic #657b83"

Dracula

A theme based on the dark and modern Dracula color scheme.

Dracula Theme Preview

[theme]
primary = "#f8f8f2"
secondary = "#6272a4"
accent = "bold #50fa7b"
comment = "italic #bd93f9"
error = "bold #ff5555"
highlight = "#44475a"
highlight_symbol = "◆ "
highlight_primary = "#f8f8f2"
highlight_secondary = "dim #f8f8f2"
highlight_accent = "bold #ff79c6"
highlight_comment = "italic #bd93f9"

Now that your interface looks just right, you can fine-tune how it behaves. Let's move on to Search Tuning.