| `shape_garbage` | fg(Color::White).on(Color::Red).bold() | \* |
| `shape_globpattern` | fg(Color::Cyan).bold() | \* |
| `shape_int` | fg(Color::Purple).bold() | \* |
| `shape_internalcall` | fg(Color::Cyan).bold() | \* |
| `shape_list` | fg(Color::Cyan).bold() | \* |
| `shape_literal` | fg(Color::Blue) | \* |
| `shape_nothing` | fg(Color::LightCyan) | \* |
| `shape_operator` | fg(Color::Yellow) | \* |
| `shape_range` | fg(Color::Yellow).bold() | \* |
| `shape_record` | fg(Color::Cyan).bold() | \* |
| `shape_signature` | fg(Color::Green).bold() | \* |
| `shape_string` | fg(Color::Green) | \* |
| `shape_string_interpolation` | fg(Color::Cyan).bold() | \* |
| `shape_table` | fg(Color::Blue).bold() | \* |
| `shape_variable` | fg(Color::Purple) | \* |
Here's a small example of how to apply color to these items. Anything not specified will receive the default color.
```nu
$env.config = {
color_config: {
shape_garbage: { fg: "#FFFFFF" bg: "#FF0000" attr: b}
shape_bool: green
shape_int: { fg: "#0000ff" attr: b}
}
}
```
## Prompt Configuration and Coloring
The Nushell prompt is configurable through these environment variables and config items:
- `PROMPT_COMMAND`: Code to execute for setting up the prompt (block)
- `PROMPT_COMMAND_RIGHT`: Code to execute for setting up the _RIGHT_ prompt (block) (see oh-my.nu in nu_scripts)
- `PROMPT_INDICATOR` = "〉": The indicator printed after the prompt (by default ">"-like Unicode symbol)
- `PROMPT_INDICATOR_VI_INSERT` = ": "
- `PROMPT_INDICATOR_VI_NORMAL` = "v "
- `PROMPT_MULTILINE_INDICATOR` = "::: "
- `render_right_prompt_on_last_line`: Bool value to enable or disable the right prompt to be rendered on the last line of the prompt
Example: For a simple prompt one could do this. Note that `PROMPT_COMMAND` requires a `block` whereas the others require a `string`.
```nu
$env.PROMPT_COMMAND = { $"(date now | format date '%m/%d/%Y %I:%M:%S%.3f'): (pwd | path basename)" }
```
If you don't like the default `PROMPT_INDICATOR` you could change it like this.
```nu
$env.PROMPT_INDICATOR = "> "
```
If you're using `starship`, you'll most likely want to show the right prompt on the last line of the prompt, just like zsh or fish. You could modify the `config.nu` file, just set `render_right_prompt_on_last_line` to true:
```nu
config {
render_right_prompt_on_last_line = true
...
}
```
Coloring of the prompt is controlled by the `block` in `PROMPT_COMMAND` where you can write your own custom prompt. We've written a slightly fancy one that has git statuses located in the [nu_scripts repo](https://github.com/nushell/nu_scripts/blob/main/modules/prompt/oh-my.nu).
### Transient Prompt
If you want a different prompt displayed for previously entered commands, you can use Nushell's transient prompt feature. This can be useful if your prompt has lots of information that is unnecessary to show for previous lines (e.g. time and Git status), since you can make it so that previous lines show with a shorter prompt.
Each of the `PROMPT_*` variables has a corresponding `TRANSIENT_PROMPT_*` variable to be used for changing that segment when displaying past prompts: `TRANSIENT_PROMPT_COMMAND`, `TRANSIENT_PROMPT_COMMAND_RIGHT`, `TRANSIENT_PROMPT_INDICATOR`, `TRANSIENT_PROMPT_INDICATOR_VI_INSERT`, `TRANSIENT_PROMPT_INDICATOR_VI_NORMAL`, `TRANSIENT_PROMPT_MULTILINE_INDICATOR`. By default, the `PROMPT_*` variables are used for displaying past prompts.