SSkilltecabyclaudinhocode
Enviar skill
← Voltar para o catálogo

colorize-project

Produtividade

Tints the VS Code window chrome (title bar, activity bar, status bar, tabs, user chat bubbles) in a chosen color so the user can tell parallel Claude Code windows apart in Alt+Tab and the taskbar. Russian triggers — «раскрась проект», «сделай это окно X-цвета», «покажи цвета», «покажи палитру», «поменяй цвет окна», «перекрасить в другой цвет», «как отличать параллельные окна», «/colorize-project».

1estrelas
Ver no GitHub ↗Autor: collageraiLicença: MIT

colorize-project

Применяет цветовую «раму» к текущему VS Code-workspace через .vscode/settings.json (и в .code-workspace-файлы, если они есть).

Зачем

Дефолтный VS Code Dark Modern выглядит одинаково во всех окнах. Когда у пользователя 4+ окон Claude Code открыто параллельно, иконки в таскбаре сливаются, превью при наведении похожи, переключение между окнами становится мучительным.

workbench.colorCustomizations позволяет подкрасить «chrome» окна (рамку: заголовок, левую полосу с иконками, status bar внизу, вкладки) в любой оттенок — не трогая сам редактор и чат-контент. Окно сразу опознаётся в Alt+Tab и в превью таскбара.

Как использовать (workflow)

  1. Определи цвет.

    • Если пользователь НАЗВАЛ цвет явно (например, /colorize-project royal-blue, «сделай синий», «brick», «#2a4f3c») — используй его и переходи к шагу 2.
    • Если пользователь сказал просто «раскрась проект» / «/colorize-project» / «поменяй цвет окна» / любой триггер БЕЗ имени цвета — ОБЯЗАТЕЛЬНО задай вопрос через AskUserQuestion с палитрой из 20 пресетов (см. таблицу ниже). Не угадывай цвет сам, не предлагай «brick по умолчанию» — пользователь чётко сказал, что хочет выбирать. Покажи как минимум 4 контрастных варианта (например, по одному из тёплых/холодных/нейтральных оттенков), плюс опцию «другой — назову сам». После выбора — переходи к шагу 2.
  2. Определи путь. По умолчанию это текущая рабочая директория (pwd / cwd, видна в системном промпте как Primary working directory). Если пользователь явно указал другой путь — используй его.

  3. ВАЖНО — определи режим: папка или multi-root workspace? Это критично, потому что VS Code читает цвета из РАЗНЫХ мест в этих двух режимах. Подсказки:

    • В заголовке окна VS Code присутствует слово «(Workspace)» или имя кончается на .code-workspace — пользователь открыл проект через multi-root workspace-файл. В этом режиме VS Code ИГНОРИРУЕТ .vscode/settings.json для chrome окна и читает цвета только из секции "settings" внутри .code-workspace файла.
    • В заголовке окна обычное имя папки — пользователь открыл обычную папку. VS Code читает .vscode/settings.json в этой папке.
    • Если не уверен — спроси пользователя или просто передай -WorkspacePath: скрипт сам найдёт все .code-workspace-файлы в этой папке и применит цвета к ним тоже (помимо .vscode/settings.json).
  4. Запусти скрипт — определи OS и вызови соответствующий файл.

    Windows (PowerShell):

    # Вариант A — папка (auto-detect .code-workspace внутри)
    powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.claude\skills\colorize-project\scripts\apply-colors.ps1" -Color <name-or-hex> -WorkspacePath "<путь-к-папке>"
    
    # Вариант B — конкретный .code-workspace файл
    powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\.claude\skills\colorize-project\scripts\apply-colors.ps1" -Color <name-or-hex> -WorkspaceFile "<путь-к-.code-workspace>"
    

    macOS / Linux (bash + python3):

    # Вариант A — папка
    bash ~/.claude/skills/colorize-project/scripts/apply-colors.sh --color <name-or-hex> --workspace-path "<путь-к-папке>"
    
    # Вариант B — конкретный .code-workspace файл
    bash ~/.claude/skills/colorize-project/scripts/apply-colors.sh --color <name-or-hex> --workspace-file "<путь-к-.code-workspace>"
    

    Оба скрипта эквивалентны — одинаковая палитра, одинаковый алгоритм деривации, одинаковая логика записи. Можно передать оба пути одновременно — скрипт применит к обоим.

    Как определить OS: смотри переменные среды в системном промпте (Platform: win32 / darwin / linux) или просто пробуй угадать по cwd-формату (если путь начинается с C:\ или D:\ — Windows; если с / — Mac/Linux).

    Скрипт сам:

    • Резолвит имя пресета в базовый hex (или принимает #RRGGBB напрямую)
    • Алгоритмически выводит 10 оттенков от базы (тёмные для inactive, средние для рамки, яркие для accent)
    • Собирает workbench.colorCustomizations со всеми ~50 цветовыми токенами
    • Сохраняет другие ключи в существующем файле (Python interpreter, eslint конфиг, folders в workspace-файле и т.д.) — заменяет только цветовой блок
    • В .code-workspace-файле цвета кладутся внутрь ключа "settings", в обычном settings.json — на верхний уровень
    • Записывает файл через [System.IO.File]::WriteAllText в UTF-8
  5. Сообщи пользователю одной-двумя строками: «Применил палитру X (base #abc123) к <путь>. Цвет применился на лету — перезагружать окно не надо.» Если потом окно не перекрасилось — посоветуй Ctrl+Shift+P → Developer: Reload Window.

Палитра пресетов (20 тёмных)

ИмяHexОбраз
forest#163f17Тёмный лесной зелёный
royal-blue#1a3a6aГлубокий синий, благородный
royal-purple#3f1a55Тёмно-фиолетовый
burgundy#5a1a1aВинно-красный
amber#5a3a14Янтарь / тёплая бронза
teal#144a4aБирюзовый, спокойный
deep-cyan#144d5aТёмный циан, глубокая вода
indigo#2a1a55Индиго, ночной
dark-magenta#4a154aТёмная маджента
olive#3a3a14Оливковый
crimson#5a142aБордо
steel-blue#2a3a4aСине-серый, стальной
navy#14275aМорской флот
rust#5a2a14Ржавый, тёплый коричневый
plum#3a1a3aСлива
pine#144a3aСосна, зелёно-морской
slate-purple#2a1a3aСланцево-фиолетовый
brick#5a2a2aКирпичный
dark-pine#1a3a2aТёмная хвоя
charcoal-blue#1a2a3aУгольно-синий

Пользователь может также передать свой hex напрямую: /colorize-project #2a4f3c — скрипт это поддерживает.

Что красится и что НЕ красится

Окрашивается (в оттенки выбранного цвета):

  • Title bar (верхняя полоса с File/Edit/...) — самый насыщенный оттенок
  • Activity bar (узкая полоса с иконками слева) — тёмный
  • Auxiliary bar (правая Claude-панель — её обрамление) — тёмный
  • Status bar (нижняя полоса) — средний
  • Полоса вкладок (фон между вкладками)
  • Неактивные вкладки и их hover-состояние
  • Тонкая полоска над активной вкладкой — самый яркий «accent»-оттенок
  • Activity bar badge (счётчик нотификаций)
  • Пузырь пользовательских сообщений в чате (chat.requestBackground)

НЕ окрашивается (остаётся дефолтным #1f1f1f):

  • Side bar (Explorer слева) — намеренно, см. ниже
  • Сам редактор кода
  • Notebook-ячейки (содержимое .ipynb)
  • Контент чат-сессии Claude
  • Активная вкладка (только полоска сверху)
  • Terminal
  • Panel (Debug Console, Output)

Критичные нюансы (обязательно знать)

1. Запись через PowerShell, не через Write-tool

В некоторых средах установлен PostToolUse-хук, который вырезает многие цветовые токены (titleBar.*, activityBar.background, activityBarBadge.*, statusBar.background, statusBarItem.hoverBackground, sideBar.border, editorGroup.border, panel.border и др.), когда settings.json пишется через инструмент Write. Это было выявлено эмпирически — VS Code показывает серое там, где должно быть цветное, и только прямой вызов [System.IO.File]::WriteAllText всё применяет корректно.

Скрипт apply-colors.ps1 пишет именно так (Set-Content / WriteAllText), поэтому хук не срабатывает. Не пытайся править settings.json через Write/Edit — потеряешь токены и получишь полусерое-полураскрашенное окно. Только через apply-colors.ps1 или прямой PowerShell.

2. sideBar.background намеренно НЕ красится

Claude Code-расширение использует тот же токен sideBar.background для фона своей чат-области (где рендерится текущая сессия), а не для Explorer-а слева. Поэтому если выкрасить sideBar.background в цвет проекта — чат-фон тоже окрасится, и читать сессию становится тяжело.

Скрипт держит sideBar.background на нейтральном #1f1f1f. Это компромисс: Explorer-панель слева остаётся серой, но чат-сессия Claude тоже серой — что важнее. Если пользователь будет недоволен, что Explorer не цветной — объясни эт

Como adicionar

/plugin marketplace add collagerai/claude-code-colorize-project

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Comentários · Nenhum comentário

Entre para comentar. Entrar

  • Ainda não há comentários. Seja o primeiro.