Как программно изменить цвета вкладок и цвета текста в Windows Terminal (wt.exe) в WSL
Windows Terminal — современный эмулятор командной строки для Windows, который позволяет выполнять команды в различных средах, включая WSL (Windows Subsystem for Linux). Одной из самых полезных возможностей Windows Terminal является гибкая настройка интерфейса, в частности — изменение цветов вкладок, а также цветов текста и фона. В этой статье мы расскажем, как программно менять цвета вкладок и цвета по умолчанию для текста и фона в Windows Terminal при работе в WSL.
Зачем менять цвета вкладок и интерфейса Windows Terminal?
Настройка цветов помогает улучшить визуальное восприятие, повысить удобство работы и быстро ориентироваться между разными сессиями терминала. Например, можно задать разные цвета вкладок для отдельных профилей или сделать фон и цвет текста более комфортными для глаз. Программное изменение таких настроек особенно полезно для автоматизации и быстрого применения единого стиля на нескольких компьютерах.
Где настраиваются цвета в Windows Terminal?
Все настройки Windows Terminal, включая цвета вкладок, шрифты, фоны и прочее, хранятся в JSON-файле конфигурации. Обычно это файл settings.json
, расположенный по пути:
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
В последней версии Windows Terminal можно получить доступ к конфигу через графический интерфейс, но программно для WSL и скриптов приходится редактировать именно этот JSON-файл.
Программное изменение цветов через WSL
Работая в WSL, чтобы изменить цвета по умолчанию и цвет вкладок, необходимо выполнить корректную модификацию JSON-конфига Windows Terminal. Рассмотрим основной принцип:
- Смонтировать в WSL диск Windows, чтобы получить доступ к файлу
settings.json
. - Сделать резервную копию файла на случай ошибок.
- Использовать инструменты командной строки, например
jq
илиsed
, чтобы изменить нужные значения. - Перезапустить Windows Terminal, чтобы применить настройки.
Пример: изменение цвета вкладки через WSL
Цвета вкладок настраиваются в массиве schemes
и/или в разделе profiles > list
, в параметре tabColor
для каждого профиля.
Пример структуры JSON для профиля с цветом вкладки:
json
{
"profiles": {
"list": [
{
"guid": "{profile-guid}",
"name": "Ubuntu",
"tabColor": "#FF5733",
"colorScheme": "MyCustomScheme"
}
]
},
"schemes": [
{
"name": "MyCustomScheme",
"foreground": "#C0C0C0",
"background": "#1E1E1E",
"black": "#0C0C0C",
"red": "#C50F1F",
"green": "#13A10E",
"yellow": "#C19C00",
"blue": "#0037DA",
"purple": "#881798",
"cyan": "#3A96DD",
"white": "#CCCCCC",
"brightBlack": "#767676",
"brightRed": "#E74856",
"brightGreen": "#16C60C",
"brightYellow": "#F9F1A5",
"brightBlue": "#3B78FF",
"brightPurple": "#B4009E",
"brightCyan": "#61D6D6",
"brightWhite": "#F2F2F2"
}
]
}
Команды для автоматизации изменения
Пример простой команды, которая меняет цвет вкладки для профиля Ubuntu:
bash
wt_settings="$LOCALAPPDATA/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/LocalState/settings.json"
Создаем резервную копию
cp "$wt_settings" "$wt_settings.bak"
Используем jq для изменения tabColor (примите, что установлен jq)
jq ‘( .profiles.list[] | select(.name=="Ubuntu") ).tabColor = "#FF5733"’ "$wt_settings" > tmp.json && mv tmp.json "$wt_settings"
Можно аналогичным образом менять цветовые схемы — редактировать параметры foreground
, background
внутри нужной схемы.
Советы и рекомендации
- Перед изменением файла
settings.json
всегда делайте резервную копию. - Используйте
jq
для безопасного и структурированного изменения JSON-конфига. - После внесения изменений нужно закрыть и заново открыть Windows Terminal, чтобы увидели изменения.
- При работе из WSL путь к
settings.json
может отличаться в зависимости от версии Windows — проверьте актуальное расположение. - Можно создавать собственные цветовые схемы и задавать их в профилях для комплексного изменения внешнего вида.
Заключение
Программное изменение цветов вкладок и цвета шрифта/фона Windows Terminal с помощью скриптов в WSL — удобный способ кастомизации окружения. Это позволит быстро адаптировать терминал под свои нужды, создавать красивые и функциональные конфигурации без ручного редактирования настроек через графический интерфейс. Используйте JSON-конфигурацию, инструменты командной строки и автоматизируйте свои предпочтительные стили.
Если вы часто работаете с несколькими профилями и хотите выделять их разными цветами, настройка через сценарии в WSL сделает процесс быстрым и воспроизводимым на любом устройстве.