# Розширені налаштування

Хоча Starship і універсальна оболонка, іноді необхідно зробити більше ніж просто змінити `star.toml`, щоб можна було робити певні речі. Ця сторінка містить деякі з найбільш докладних методів налаштувань, які використовуються у starship.

> [!WARNING] Конфігурації в цьому розділі можуть бути змінені в майбутніх випусках Starship.

## TransientPrompt у PowerShell

Можна замінити попередній командний рядок на власний. Це корисно у випадках, коли вся інформація у ньому не завжди потрібна. Щоб увімкнути це, запустіть `Enable-TransientPrompt` в сеансі оболонки. Щоб зробити цю поведінку постійною, додайте цю команду у ваш `$PROFILE`. Перехідність можна вимкнути на льоту за допомогою `Disable-TransientPrompt`.

Типово, ліва частина вводу буде замінена на `>`. Щоб налаштувати це, створіть нову функцію з назвою `Invoke-Starship-TransientFunction`. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно

```powershell
function Invoke-Starship-TransientFunction {
  &starship module character
}

Invoke-Expression (&starship init powershell)

Enable-TransientPrompt
```

## TransientPrompt та TransientRightPrompt в Cmd

Clink дозволяє замінювати попередньо надрукований командний рядок іншим рядком. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Щоб увімкнути це, виконайте `clink set prompt.transient <value>`, де \<value\> може бути одним з:

- `always`: завжди замінює попередній командний рядок
- `same_dir`: замінює попередній командний рядок тільки якщо робоча тека не змінювалась
- `off`: не змінює командний рядок (тобто функцію вимкнено)

Це треба зробити лише один раз. Зробіть наступні зміни у `starship.lua`, щоб налаштувати, що показується ліворуч і праворуч:

- Типово, ліва частина вводу буде замінена на `>`. Щоб налаштувати це, створіть нову функцію з назвою `starship_transient_prompt_func`. Ця функція отримує поточний текст командного рядка, з яким ви зможете працювати. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно

```lua
function starship_transient_prompt_func(prompt)
  return io.popen("starship module character"
    .." --keymap="..rl.getvariable('keymap')
  ):read("*a")
end
load(io.popen('starship init cmd'):read("*a"))()
```

- Типово, права частина вводу є порожньою. Щоб кастомізувати її, створіть нову функцію з назвою `starship_transient_rprompt_func`. Ця функція отримує поточний текст командного рядка, з яким ви зможете працювати. Наприклад, щоб показати час, коли була запущена остання команда, ви можете зробити

```lua
function starship_transient_rprompt_func(prompt)
  return io.popen("starship module time"):read("*a")
end
load(io.popen('starship init cmd'):read("*a"))()
```

## TransientPrompt та TransientRightPrompt у Fish

Можна замінити попередньо надрукований командний рядок на власний. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Щоб увімкнути це, запустіть `enable_transience` в сеансі оболонки. Щоб зробити цю змінну постійною, додайте цей вираз до ваших налаштувань `~/.config/fish/config.fish`. Перехідність може бути вимкнена за допомогою `disable_transience`.

Зверніть увагу, що у випадку Fish, перехідний командний рядок буде надруковано лише тоді, коли командний рядок не порожній та синтаксично правильний.

- Типово, ліва частина вводу буде замінена на зелений символ `❯`. Щоб кастомізувати її, створіть нову функцію з назвою `starship_transient_prompt_func`. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно

```fish
function starship_transient_prompt_func
  starship module character
end
starship init fish | source
enable_transience
```

- Типово, права частина вводу є порожньою. Щоб кастомізувати її, створіть нову функцію з назвою `starship_transient_rprompt_func`. Наприклад, щоб показати час, коли була запущена остання команда, ви можете зробити

```fish
function starship_transient_rprompt_func
  starship module time
end
starship init fish | source
enable_transience
```

## TransientPrompt та TransientRightPrompt в Bash

[Ble.sh](https://github.com/akinomyoga/ble.sh) v0.4 або вище дозволяє замінювати попередньо надрукований командний рядок іншим рядком. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Для увімкнення цього додайте до `~/.bashrc` рядок `bleopt prompt_ps1_transient=<value>`:

\<value\> тут  – це розділений двокрапкою список `always`, `same-dir` та `trim`. Якщо `prompt_ps1_final` порожній і параметр `prompt_ps1_transient` має не пусте значення \<value\>, командний рядок, вказаний у `PS1` буде стертий при виході з поточного командного рядка. Якщо \<value\> містить поле `trim`, тільки останній рядок багаторядкового `PS1` буде збережений, а інші вилучені. В іншому випадку командний рядок буде встановлено перестворено, якщо вказано `PS1=`. Коли поле `same-dir` міститься у \<value\> та поточна тека є відмінною від останньої теки у попередньому виводі командного рядка, параметр `prompt_ps1_transient` не враховується.

Зробіть наступні зміни у `~/.blerc` (або у `~/.config/blesh/init.sh`), щоб налаштувати, що показується ліворуч і праворуч:

- Для налаштування того, чим замінюється ліва частина вводу, налаштуйте параметр `prompt_ps1_final`. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно

```bash
bleopt prompt_ps1_final='$(starship module character)'
```

- Для налаштування того, чим замінюється права частина вводу, налаштуйте параметр `prompt_rps1_final`. Наприклад, щоб показати час, коли була запущена остання команда, ви можете зробити

```bash
bleopt prompt_rps1_final='$(starship module time)'
```

## Власні команди pre-prompt та pre-execution в Cmd

Clink забезпечує надзвичайно гнучкий API для виконання команд pre-prompt і pre-exec в Cmd. Його досить просто використовувати в Starship. Зробіть наступні зміни у вашому `starship.lua` відповідно до ваших вимог:

- Для запуску власних функцій прямо перед виводом командного рядка, визначте нову функцію з назвою `starship_preprompt_user_func`. Ця функція отримує поточний текст командного рядка, з яким ви зможете працювати. Наприклад, щоб показати ракету перед командним рядком, ви можете зробити наступне

```lua
function starship_preprompt_user_func(prompt)
  print("🚀")
end

load(io.popen('starship init cmd'):read("*a"))()
```

- Для запуску власних функцій прямо перед виконанням команди, визначте нову функцію з назвою `starship_precmd_user_func`. Ця функція отримує поточний текст команди, з яким ви зможете працювати. Наприклад, для виводу команди, яка буде виконана, вам треба зробити

```lua
function starship_precmd_user_func(line)
  print("Executing: "..line)
end

load(io.popen('starship init cmd'):read("*a"))()
```

## Власні команди pre-prompt та pre-execution в Bash

Bash не має офіційної системи preexec/precmd, як більшість інших оболонок. Через це важко забезпечити повністю настроювані гачки для цього в `bash`. Однак, Starship дає можливість вставити свої власні функції в процедуру виводу командного рядка:

- Для запуску власних функцій прямо перед виводом командного рядка, визначте нову функцію з назвою `starship_precmd_user_func`. Наприклад, щоб показати ракету перед командним рядком, ви можете зробити наступне

```bash
function blastoff(){
    echo "🚀"
}
starship_precmd_user_func="blastoff"
```

- Щоб запустити власну функцію прямо перед запуском команди, можна використати механізм [`DEBUG` trap](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/). Однак, ви **повинні** перехопити сигнал DEBUG _перед_ ініціалізацією Starship! Starship може зберегти значення перехоплення DEBUG, але якщо перехоплення буде перезаписане після початку запуску, деякі функції не працюватимуть.

```bash
function blastoff(){
    echo "🚀"
}
trap blastoff DEBUG     # Trap DEBUG *before* running starship
set -o functrace
eval $(starship init bash)
set +o functrace
```

## Власні команди pre-prompt та pre-execution в PowerShell

PowerShell не має офіційної системи preexec/precmd, як більшість інших оболонок. Через це важко забезпечити повністю настроювані гачки для цього в `powershell`. Однак, Starship дає можливість вставити свої власні функції в процедуру виводу командного рядка:

Створіть функцію з назвою `Invoke-Starship-PreCommand`

```powershell
function Invoke-Starship-PreCommand {
    $host.ui.Write("🚀")
}
```

## Зміна заголовка вікна

В деяких оболонках командний рядок автоматично змінює заголовок вікна (наприклад, на назву поточної теки). У Fish це стандартна поведінка. Starship цього не робить, але це досить просто зробити у `bash`, `zsh`, `cmd` або `powershell`.

Спочатку визначте функцію зміни заголовка вікна (в bash і zsh – однаково):

```bash
function set_win_title(){
    echo -ne "\033]0; YOUR_WINDOW_TITLE_HERE \007"
}
```

Ви можете використовувати змінні для налаштування цього заголовка (`$USER`, `$HOSTNAME`, та `$PWD` – є досить популярними).

У `bash` встановіть цю функцію як функцію precmd у starship:

```bash
starship_precmd_user_func="set_win_title"
```

У `zsh` додайте наступне до масиву `precmd_functions`:

```bash
precmd_functions+=(set_win_title)
```

Якщо вам подобається результат, додайте ці рядки до файлу налаштування оболонки (`~/.bashrc` чи `~/.zshrc`), щоб зробити його постійним.

Наприклад, якщо ви хочете показати вашу поточну теку у заголовку вкладці термінала, додайте наступний сніпет до вашого `~/.bashrc` або `~/.zshrc`:

```bash
function set_win_title(){
    echo -ne "\033]0; $(basename "$PWD") \007"
}
starship_precmd_user_func="set_win_title"
```

Для Cmd, ви можете змінити заголовок вікна за допомогою функції `starship_preprompt_user_func`.

```lua
function starship_preprompt_user_func(prompt)
  console.settitle(os.getenv('USERNAME').."@"..os.getenv('COMPUTERNAME')..": "..os.getcwd())
end

load(io.popen('starship init cmd'):read("*a"))()
```

Ви також можете встановити подібний вивід у PowerShell, створивши функцію з назвою `Invoke-Starship-PreCommand`.

```powershell
# edit $PROFILE
function Invoke-Starship-PreCommand {
  $host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a"
}

Invoke-Expression (&starship init powershell)
```

## Командний рядок праворуч {#enable-right-prompt}

Деякі оболонки підтримують вивід командного рядка праворуч. Starship може встановити вміст правої частини командного рядка за допомогою параметра `right_format`. Будь-який модуль, який можна використовувати у `format`, також підтримується у `right_format`. Змінна `$all` міститиме лише модулі, які явно не використовується, а ні в `format`, а ні в `right_format`.

Примітка: командний рядок праворуч – це один рядок, що знаходиться праворуч у рядку вводу. Щоб вирівняти модулі праворуч над рядком введення в багаторядковому запиті, перегляньте [модуль `fill`](../config/#fill).

`right_format` наразі підтримується для таких оболонок: elvish, fish, zsh, xonsh, cmd, nushell, bash.

Примітка: фреймворк [Ble.sh](https://github.com/akinomyoga/ble.sh) v0.4 або вище має бути встановлений для того, щоб використовувати розташування командного рядка в bash праворуч.

### Приклад

```toml
# ~/.config/starship.toml

# Мінімум ліворуч
format = """$character"""

# решту командного рядка перенесемо праворуч
right_format = """$all"""
```

Отримаємо командний рядок наступного виду:

```
▶                                   starship on  rprompt [!] is 📦 v0.57.0 via 🦀 v1.54.0 took 17s
```

## Подовжений ввід

Деякі оболонки підтримують подовження вводу так само як і  звичайний ввід в командний рядок. Такий ввід буде показаний замість звичайного, колі користувач ввів символ продовження вводу (наприклад одну ліву дужку чи лапку).

У Starship можна встановити показ продовженого вводу за допомогою параметра `continuation_prompt`. Стандартний командний рядок — `'[∙](bright-black) '`.

Примітка: `continuation_prompt` слід встановити на літеральний рядок без жодних змінних.

Примітка: Подовжений ввід доступний лише для наступних оболонок:

- `bash`
- `zsh`
- `PowerShell`

### Приклад

```toml
# ~/.config/starship.toml

# Подовжений ввід позначається двома стрілками
continuation_prompt = '▶▶ '
```

## Рядок стану для Claude Code

Starship підтримує показ власного рядка стану під час роботи в Claude Code — інструменті командного рядка від Anthropic, призначеному для інтерактивного програмування за допомогою Claude. Ця рядок стану надає інформацію в режимі реального часу про вашу сесію Claude, зокрема про використовувану модель, використання вікна контексту та вартість сесії.

Докладнішу інформацію про функцію рядка стану Claude Code див. у [документації щодо рядка стану Claude Code](https://code.claude.com/docs/en/statusline).

### Встановлення

Щоб використовувати Starship як рядок стану Claude Code:

1. Запустіть `/statusline` в Claude Code і попросіть його налаштувати Starship, або вручну додати наступне на Ваш `.claude/settings.json`:

```json
{
  "statusLine": {
    "type": "command",
    "command": "starship statusline claude-code"
  }
}
```

2. Налаштуйте вигляд рядка стану у файлі `~/.config/starship.toml` (див. розділ [Налаштування](#configuration) нижче)

### Огляд

При запуску з параметром `starship statusline claude-code` Starship отримує дані сеансу Claude Code через стандартний ввід (stdin) і показує рядок стану, використовуючи спеціальний профіль з назвою `claude-code`.

Профіль містить три спеціалізовані модулі:

- `claude_model`: Показує поточну модель, яка використовується в Claude
- `claude_context`: Показує використання контекстного вікна за допомогою візуального індикатора
- `claude_cost`: Показує вартість сеансу та статистичні дані

Типовий формат профілю:

```toml
[profiles]
claude-code = "$claude_model$git_branch$claude_context$claude_cost"
```

### Налаштування

Ви можете налаштувати рядок стану коду Claude Code змінивши профіль `claude-code` і окремі конфігурації модулів в `~/.config/starship.toml`:

```toml
# ~/.config/starship.toml

# Customize the claude-code profile
[profiles]
claude-code = "$claude_model$claude_context$claude_cost"

# Configure individual modules
[claude_model]
format = "[$symbol$model]($style) "
symbol = "🤖 "
style = "bold blue"

[claude_context]
format = "[$gauge $percentage]($style) "
gauge_width = 10

[claude_cost]
format = "[$symbol$cost]($style) "
symbol = "💰 "
```

### Claude Model

Модуль `claude_model` показує поточну модель Claude, яка використовується в сесії.

#### Параметри

| Параметр        | Стандартно                   | Опис                                                                                                                       |
| --------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `format`        | `'[$symbol$model]($style) '` | Формат модуля.                                                                                                             |
| `symbol`        | `'🤖 '`                       | Симовл, який показується перед назвою моделі.                                                                              |
| `style`         | `'bold blue'`                | Стиль модуля.                                                                                                              |
| `model_aliases` | `{}`                         | Звʼязує ідентифікатори моделей або їхні назви з коротшими псевдонімами. Спочатку перевіряється ідентифікатор, потім назва. |
| `disabled`      | `false`                      | Вимикає модуль `claude_model`.                                                                                             |

#### Змінні

| Змінна    | Приклад             | Опис                                     |
| --------- | ------------------- | ---------------------------------------- |
| model     | `Claude 3.5 Sonnet` | Імʼя поточної моделі                     |
| model_id  | `claude-3-5-sonnet` | ID моделі                                |
| symbol    |                     | Віддзеркалює значення параметра `symbol` |
| style\* |                     | Віддзеркалює значення параметра `style`  |

\*: Ця змінна може бути використана лише як частина стилю рядка

#### Приклади

```toml
# ~/.config/starship.toml

# Базові налаштування
[claude_model]
format = "on [$symbol$model]($style) "
symbol = "🧠 "
style = "bold cyan"

# Використання псевдонімів для моделей із власними назвами постачальників
# Аліаси можна створити за ідентифікатором моделі або за її назвою
[claude_model.model_aliases]
# Аліас за ID моделі від постачальника (напр. AWS Bedrock)
"global.anthropic.claude-sonnet-4-5-20250929-v1:0" = "Sonnet 4.5"
# Аліас за назвою
"Claude Sonnet 4.5 (Vendor Proxy)" = "Sonnet"
```

### Claude Context

Модуль `claude_context` показує використання контекстного вікна у вигляді відсотка і візуального індикатора. Стиль автоматично змінюється на основі налаштованих порогів.

#### Параметри

| Параметр               | Стандартно                        | Опис                                                                        |
| ---------------------- | --------------------------------- | --------------------------------------------------------------------------- |
| `format`               | `'[$gauge $percentage]($style) '` | Формат модуля.                                                              |
| `symbol`               | `''`                              | Символ, який показується перед індикатором.                                 |
| `gauge_width`          | `5`                               | Ширина індикатора в символах.                                               |
| `gauge_full_symbol`    | `'█'`                             | Символ, який використовується для заповнених сегментів індикатора.          |
| `gauge_partial_symbol` | `'▒'`                             | Символ, який використовується для частково заповнених сегментів індикатора. |
| `gauge_empty_symbol`   | `'░'`                             | Символ, який використовується для не заповнених сегментів індикатора.       |
| `display`              | [дивіться нижче](#display)        | Налаштування порогів та стилів.                                             |
| `disabled`             | `false`                           | Вимикає модуль `claude_context`.                                            |

##### Display

Параметр `display` — це масив об’єктів, які визначають порогові значення та стилі для різних рівнів використання. Модуль використовує стиль із найвищим порогом відповідності або приховує модуль, якщо `hidden` має значення `true`.

| Параметр    | Стандартно   | Опис                                                                                |
| ----------- | ------------ | ----------------------------------------------------------------------------------- |
| `threshold` | `0.0`        | Мінімальний відсоток використання контекстних вікон, що відповідає цій конфігурації |
| `style`     | `bold green` | Значення `style`, якщо ця конфігурація візуалізації має збіг                        |
| `hidden`    | `false`      | Приховати цей модуль, якщо він збігається з конфігурацією.                          |

```toml
[[claude_context.display]]
threshold = 0
hidden = true

[[claude_context.display]]
threshold = 30
style = "bold green"

[[claude_context.display]]
threshold = 60
style = "bold yellow"

[[claude_context.display]]
threshold = 80
style = "bold red"
```

#### Змінні

| Змінна                       | Приклад | Опис                                                                      |
| ---------------------------- | ------- | ------------------------------------------------------------------------- |
| gauge                        | `██▒░░` | Візуальне представлення використання контексту                            |
| percentage                   | `65%`   | Використання контексту у відсотках                                        |
| input_tokens                 | `45.2k` | Загальна кількість input-токенів, використаних у розмові                  |
| output_tokens                | `12.3k` | Загальна кількість output-токенів, використаних у розмові                 |
| curr_input_tokens          | `5.1k`  | Кількість input-токенів в останньому API-виклику                          |
| curr_output_tokens         | `1.2k`  | Кількість output-токенів в останньому API-виклику                         |
| curr_cache_creation_tokens | `1.5k`  | Кеш з токенів створення з останнього виклику API                          |
| curr_cache_read_tokens     | `23.4k` | Кеш з токенів читання з останнього виклику API                            |
| total_tokens                 | `200k`  | Загальний розмір контекстного вікна                                       |
| symbol                       |         | Віддзеркалює значення параметра `symbol`                                  |
| style\*                    |         | Повторює стиль, що збігається з відповідним пороговим значення для показу |

\*: Ця змінна може бути використана лише як частина стилю рядка

#### Приклади

**Тільки індикатор**

```toml
# ~/.config/starship.toml

[claude_context]
format = "[$gauge]($style) "
gauge_width = 10
```

**Докладні відомості про використання токенів**

```toml
# ~/.config/starship.toml

[claude_context]
format = "[$percentage ($input_tokens in / $output_tokens out)]($style) "
```

**Власні символи для індикатора**

```toml
# ~/.config/starship.toml

[claude_context]
gauge_full_symbol = "▰"
gauge_partial_symbol = ""
gauge_empty_symbol = "▱"
gauge_width = 10
format = "[$gauge]($style) "
```

**Власні порогові значення**

```toml
# ~/.config/starship.toml

[[claude_context.display]]
threshold = 0
style = "bold green"

[[claude_context.display]]
threshold = 50
style = "bold yellow"

[[claude_context.display]]
threshold = 75
style = "bold orange"

[[claude_context.display]]
threshold = 90
style = "bold red"
```

### Claude Cost

Модуль `claude_cost` показує загальну вартість поточної сесії Claude Code в доларах США. Як і `claude_context`, він підтримує стилізацію на основі порогових значень.

#### Параметри

| Параметр   | Стандартно                         | Опис                                         |
| ---------- | ---------------------------------- | -------------------------------------------- |
| `format`   | `'[$symbol(\\$$cost)]($style) '` | Формат модуля.                               |
| `symbol`   | `'💰 '`                             | Символ, який показується перед сумою витрат. |
| `display`  | [дивіться нижче](#display-1)       | Налаштування порогів та стилів.              |
| `disabled` | `false`                            | Вимикає модуль `claude_cost`.                |

##### Display

Параметр `display` — це масив об’єктів, які визначають порогові значення та стилі для порогових значень витрат. Модуль використовує стиль із найвищим порогом відповідності або приховує модуль, якщо `hidden` має значення `true`.

| Параметр    | Стандартно   | Опис                                                         |
| ----------- | ------------ | ------------------------------------------------------------ |
| `threshold` | `0.0`        | Мінімальна вартість у доларах США для такої конфігурації     |
| `style`     | `bold green` | Значення `style`, якщо ця конфігурація візуалізації має збіг |
| `hidden`    | `false`      | Приховати цей модуль, якщо він збігається з конфігурацією.   |

**Стандартні налаштування:**

```toml
[[claude_cost.display]]
threshold = 0.0
hidden = true

[[claude_cost.display]]
threshold = 1.0
style = "bold yellow"

[[claude_cost.display]]
threshold = 5.0
style = "bold red"
```

#### Змінні

| Змінна        | Приклад  | Опис                                                                      |
| ------------- | -------- | ------------------------------------------------------------------------- |
| cost          | `1.23`   | Загальна вартість сесії у доларах (з центами)                             |
| duration      | `1m 30s` | Загальна тривалість сеансу                                                |
| api_duration  | `45s`    | Загальна тривалість API-виклику                                           |
| lines_added   | `1.2k`   | Загальна кількість доданих рядків коду                                    |
| lines_removed | `500`    | Загальна кількість вилучених рядків коду                                  |
| symbol        |          | Віддзеркалює значення параметра `symbol`                                  |
| style\*     |          | Повторює стиль, що збігається з відповідним пороговим значення для показу |

\*: Ця змінна може бути використана лише як частина стилю рядка

#### Приклади

```toml
# ~/.config/starship.toml

# Витрати зі статистикою змін у коді
[claude_cost]
format = "[$symbol$cost (+$lines_added -$lines_removed)]($style) "

# Приховати модуль, доки вартість не перевищить $0,10
[[claude_cost.display]]
threshold = 0.0
hidden = true

[[claude_cost.display]]
threshold = 0.10
style = "bold yellow"

[[claude_cost.display]]
threshold = 2.0
style = "bold red"

# Показувати інформацію про тривалість роботи
[claude_cost]
format = "[$symbol$cost ($duration)]($style) "
```

## Рядки стилів {#style-strings}

Рядки стилю — список слів, розділених пробілами. Слова не чутливі до регістру (наприклад `bold` і `BoLd` вважаються однаковими). Кожне слово може бути одним з наступних:

- `bold`
- `italic`
- `underline`
- `dimmed`
- `inverted`
- `blink`
- `hidden`
- `strikethrough`
- `bg:<color>`
- `fg:<color>`
- `<color>`
- `none`

де `<color>` є специфікацією кольору (обговорюється нижче). `fg:<color>` та `<color>` на цей час роблять те саме, хоча це може змінитися в майбутньому. `<color>` може також мати значення `prev_fg` або `prev_bg`, які обчислюють колір тексту або фону попереднього елемента відповідно, якщо він доступний, або `none` у протилежному випадку. `inverted` замінює кольори тла і тексту. Порядок слів у рядку не має значення.

Токен `none` перевизначає всі інші токени у рядку, якщо він не є частиною `bg:`, так `fg:red none fg:blue` все одно створить рядок без стилізування. `bg:none` встановлює типовий колір фону, таким чином, `fg:red bg:none` еквівалентно `red` або `fg:red`, а `bg:green fg:red fg:none` також еквівалентно `fg:red` або `red`. Використання `none` у поєднанні з іншими токенами в майбутньому може стати помилкою.

Визначення кольору може бути одним з наступних:

- Один за стандартних кольорів термінала: `black`, `red`, `green`, `blue`, `yellow`, `purple`, `cyan`, `white`. Ви можете опціонально додавати префікс `bright-`, щоб отримати яскраву версію (наприклад, `bright-white`).
- `#` за яким йде шестизначний шістнадцятковий код кольору. Цей код вказує на [шістнадцятковий код RGB](https://www.w3schools.com/colors/colors_hexadecimal.asp).
- Число від 0-255. Число визначає [8-бітний код кольору ANSI](https://i.stack.imgur.com/KTSQa.png).

Якщо для тексту та фону задано кілька кольорів, останній в рядку буде мати вищий пріоритет.

Не кожен рядок стилю буде правильно показуватись у кожному терміналі. Зокрема, існують такі відомі примхи:

- Багато терміналів стандартно вмикають підтримку `blink`.
- `hidden` [не підтримується в iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564).
- `strikethrough` не підтримується стандартно в macOS Terminal.app.
