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
to255
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.
Key | Description |
---|---|
primary | The main style for elements like selected items or important text |
secondary | A less prominent style, often used for unselected items |
accent | Used to draw attention to specific parts of the text, like aliases |
comment | The style for descriptions and explanatory text |
error | The style used to display error messages |
highlight | The background color for the highlighted item in a list (use "none" to skip) |
highlight_symbol | The character(s) displayed to the left of the highlighted item |
highlight_primary | Overrides the primary style for the highlighted item only |
highlight_secondary | Overrides the secondary style for the highlighted item only |
highlight_accent | Overrides the accent style for the highlighted item only |
highlight_comment | Overrides 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.
[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.
[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.
[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.
[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.