Каталог интеграций
Все 53 целей Digitable Focus с инструкциями и самими конфигами: отфильтруйте по категории, найдите свой инструмент по названию и посмотрите, как палитра ложится в его интерфейс. Ставить и настраивать это руками можно бесплатно — покупают собранный архив.
53 целей. Одна палитра во всех.
Carbon, Paper и Signal собираются из одного набора токенов, поэтому в терминале, редакторе, git-диффе и мессенджере это буквально одни и те же цвета в одних и тех же ролях: фон, акцент, строка, ключевое слово, ошибка. Выбираете палитру один раз — дальше она повторяется в каждой интеграции.
- Carbonосновная тёмная
- Paperсветлая рабочая
- Signalвысокий контраст
Открыты не только инструкции: в каждой карточке лежат сами конфиги — все три палитры, целиком, с кнопкой «Скопировать». Собрать себе Digitable Focus руками можно бесплатно и без покупки. Платят за собранный архив: 47 готовых наборов файлов из одного источника токенов, Compendium, шаблоны и установщик, который раскладывает всё это по каталогам сам.
Терминалы и мультиплексоры12
Палитра приходит файлом схемы или строкой include. Мультиплексоры красят только свою обвязку — ANSI-цвета остаются за эмулятором, поэтому tmux и Zellij ставят в пару с терминалом.
Alacrittyпресет цветов через import
В архиве: 3 файла .toml
- Скопируйте
.toml-файлы в~/.config/alacritty/. - Подключите один пресет из своего
alacritty.toml.import = ["~/.config/alacritty/digitable-focus-carbon.toml"]
Сохраните файл — Alacritty перечитывает конфиг сам. Чтобы сменить палитру, замените имя файла в строке import на digitable-focus-paper.toml или digitable-focus-signal.toml.
Ghosttyтема по имени файла
В архиве: 3 файла без расширения
- Создайте
~/.config/ghostty/themes/и скопируйте туда все три файла. Расширения у них нет намеренно: для Ghostty имя файла и есть имя темы. - Добавьте одну строку в
~/.config/ghostty/config:theme = digitable-focus-carbon. - Перезагрузите конфиг:
cmd+shift+,на macOS,ctrl+shift+,на Linux.
На macOS конфиг лежит в ~/Library/Application Support/com.mitchellh.ghostty/config, темы — в папке themes рядом с ним. Одна строка умеет следовать системной теме: theme = light:digitable-focus-paper,dark:digitable-focus-carbon. Проверить, что Ghostty видит файлы: ghostty +list-themes.
GNOME Terminalскрипты записи dconf
В архиве: 3 скрипта .sh
- Сохраните текущие настройки:
dconf dump /org/gnome/terminal/ > gnome-terminal-backup.dconf. - Скопируйте скрипты куда угодно, например в
~/.local/share/digitable-focus/. - Примените палитру к профилю по умолчанию:
sh digitable-focus-carbon.sh. - Откройте новую вкладку. Уже открытые перекрашиваются сразу.
Конфиги кладутся в любой каталог, например ~/.local/share/digitable-focus/ — файл запускается, а не читается
GNOME Terminal не умеет импортировать файл темы: его цвета — это ключи dconf, поэтому палитра приходит скриптом. Конкретный профиль выбирается переменной: PROFILE_ID=... sh digitable-focus-paper.sh, список — gsettings get org.gnome.Terminal.ProfilesList list. Вернуть как было: dconf load /org/gnome/terminal/ < gnome-terminal-backup.dconf. GNOME Console (kgx) не поддерживается — у него нет ключей палитры.
Hyperмодуль для .hyper.js
В архиве: 3 файла .js
- Скопируйте
.js-файлы рядом с~/.hyper.js. - Подключите один из них через
requireиObject.assign, затем сохраните: Hyper перечитывает конфиг при сохранении,cmd/ctrl+shift+rфорсирует перезагрузку.const focus = require('./digitable-focus-carbon.js') module.exports = { config: Object.assign({}, focus, { fontSize: 13 }), plugins: [], localPlugins: [] }
У Hyper нет формата темы: ~/.hyper.js — это обычный JavaScript, поэтому палитра приходит модулем. Второй путь — открыть файл, скопировать всё внутри module.exports и вставить в объект config, заменив цветовые ключи. Свои переопределения ставьте после палитры в Object.assign, тогда выигрывают они.
iTerm2пресет Color Presets
В архиве: 3 файла .itermcolors
- Откройте iTerm2 → Settings → Profiles → Colors.
- В списке Color Presets... выберите Import... и укажите файлы — можно импортировать все три сразу.
- Снова откройте Color Presets... и выберите Digitable Focus Carbon.
Двойной клик по .itermcolors в Finder тоже импортирует пресет. Каждый профиль хранит свой: Carbon можно повесить на рабочий профиль, Paper — на профиль для светлой комнаты, и переключаться через меню Profiles. У всех терминальных целей Digitable Focus одна ANSI-раскладка: magenta берётся из фиолетового палитры, cyan — из акцента, bright cyan — из мягкого акцента.
Kittyinclude в kitty.conf
В архиве: 3 файла .conf
- Скопируйте
.conf-файлы в~/.config/kitty/. - Добавьте один include в конец
~/.config/kitty/kitty.conf:include digitable-focus-carbon.conf. - Перечитайте конфиг:
ctrl+shift+f5или перезапуск Kitty.
Держите ровно один include. Kitty применяет последнее прочитанное значение, поэтому include в конце файла перекрывает ваши цветовые настройки выше. Смена палитры — заменить имя файла в строке include и перечитать конфиг.
Konsoleцветовая схема профиля
В архиве: 3 файла .colorscheme
- Скопируйте
.colorscheme-файлы в~/.local/share/konsole/— до того, как откроете настройки: Konsole пересканирует папку только при открытии диалога. - Settings → Configure Konsole → Profiles, откройте профиль на редактирование.
- На вкладке Appearance выберите Digitable Focus Carbon.
- Нажмите OK — открытые вкладки перекрашиваются сразу.
Цвет курсора и выделения Konsole хранит в профиле, а не в цветовой схеме. Чтобы они совпали с палитрой, выставьте курсор в акцентный цвет там же, на вкладке Appearance. Под каждую палитру удобно завести отдельный профиль и переключаться через File → New Tab.
Tabbyблок colorScheme в конфиге
В архиве: 3 файла .yaml и schemes.json
- Откройте Settings → Config file или правьте
~/.config/tabby/config.yaml(в Windows —%APPDATA%\tabby\config.yaml). - Замените блок
terminal.colorSchemeсодержимым одного.yaml-файла. Если ключаterminal:ещё нет, вставьте блок целиком. - Сохраните — Tabby перечитывает конфиг и перекрашивает открытые вкладки.
Отступы важны: colorScheme стоит на два пробела внутри terminal. Tabby держит ровно одну активную схему, остальные два файла остаются пресетами на будущее. Файл schemes.json содержит те же три схемы массивом — в той форме, которую ждут плагины Tabby, если захотите собрать из них плагин.
tmuxстатус-строка и рамки панелей
В архиве: 3 файла .conf
- Скопируйте
.conf-файлы в~/.config/tmux/. - Подключите один из
~/.tmux.conf:source-file ~/.config/tmux/digitable-focus-carbon.conf. - Перечитайте без перезапуска:
tmux source-file ~/.tmux.conf.
tmux не владеет ANSI-палитрой — поставьте тему и для своего эмулятора терминала. Статус-строка использует 24-битный цвет; если он выглядит плоским, добавьте set -g default-terminal "tmux-256color" и set -ag terminal-overrides ",*256col*:RGB". Конструкция #{?client_prefix,...} требует tmux 2.3 или новее.
WezTermcolor_scheme из каталога
В архиве: 3 файла .toml
- Создайте
~/.config/wezterm/colors/и скопируйте туда.toml-файлы. - Укажите каталог и схему в
~/.config/wezterm/wezterm.luaи сохраните файл — WezTerm перечитывает конфигурацию автоматически.local wezterm = require 'wezterm' local config = wezterm.config_builder() config.color_scheme_dirs = { wezterm.home_dir .. '/.config/wezterm/colors' } config.color_scheme = 'Digitable Focus Carbon' return config
Имя схемы берётся из блока [metadata], а не из имени файла: Digitable Focus Carbon, Digitable Focus Paper, Digitable Focus Signal. Чтобы следовать системной теме, оставьте оба варианта и переключайте их по wezterm.gui.get_appearance().
Windows Terminalсхемы в settings.json
В архиве: schemes.json
- Откройте настройки Windows Terminal в виде JSON.
- Скопируйте объекты из
schemes.jsonв массивschemes. - Выберите схему в нужном профиле.
Zellijстатус-бар, вкладки, рамки
В архиве: 3 файла .kdl
- Создайте
~/.config/zellij/themes/и скопируйте туда.kdl-файлы. - Назовите тему в
~/.config/zellij/config.kdl:theme "digitable-focus-carbon". - Перезапустите Zellij или проверьте, что тема найдена:
zellij setup --check.
Zellij не владеет ANSI-палитрой — поставьте тему и для эмулятора терминала. Имя темы — это имя блока внутри файла, а не имя файла; здесь они намеренно совпадают. Для однострочного статуса добавьте default_layout "compact" и pane_frames false.
CLI-инструменты16
Здесь палитра приходит переменной окружения, фрагментом конфига или файлом скина. Несколько целей связаны: тема bat лежит в кэше, из которого её читает git-delta. Одна карточка выбивается из ряда намеренно: Уроборос — не палитра, а открытый инструмент Digitable, и стоит он здесь потому, что это программа командной строки.
batподсветка в пейджере
В архиве: 3 файла .tmTheme
- Скопируйте
.tmTheme-файлы в"$(bat --config-dir)/themes"— обычно это~/.config/bat/themes. В Debian и Ubuntu бинарь называетсяbatcat. - Пересоберите кэш:
bat cache --build. - Выберите тему:
export BAT_THEME="Digitable-Focus-Carbon"или строка--theme="Digitable-Focus-Carbon"в~/.config/bat/config.
Проверка bat --list-themes | grep Digitable
bat опознаёт тему по имени файла, поэтому темы называются Digitable-Focus-Carbon, Digitable-Focus-Paper, Digitable-Focus-Signal. Тема дотягивается и до git-delta: delta читает кэш тем bat, поэтому syntax-theme начинает работать сразу после bat cache --build. Проверено на bat 0.24 (syntect 5). Файлы — обычные .tmTheme-плисты Sublime Text и грузятся в него тоже.
bpytopтема монитора на Python
В архиве: 3 файла .theme
- Скопируйте
.theme-файлы в~/.config/bpytop/themes/, создав папку, если её нет. - Запустите bpytop, нажмите
Esc→ Options → color_theme и выберите тему стрелками. - Или задайте её без меню, в
~/.config/bpytop/bpytop.conf.color_theme="+digitable-focus-carbon" theme_background=True truecolor=True
Проверка grep color_theme ~/.config/bpytop/bpytop.conf
Плюс в начале имени — не опечатка: bpytop сам приписывает его каждой теме из пользовательской папки, поэтому color_theme="digitable-focus-carbon" без плюса не находит ничего и молча откатывается на Default. Оставьте theme_background=True: при False bpytop игнорирует main_bg и берёт фон терминала. truecolor=True тоже нужен, иначе он сам сожмёт каждый цвет до 256-цветной палитры. Если вид остался штатным, загляните в ~/.config/bpytop/error.log — неразобранный цвет пишется туда и пропускается, а на экране об этом не сообщают. Формат достался от bashtop и читается btop, но программы настраиваются раздельно: bpytop читает ~/.config/bpytop/, btop — ~/.config/btop/ и ждёт имя темы без плюса; если стоят обе, ставьте и обе цели. Написано под bpytop 1.0.68.
btopтема системного монитора
В архиве: 3 файла .theme
- Скопируйте
.theme-файлы в~/.config/btop/themes/, создав папку, если её нет. - Запустите btop, нажмите
Esc→ Options → color_theme и выберите тему стрелками. - Или задайте её без меню, в
~/.config/btop/btop.conf.color_theme = "digitable-focus-carbon" theme_background = True truecolor = True
Оставьте theme_background = True: при False btop игнорирует main_bg и берёт фон терминала. Рамки блоков становятся фиолетовыми, зелёными, оранжевыми и синими, выбранная строка процесса рисуется акцентом. Написано под btop 1.3; набор ключей темы не меняется с 1.0, а старые темы bashtop используют тот же синтаксис theme[...], только с меньшим числом ключей.
git-deltaцвета диффов git
В архиве: 3 файла .gitconfig
- Сначала поставьте тему bat: значение
syntax-themeссылается на неё, а delta читает кэш тем bat. - Скопируйте
.gitconfig-файлы в~/.config/git/. - Подключите нужную фичу в
~/.gitconfig.[include] path = ~/.config/git/digitable-focus-carbon.gitconfig [core] pager = delta [interactive] diffFilter = delta --color-only [delta] features = digitable-focus-carbon [merge] conflictstyle = zdiff3 [diff] colorMoved = default
Проверка git config --get delta.features && delta --show-config | head -20
Предупреждение Unknown theme означает, что темы bat ещё нет в кэше: выполните bat cache --build или уберите строку syntax-theme. Цвета диффа работают в любом случае — меняется только подсветка кода внутри него. Команда delta --list-syntax-themes помечает все пользовательские темы как dark, включая Paper: светлую тему delta определяет по своему захардкоженному списку имён. Работает строка light = true, которая в Paper уже стоит. Проверено на delta 0.16.5: merge-conflict-* требует 0.10+, grep-file-style — 0.13+.
ezaцвета листинга каталога
В архиве: 3 палитры, .sh и .fish
- Скопируйте нужный файл в
~/.config/eza/. - Bash или zsh — добавьте
source ~/.config/eza/digitable-focus-carbon.shв rc-файл. fish — скопируйте.fish-файл в~/.config/fish/conf.d/. - Откройте новую оболочку.
Проверка eza --long --header --git --total-size
EZA_COLORS переопределяет умолчания eza по ключам и применяется поверх LS_COLORS, поэтому ваши цвета расширений продолжают работать. Строка заголовка подчёркивается акцентом, каталоги идут акцентом и жирным, колонка размера растёт от зелёного к красному, git-флаги следуют added/modified/deleted. Если ничего не изменилось, терминал скорее всего не в 24-битном режиме: echo $COLORTERM должен показать truecolor или 24bit. Написано под eza 0.18; для старого exa подходит тот же текст под именем EXA_COLORS.
fastfetchцвета информационной заставки
В архиве: 3 файла .jsonc
- Положите один файл на место конфига:
mkdir -p ~/.config/fastfetch && cp digitable-focus-carbon.jsonc ~/.config/fastfetch/config.jsonc. - Уже есть свой
config.jsonc— перенесите в него блокиlogo.colorиdisplay: палитру несут они. Массивmodulesвнизу файла нужен только затем, чтобы цветам было что красить; удалите его, и fastfetch вернётся к своему списку модулей. - Запустите
fastfetch.
Проверка fastfetch --version && fastfetch
Цвета записаны как #rrggbb, а это требует fastfetch 2.42.0. На более старой сборке замените каждый "#rrggbb" на ближайший индекс палитры из комментария в шапке файла — либо в форме "@51" (2.57.0+), либо сырыми параметрами SGR "38;5;51", которые принимает любая версия. Цвет задаётся в трёх местах намеренно: logo.color красит ASCII-арт, display.color — ключи, заголовок, вывод и разделитель, а keyColor у каждого модуля; именно последний заставляет строки перебирать палитру, а не делить один акцент. display.brightColor выключен намеренно: по умолчанию он включён и добавляет ключам, заголовку и логотипу яркий атрибут, который во многих терминалах подменяется другим цветом и разваливает палитру. Целью стал fastfetch, а не neofetch, потому что neofetch заброшен, — но палитра переносится и туда: он понимает только индексы ANSI, и они лежат в том же комментарии, строками colors=(44 66 23 75 66 231) и ascii_colors=(44 75 119 215 135 203) в ~/.config/neofetch/config.conf. Файлы сверены со схемой doc/json_schema.json самого fastfetch.
fishцвета оболочки и пейджера
В архиве: 3 файла .fish
- Скопируйте один файл в
~/.config/fish/conf.d/. - Откройте новую оболочку:
exec fish.
Проверка set -S fish_color_command
Держите в conf.d/ ровно один файл Digitable Focus — выигрывает загруженный последним. Если цвета не изменились, ранее выбранная тема осталась в universal-переменных: глобальные значения их затеняют, но вычистить старое можно циклом set --erase --universal по именам fish_*color_*. Написано под fish 3.6+: fish_color_keyword требует 3.2, fish_color_option — 3.5, переменные пейджера — 3.4; более старый fish просто игнорирует незнакомые. fish_pager_color_background намеренно не задан, чтобы пейджер сохранял фон терминала.
fzfцвета интерактивного поиска
В архиве: 3 палитры, .sh и .fish
- Скопируйте нужный файл в
~/.config/fzf/. - Bash или zsh — добавьте
source ~/.config/fzf/digitable-focus-carbon.shв rc-файл. fish — скопируйте.fish-файл в~/.config/fish/conf.d/. - Откройте новую оболочку, чтобы переменная экспортировалась.
Проверка ls | fzf
Ставьте строку source после любых других присваиваний FZF_DEFAULT_OPTS: файл перезаписывает переменную, а не дополняет её. fzf завершается с unknown color name, если ключ не поддерживается, поэтому чистый запуск и есть проверка. Требуется fzf 0.36+: label и separator появились в 0.35, scrollbar — в 0.36. Новые ключи selected-fg и list-bg (0.52+) намеренно не используются, чтобы одна строка работала на разных версиях.
k9sскин Kubernetes-панели
В архиве: 3 файла .yaml
- Узнайте пути:
k9s info. - Скопируйте скины в каталог skins, который он показал, обычно
~/.config/k9s/skins/— создайте его, если папки нет. - Назовите скин в
~/.config/k9s/config.yaml— значение равно имени файла без расширения, — и перезапустите k9s.k9s: ui: skin: digitable-focus-carbon
Расширение обязательно .yaml: k9s собирает путь как skins/<name>.yaml и файл .yml не найдёт. Чтобы скинить только один кластер, положите то же значение в k9s.contexts.<context>.skin. Если k9s стартует со штатными цветами — имя файла и значение skin разошлись, либо файл лёг рядом с config.yaml, а не внутрь skins/. Раскладка «один файл на скин» появилась в k9s 0.30 вместе с переездом на XDG; на более старой сборке тот же документ работает после переименования файла.
lazygitцвета панелей git-TUI
В архиве: 3 фрагмента .yml
- Найдите каталог конфига:
lazygit --print-config-dir, обычно~/.config/lazygit. - Влейте блок
gui.themeиз одного файла в тамошнийconfig.yml. Если ключаgui:там ещё нет, вставьте фрагмент как есть. - Перезапустите lazygit — конфиг он читает при старте.
Держите один ключ gui: — YAML берёт последний дубликат и молча выкидывает первый. Ошибка did not find expected key означает неверный отступ: gui должен стоять в нулевой колонке. Написано под lazygit 0.42+, каждый ключ сверен со схемой ThemeConfig. Ключ inactiveViewSelectedLineBgColor существует только с 0.43 и поэтому идёт закомментированным; selectedRangeBgColor убран после 0.40 и не выводится вовсе. lazygit отвергает незнакомые ключи темы, так что не переносите ключи из более новой версии в старый конфиг.
lfцвета файлового менеджера
В архиве: 3 палитры: .colors и .lfrc
- Скопируйте список цветов под тем именем, которого требует lf, — своего он не примет:
mkdir -p ~/.config/lf && cp digitable-focus-carbon.colors ~/.config/lf/colors. - Положите рядом фрагмент для остального интерфейса:
cp digitable-focus-carbon.lfrc ~/.config/lf/digitable-focus.lfrc. - Подключите его одной строкой в
~/.config/lf/lfrc:source ~/.config/lf/digitable-focus.lfrc. - Перезапустите lf.
Проверка lf -log /tmp/lf.log && grep -i error /tmp/lf.log
Файл colors красит список файлов, .lfrc — то, до чего список не дотягивается: приглашение, строки под курсором, рамки, линейку, статус и метки. colors — последний из пяти источников цвета lf (умолчания, LSCOLORS, LS_COLORS, LF_COLORS, файл), поэтому он выигрывает у вашего LS_COLORS. Те же пары работают и переменной, через двоеточие: export LF_COLORS="di=01;38;2;0;229;229:fi=38;2;245;247;250". Имя colors одно на всю установку, так что смена палитры — перезаписать оба файла. Цвета записаны 24-битными параметрами 38;2;R;G;B; терминал, объявивший меньше цветов, получит ближайшее приближение, а если 24 бита он умеет, но не объявляет — помогает COLORTERM=truecolor. На тёмных палитрах cursoractivefmt задаёт только фон, поэтому под курсором каталог остаётся акцентным, а исполняемый файл зелёным; на светлой там закреплён цвет текста — на бумаге любой заметный оттенок подложки стоил бы одному из цветов файлов его 4,5:1. Иконки в lf — отдельный механизм (LF_ICONS или ~/.config/lf/icons), тема их не трогает. Написано под lf r31, где появились borderfmt, statfmt и rulerfmt; cursoractivefmt и соседние ключи требуют r29. В r41 rulerfmt по умолчанию пуст, в r42 rulerfmt и statfmt объявлены устаревшими — они ещё работают, но на таких сборках последние две строки фрагмента можно убрать.
Уроборосзапись о каждом вызове настоящего запускабесплатный гайд
Открыто: инструкция, три способа установки и разбор записи, общий для шести языков
- Поставьте инструмент любым из трёх способов. Homebrew:
brew install digitable-lol/tap/ouroboros— короткая строка подключает хранилище формул сама и доставляет Python. Через uv:uv tool install git+https://github.com/digitable-lol/ouroboros. Через asdf:asdf plugin add ouroborosиasdf install ouroboros 0.4.0. Любой из трёх ставит две программы —ouroborosиouroboros-mcp. - Допишите в исходник запись о вызовах:
ouroboros wrap-file stats.py. Рядом появится помощникouroboros_runtime.py; он ввозится только из стандартной библиотеки, ставить ничего не нужно. Горячий файл целиком обмазывать не стоит — нужные записи утонут, поэтому есть выбор по именам:ouroboros wrap-functions parser.c parse_header parse_body. - Запустите программу как обычно —
python3 stats.py. Рядом появитсяdebug.info: по две строки JSON на вызов, на входе и на выходе, связанные общим номером.{"p":"in","t":"2026-08-28T23:39:45.166","id":"e668ee33-…","fn":"average","a":"[12, 30, 18]","k":""} {"p":"out","id":"e668ee33-…","fn":"average","r":"20.0","d":2e-06} - Читайте записи тем же инструментом:
ouroboros trace debug.info --outcome raisedпокажет, что было брошено и с какими доводами,ouroboros trace-stats debug.info— сводку по всем вызовам. Всего команд семнадцать, список —ouroboros --help. - Прогоните свои проверки на обмазанном коде, а не только на исходном. Обмазка — это правка исходника, и она умеет менять поведение программы, а не только время её работы. Не хотите трогать рабочее дерево — заведите отдельный черновик:
ouroboros create, затемwrite,executeиfinish.
Проверка ouroboros trace-stats debug.info
Инструмент и гайд открыты, как Digit: покупать Workbench ради них не нужно, лицензия BSD 2-Clause. Языков шесть — Python, JavaScript/TypeScript, C, C++, Elixir, Go, — и схема записи у всех одна. Умеет работать сервером MCP: ouroboros-mcp, семнадцать инструментов. Цена снята прогоном: добавка на вызов 63,5 мкс у Python, 20,3 у JavaScript, 19,8 у C, 22,0 у C++, 30,0 у Go и 179,7 у Elixir, от 238 до 270 байт на вызов при коротких доводах. Польза тоже измерена, и она узкая: на шестистах ответах модели о том, что программа сделала на конкретном запуске, доля верных выросла с 61,0 до 83,0 %, а доля уверенно неверных упала с 38,7 до 17,0 %; но вся прибавка приходится на вопросы о значениях (46,4 → 84,3 %), а на вопросе «вызывалась ли функция вообще» обе доли равны 100 % — там запись не даёт ничего. Что остаётся платой, а не поломкой: C++ не записывает возвращённый объект классового типа, иначе теряется пропуск копирования; имён доводов нет в записи ни у одного языка; обмазка Python добавляет кадр стека на вызов, поэтому глубокая рекурсия мельчает вдвое. Написано под 0.4.0.
Powerlevel10kцвета сегментов промпта
В архиве: 3 файла .p10k.zsh
- Скопируйте один файл в
~/.config/p10k/. Если~/.p10k.zshещё нет, сначала выполнитеp10k configureи выберите любой стиль. - Допишите строку в самый конец
~/.p10k.zsh. Порядок обязателен: файл начинается с того, что сбрасывает все параметрыPOWERLEVEL9K_*, и строка выше по файлу была бы стёрта.source ~/.config/p10k/digitable-focus-carbon.p10k.zsh - Перезагрузите промпт:
source ~/.p10k.zshилиexec zsh.
Проверка typeset -p POWERLEVEL9K_DIR_FOREGROUND
Файлы задают только POWERLEVEL9K_*_FOREGROUND для сегментов, которые p10k несёт сам: раскладка, иконки, разделители и набор сегментов остаются вашими. Цвета записаны как #rrggbb — p10k передаёт их zsh как %F{#rrggbb}, а это требует zsh 5.7.1 и терминала с truecolor. Проверить можно так: print -P '%F{#ff0000}red%f' должен напечатать красное слово, а не текст. Если печатает текст, поставьте перед строкой source переключатель DIGITABLE_FOCUS_P10K_256=1 — каждая роль получит ближайший индекс xterm-256. Фрагмент выставляет POWERLEVEL9K_BACKGROUND=, то есть прозрачные сегменты, как в стилях lean и pure: фон приходит от терминала. На rainbow и classic, где заливается каждый сегмент, эту строку надо удалить и расставить _BACKGROUND по сегментам самому — цвета текста здесь посчитаны на контраст с фоном палитры, а не с произвольной заливкой. Написано под Powerlevel10k 1.20.17; hex понимает 1.15 и новее, более старые релизы берут только индексы.
starshipпалитра ролей в промпте
В архиве: 3 файла .toml
- Сохраните текущий конфиг:
cp ~/.config/starship.toml{,.bak}. - Скопируйте один файл поверх или допишите его содержимое, если модули уже настроены. Строка
palette = "..."должна остаться одна, вверху файла. - Перезагрузите оболочку.
Проверка starship print-config | head -20
В каждом файле есть блок [palettes.digitable_focus_*], поэтому стили модулей записаны ролями: accent, info, ok, warn, alert, magic, danger, muted, subtle. Чтобы оставить свой промпт и взять только цвета, скопируйте строку palette и блок [palettes.*], а дальше используйте имена ролей в своих значениях style. Символы — обычный ASCII, Nerd Font не нужен. Именованные палитры — фича starship 1.16; на более старой версии промпт работает, но роли падают в цвет терминала по умолчанию.
vifmцветовая схема файлового менеджера
В архиве: 3 файла .vifm
- Скопируйте
.vifm-файлы в~/.config/vifm/colors/, создав папку, если её нет. На сборке со старой раскладкой каталог другой:~/.vifm/colors/. - Примерьте прямо в работающей программе:
:colorscheme digitable-focus-carbon. - Чтобы схема осталась, добавьте ту же строку без двоеточия в
~/.config/vifm/vifmrc:colorscheme digitable-focus-carbon.
Проверка vifm --version | head -1
Каждое правило несёт и индекс xterm-256, и точное 24-битное значение, но gui*-значения vifm читает только тогда, когда terminfo объявляет прямой цвет, — обычно это запуск TERM=xterm-direct vifm. Без него берутся cterm*-индексы, каждый из которых уже посчитан как ближайшая запись куба 6x6x6 или серой шкалы; больше менять ничего не нужно. Что схема применилась, видно по :highlight Directory: guifg там равен акценту палитры. На тёмных палитрах правило CurrLine задаёт только фон, поэтому под курсором файл сохраняет свой цвет — каталог остаётся акцентным, исполняемый файл зелёным; на светлой там закреплён цвет текста, потому что на бумаге любой заметный оттенок подложки стоил бы одному из цветов файлов его 4,5:1. Хотите, чтобы сквозь vifm просвечивал фон терминала, — замените ctermbg= и guibg= в строке Win на default. Написано под vifm 0.12 и требует 0.11: группы HardLink, LineNr и OddLine появились в 0.11, TabLine и TabLineSel — в 0.10. Незнакомую группу vifm не пропускает, а отвергает, поэтому на более старой сборке соответствующие строки нужно удалить.
zshподсветка ввода и промпт
В архиве: 3 файла .zsh
- Поставьте zsh-syntax-highlighting, если его ещё нет:
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.zsh/zsh-syntax-highlighting. - Скопируйте файл палитры в
~/.config/zsh/. - Добавьте две строки в конец
~/.zshrcименно в этом порядке — плагин должен подключаться первым, он ставит свои хуки и умолчания, а наш файл перекрывает их следом.source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh source ~/.config/zsh/digitable-focus-carbon.zsh - Перезагрузите оболочку:
exec zsh.
Файлы задают ZSH_HIGHLIGHT_STYLES, цвета редактора строки (zle_highlight), цвета списка автодополнения и двухстрочный промпт на vcs_info. Уже используете Powerlevel10k, oh-my-posh или starship — удалите секцию # Prompt внизу файла, остальное оставьте. Цвета записаны как fg=#rrggbb: это понимает zsh 5.3 и новее, более старый выведет текст вместо цвета. italic намеренно не используется — его поддержка зависит и от сборки zsh, и от терминала.
Редакторы и IDE8
Полноценные схемы: интерфейсные скоупы, синтаксис, диагностика LSP и гаттеры диффа. Ставятся штатным импортом схемы или копированием файла в каталог тем — сторонние менеджеры плагинов не нужны.
Emacsdeftheme со шрифт-локом
В архиве: 3 файла -theme.el
- Скопируйте темы в каталог, о котором знает Emacs:
mkdir -p ~/.emacs.d/themes && cp *-theme.el ~/.emacs.d/themes/. - Зарегистрируйте каталог в init-файле и загрузите тему.
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") (load-theme 'digitable-focus-carbon t) - Или попробуйте одну интерактивно:
M-x load-theme RET digitable-focus-paper.
Покрыты встроенные лица, font-lock (включая лица Emacs 29 для чисел, операторов и скобок), диффы, Flymake и Flycheck, Org, Markdown, Dired и популярные всплывающие списки автодополнения. Перед загрузкой другой темы отключите предыдущую: M-x disable-theme RET digitable-focus-carbon. Требуется Emacs 26 или новее; атрибут :extend в диффах и Org-блоках — Emacs 27.
Helixтема ui и синтаксиса
В архиве: 3 файла .toml
- Скопируйте темы:
mkdir -p ~/.config/helix/themes && cp *.toml ~/.config/helix/themes/. - Выберите одну в
~/.config/helix/config.toml:theme = "digitable-focus-carbon". - Или посмотрите вживую прямо в Helix:
:theme digitable-focus-paper.
Покрыты интерфейсные скоупы ui.*, синтаксические (keyword, function, string, type и далее), диагностика LSP и гаттеры диффа; каждый цвет объявлен один раз в секции [palette]. У Helix нет альфа-канала для цветов темы, поэтому цвет выделения задан непрозрачным тоном. Требуется Helix 23.10 или новее.
JetBrains IDEсхема редактора .icls
В архиве: 3 файла .icls
- Откройте Settings → Editor → Color Scheme.
- Нажмите шестерёнку рядом с именем схемы и выберите Import Scheme...
- Укажите один
.icls-файл и подтвердите. - Выберите импортированную схему в списке Scheme и примените.
Конфиги кладутся в импорт в Settings → Editor → Color Scheme или ~/.config/JetBrains/<Product><Version>/colors/
Альтернатива импорту — положить файлы в каталог конфигурации IDE и перезапустить её: ~/.config/JetBrains/<Product><Version>/colors/ в Linux, ~/Library/Application Support/JetBrains/<Product><Version>/colors/ в macOS. Тёмные схемы наследуются от Darcula, Paper — от светлой Default, поэтому всё, что схема не переопределяет, остаётся читаемым. Схема меняет только редактор: тему окна IDE переключают отдельно в Settings → Appearance. Проверено на IntelliJ IDEA, GoLand, PyCharm, WebStorm, RubyMine, CLion, Rider и Android Studio 2023.1 и новее.
Neovimcolorscheme на чистом Lua
В архиве: 3 файла в colors/
- Скопируйте схемы в каталог конфигурации:
cp colors/*.lua ~/.config/nvim/colors/. - Включите truecolor и выберите палитру в
init.lua.vim.opt.termguicolors = true vim.cmd.colorscheme('digitable-focus-carbon') - Или переключайтесь на ходу:
:colorscheme digitable-focus-paper.
Менеджер плагинов не нужен. Покрыты встроенные синтаксические группы, захваты Treesitter (@function, @keyword, @string и далее), диагностика LSP и палитра :terminal. Paper выставляет background=light, остальные две — background=dark. Каждый файл дополнительно возвращает таблицу палитры, поэтому те же цвета может переиспользовать строка состояния. Требуется Neovim 0.9 или новее.
Sublime Textцветовая схема редактора
В архиве: 3 файла .sublime-color-scheme
- Откройте Preferences → Browse Packages...
- Скопируйте
.sublime-color-scheme-файлы в открывшуюся папкуUser. - Откройте Preferences → Select Color Scheme... (
Ctrl+Shift+P/Cmd+Shift+P, затем UI: Select Color Scheme). - Выберите Digitable Focus Carbon, Paper или Signal.
Цвета лежат в блоке variables, поэтому форк правится сверху файла. Для Paper переключите ещё и интерфейс на светлый: Preferences → Theme..., иначе боковая панель останется тёмной при светлом редакторе. Требуется сборка Sublime Text 3149 или новее — это формат .sublime-color-scheme. Sublime Merge читает те же файлы из своего пакета User.
Vimcolorscheme с фолбэком 256 и подсветка FTS
В архиве: 5 файлов: colors/, syntax/, ftdetect/
- Скопируйте всё разом:
cp -r colors syntax ftdetect ~/.vim/. - Добавьте в
~/.vimrcвключениеtermguicolorsи выбор схемы.if has('termguicolors') set termguicolors endif colorscheme digitable-focus-carbon - Или переключайтесь на ходу:
:colorscheme digitable-focus-signal. - Файлы
.ftsподхватятся сами —ftdetectставит тип,syntaxкрасит.
Каждый ctermfg и ctermbg — ближайший xterm-цвет из куба 6x6x6 (16-231) или серой шкалы (232-255), посчитанный из hex. Без termguicolors Vim падает на это 256-цветное приближение, поэтому схемы остаются пригодными по SSH. В светлом терминале берите Paper: он выставляет background=light. Подсветка FTS — единственная в наборе, которой нет ни в одном редакторе из коробки: .fts слишком молод, чтобы попасть в чужие грамматики. Роли в ней раскрашены по-разному намеренно: объявление вводит сущность, шаг вывода её использует, и различить их — первое, что делаешь, читая спецификацию. Приезжает сюда копией из репозитория языка digitable-lol/flang, каталог editors/vim-fts/ (ftdetect/fts.vim ставит тип, syntax/fts.vim красит). Проверять этот адрес нужно НА ТЕГЕ v0.4.7: в главной ветке и в выпуске, который ставит brew install digitable-lol/tap/flang, каталога editors/vim-fts больше нет — там editors/vim/, и красит он .flang, а не .fts. То есть копия здесь пережила свой источник: чинится это переносом схемы на .flang, а не правкой адреса.
VS Codeрасширение с тремя темами
В архиве: папка расширения
- Скопируйте папку в
~/.vscode/extensions/digitable.focus-0.1.0. - Перезапустите VS Code.
- Откройте Preferences: Color Theme.
- Выберите Carbon, Paper или Signal.
Расширение не исполняет код и не собирает телеметрию.
Zedсемейство тем одним файлом
В архиве: digitable-focus.json
- Скопируйте файл семейства в папку тем:
mkdir -p ~/.config/zed/themes && cp digitable-focus.json ~/.config/zed/themes/. - Откройте выбор темы:
Cmd+K Cmd+Tна macOS илиCtrl+K Ctrl+Tна Linux. - Выберите Digitable Focus Carbon, Paper или Signal.
Один файл содержит все три темы: хром рабочей области, редактор, ANSI-палитру терминала и стили синтаксиса. Zed перечитывает темы из этой папки при сохранении, поэтому правки видны в работающем редакторе сразу. Чтобы следовать системному переключателю, задайте оба варианта в ~/.config/zed/settings.json через "theme": { "mode": "system", "light": "Digitable Focus Paper", "dark": "Digitable Focus Carbon" }.
Приложения15
Самая честная часть списка. Браузеры и мессенджеры не задумывались как настраиваемые: часть целей ставится в два клика, часть требует ручного шага от покупателя. Ниже он назван прямо у каждой карточки.
Chromeтема окна браузеранужен режим разработчика
В архиве: 3 папки расширения
Ручная досборка
Chrome при каждом запуске показывает предупреждение «Отключить расширения в режиме разработчика», пока распакованная тема загружена. Чтобы оно исчезло, папку нужно упаковать (Pack extension на той же странице) и опубликовать в Chrome Web Store под собственным аккаунтом разработчика: локальный .crx, пришедший не из Store, Chrome ставить отказывается. Публикация — шаг покупателя, и регистрация в Web Store стоит разового взноса.
- Откройте
chrome://extensions. - Включите Developer mode справа сверху.
- Нажмите Load unpacked и выберите папку палитры — именно папку с
manifest.json, а не сам файл. - Тема применяется сразу.
Цвета записаны RGB-триплетами: темы Chrome не принимают hex. Так же работает в Chromium, Brave, Vivaldi и других Chromium-браузерах — страница chrome://extensions там та же. Смена палитры — загрузить другую папку, Chrome держит одну тему. Удаление — chrome://extensions или Настройки → Внешний вид → Восстановить тему по умолчанию.
Dark Readerцвета затемнения сайтов
В архиве: 3 палитры: .json и .drfix.txt
- Откройте попап Dark Reader, шестерёнка → Manage settings.
- Нажмите Import Settings и выберите
digitable-focus-<палитра>.json. - Подтвердите предупреждение. В файле только ключ
theme, поэтому списки сайтов, автоматизация и настройки синхронизации остаются вашими. - Убедитесь, что движок стоит на Dynamic, а режим совпадает с палитрой: Dark для Carbon и Signal, Light для Paper.
- Акценты — необязательный шаг: попап → шестерёнка → Dark Reader developer tools → Dynamic Theme Editor. Первый блок начинается со строки из одной звёздочки, это глобальный фикс. Допишите объявления из секции CSS файла
.drfix.txtв конец секции CSS этого блока и нажмите Apply.
Конфиги кладутся в импорт в попапе Dark Reader → Manage settings → Import Settings
Не заменяйте всё содержимое редактора фиксов: остальное — пофайловый список, который держит обычные сайты читаемыми. Динамический движок Dark Reader берёт из настроек только фон и цвет текста, поэтому акцент, ссылки, выделение и код приходят отдельным блоком фиксов. Цвета записаны как #rrggbb — другого формата Dark Reader не принимает, поэтому полупрозрачный слот selection сплющен до непрозрачного. Dark Reader меняет страницы, а не рамку браузера: для самого окна берите темы Firefox, Chrome или Thunderbird из этого же набора. Откат — Manage settings → Reset settings для цветов и Reset changes в редакторе для фиксов.
Digitable Chatтема веб-приложениянужна своя сборка или Stylus
В архиве: 3 файла .css
Ручная досборка
У Digitable Chat нет настройки темы. Приложение отдаётся статикой, поэтому файл подключается либо строкой <link> в index.html вашего развёртывания, либо пользовательским стилем через расширение вроде Stylus. На чужом развёртывании — включая chat.digitable.life — работает только второй путь, и расширение ставит покупатель.
- Своя сборка: скопируйте один файл палитры в каталог, который сервер отдаёт как корень сайта, — рядом с
index.html. - Добавьте одну строку перед
</head>вindex.html. Она обязана идти после собранного стиля приложения, иначе тема проиграет.<link rel="stylesheet" href="/digitable-focus-carbon.css" /> - Жёсткая перезагрузка: Ctrl/Cmd + Shift + R.
- Чужая сборка: Stylus → Write new style, вставьте содержимое файла, задайте Applies to → URLs on the domain и укажите хост, например
chat.digitable.life. Stylus подставляет пользовательские стили после стилей страницы — именно это теме и нужно.
Конфиги кладутся в каталог сборки рядом с index.html — или вставка в расширение пользовательских стилей
Файл красит оба слоя приложения: собственные переменные --digitable-* и --dt-chat-* на главной и глобальные классы MUI (.MuiPaper-root, .MuiOutlinedInput-notchedOutline) в комнате. Режим приложения угадывать не нужно: один файл задаёт законченный вид независимо от переключателя light/dark, поэтому наполовину применённого вида не бывает. Честно про Carbon: тёмная палитра самого приложения — это уже те же токены Digitable, поэтому Carbon почти ничего не меняет, а реально перекрашивают Paper и Signal. Часть цветов приходит из MUI-пропа sx и компилируется в классы с хешем сборки — до них тема не дотягивается, но они взяты из тех же токенов и не выглядят неоформленными. Комнату, встроенную через <script src="…/sdk.js">, перекрасить со страницы-хоста нельзя: это <iframe> внутри shadow-root, красьте то развёртывание, на которое он смотрит. Откат — удалить строку <link> и файл или выключить стиль в Stylus.
Discordтема клиента через модтребует мод, против ToS
В архиве: 3 файла .theme.css
Ручная досборка У Discord нет поддержки тем. Перекрасить клиент можно только клиентским модом — BetterDiscord или Vencord, — а их использование нарушает условия обслуживания Discord. Это решение покупателя, и мы не берёмся советовать его вместо предупреждения.
- BetterDiscord: User Settings → Themes → Open Themes Folder, скопируйте туда один
.theme.cssи включите переключатель рядом с темой. - Vencord: User Settings → Vencord → Themes → Open Themes Folder, скопируйте файл, вернитесь на вкладку Themes, нажмите иконку обновления и включите тему.
- Смена палитры — включить другой файл и выключить предыдущий: две темы Digitable Focus подрались бы за одни переменные.
Палитра выбирается файлом, а не переключателем light/dark в самом Discord: каждый файл красит и .theme-dark, и .theme-light, поэтому наполовину применённого вида не бывает. Discord часто переименовывает свои CSS-переменные и сейчас несёт два их поколения сразу: тема задаёт и старое семейство --background-primary, и новые --background-base-*, --text-*, --border-*. После крупного редизайна часть поверхностей может вернуться к штатным цветам, пока имена переменных не обновлены.
Firefoxтема окна браузерапостоянная установка — своя подпись
В архиве: 3 папки с manifest.json
Ручная досборка
Firefox держит неподписанные расширения только в Developer Edition, Nightly и ESR, где помогает xpinstall.signatures.required = false в about:config. На релизной сборке тему нужно подписать самому: для этого нужен аккаунт Mozilla, и за вас этот шаг набор не сделает.
- Примерить без подписи: откройте
about:debugging#/runtime/this-firefox, нажмите Load Temporary Add-on и укажитеmanifest.jsonвнутри папки палитры. Тема применяется сразу и снимается при перезапуске Firefox. - Поставить навсегда: заархивируйте содержимое папки палитры так, чтобы
manifest.jsonлежал в корне архива, а не в подпапке, и переименуйте архив в.xpi. - Загрузите его на addons.mozilla.org как unlisted-дополнение и скачайте подписанный
.xpi. - Откройте подписанный файл в Firefox и подтвердите установку.
Конфиги кладутся в любая папка, дальше Load Temporary Add-on в about:debugging
Смена палитры — about:addons → Темы, включить другую: Firefox держит активной одну тему. Удаление — там же, потом верните свою прежнюю тему. Временные дополнения исчезают при перезапуске сами.
IT Toolsтема набора веб-утилитнужна своя сборка или Stylus
В архиве: 3 файла .css
Ручная досборка
У it-tools нет настройки темы. Приложение отдаётся статикой, поэтому файл подключается либо строкой <link> в index.html вашего развёртывания, либо пользовательским стилем через расширение вроде Stylus. На чужом инстансе — включая it-tools.tech — работает только второй путь, и расширение ставит покупатель.
- Своя сборка: скопируйте один файл палитры в каталог, который сервер отдаёт как корень сайта, — рядом с
index.html. У официального образа это/usr/share/nginx/html:docker cp digitable-focus-carbon.css it-tools:/usr/share/nginx/html/. В Compose монтируйте файл томом, иначе он исчезнет при пересборке контейнера. - Добавьте одну строку перед
</head>вindex.html. Она обязана идти после собственных стилей приложения, иначе тема проиграет. Не хотите правитьindex.html— вставьте тот же тег обратным прокси:sub_filterв nginx,replaceв Caddy.<link rel="stylesheet" href="/digitable-focus-carbon.css" /> - Жёсткая перезагрузка: Ctrl/Cmd + Shift + R.
- Чужой инстанс: Stylus → Write new style, вставьте содержимое файла, задайте Applies to → URLs on the domain и укажите хост. Stylus подставляет пользовательские стили после стилей страницы — именно это теме и нужно.
Конфиги кладутся в каталог, который сервер отдаёт как корень сайта, — рядом с index.html
it-tools — чужое приложение под лицензией GPL-3.0-only, исходники: https://github.com/CorentinTh/it-tools. В архиве лежит тема, а не форк: это отдельный CSS рядом с неизменённым инстансом, кода приложения в нём нет. Наш собственный инстанс https://tools.digitable.life/ — уже форк, https://github.com/digitable-lol/it-tools, с этой темой внутри сборки; GPL-3.0-only обязывает нас держать его исходники открытыми, и они по этой ссылке. Палитра выбирается файлом, а не переключателем в приложении: тёмный режим у it-tools — это <html class="dark">, поэтому carbon и signal красят html.dark, а paper — html:not(.dark). Если режим не совпал с файлом, тема просто не применяется, а не выдаёт нечитаемую смесь. Держите подключённым один файл: две тёмные палитры дрались бы за одни объявления. Честное ограничение: собственный набор компонент it-tools (src/ui/c-*) передаёт цвета через Vue v-bind(), а тот компилируется в инлайн-переменные с именем из хеша сборки, и имена меняются от релиза к релизу — поэтому варианты c-button (default, primary, warning, error) из CSS неразличимы и получают одну нейтральную заливку; c-alert свой цвет текста и рамки сохраняет, так что предупреждение и ошибка по-прежнему читаются по-разному. И поскольку naive-ui пишет свою тему в атрибут style, каждое объявление здесь идёт с !important — иначе таблица стилей проигрывает инлайн-переменной. Имена переменных взяты из src/<component>/styles/light.ts naive-ui и сверены с живым инстансом; если в следующем мажоре их переименуют, поверхность за ними вернётся к штатным цветам, пока тема не обновлена. Откат — удалить строку <link> и файл или выключить стиль в Stylus.
Logseqcustom.css для графа
В архиве: 3 файла .css
- Откройте граф, затем Settings → Custom configuration → Edit custom.css. Можно править
logseq/custom.cssв папке графа напрямую. - Положите файл палитры рядом с
custom.css, напримерlogseq/digitable-focus-carbon.css. - Добавьте одну строку в самое начало
custom.css:@import url("./digitable-focus-carbon.css");—@importобязан идти до любых других правил. - Перезагрузите окно:
t rили Settings → Advanced → Refresh. - Выставьте режим через
t t: Carbon и Signal стилизуютdata-theme="dark", Paper —data-theme="light".
Каждый файл трогает только свой режим, поэтому собственный переключатель Logseq продолжает работать. Держите один @import: две палитры на один режим будут драться за одни переменные. Покрыт полный набор --ls-* из vars-classic.css и радикс-шкалы --lx-gray-01..12 и --lx-accent-01..12, на которых в свежих сборках держатся фон, границы и ссылки. Отдельно стилизованы детали цеттелькастена: ссылки на страницы, ссылки на блоки, теги (прозрачность принудительно выставлена в 1 — Logseq гасит их до 0.7) и свойства key:: value. Откат — удалить строку @import и перезагрузить окно; больше ничего не меняется. Проверено на именах переменных Logseq 0.10.x.
ObsidianCSS-сниппет хранилища
В архиве: 3 файла .css
- Скопируйте один CSS-файл в
.obsidian/snippets/вашего хранилища. - Откройте Settings → Appearance → CSS snippets.
- Включите выбранный сниппет Digitable Focus.
Держите включённой одну палитру за раз.
qutebrowserцвета интерфейса браузера
В архиве: 3 фрагмента .py
- Скопируйте один файл в
~/.config/qutebrowser/. - Добавьте одну строку в
~/.config/qutebrowser/config.py. Если у вас есть вызовconfig.load_autoconfig(), строка обязана идти после него: он заново применяет всё, что вы когда-либо меняли через:set, включая цвета, и иначе перекроет палитру.config.source('digitable-focus-carbon.py') - Перечитайте конфиг из работающего окна командой
:config-sourceили перезапустите qutebrowser.
Проверка qutebrowser --version | head -1
Тема красит рамку браузера, а не содержимое страниц: colors.webpage.bg задаёт фон только тем страницам, которые не объявили свой, а colors.webpage.preferred_color_scheme сообщает сайтам, какой prefers-color-scheme им отдавать — dark для carbon и signal, light для paper. Группа colors.webpage.darkmode.* намеренно не тронута: принудительное затемнение отрисованных страниц — отдельное решение, оно меняет вид каждого сайта, и принимать его за читателя тема не должна. Три присваивания выглядят цветами, но ими не являются: colors.downloads.system.fg, colors.downloads.system.bg и colors.tabs.indicator.system выбирают способ интерполяции двух цветов (none оставляет оттенки палитры как есть), а colors.prompts.border — это сокращённая запись CSS-рамки. Что изменилось на самом деле, покажет :config-diff. Написано под qutebrowser 2.5 и сверено с его configdata.yml: присваиваются только существующие там настройки, поэтому config.py грузится без ошибок.
Slackстрока цветов интерфейсачасть панелей остаётся штатной
В архиве: 3 файла .txt
Ручная досборка После редизайна Slack строка красит уже не все поверхности: клиент раскладывает слоты на свои встроенные цвета, поэтому боковая панель, активный элемент и бейдж упоминаний следуют палитре, а часть панелей остаётся штатной. Это ограничение Slack, а не пробел в файле — поддерживаемого способа перекрасить остальное без патча десктоп-клиента нет.
- Откройте файл нужной палитры и скопируйте строку из десяти слотов.
- В Slack нажмите на свой аватар → Preferences → Appearance.
- Выберите Dark или Light под палитру — Paper светлая, остальные две тёмные, — затем Custom theme.
- Рядом с Theme Colors нажмите Import theme, выберите Paste your legacy theme colors, вставьте строку и нажмите Apply.
Конфиги кладутся в строка вставляется в Preferences → Appearance → Import theme
В старых сборках диалога импорта нет: там разверните Create a custom theme в разделе Colors и вставьте строку в поле с подписью про копирование значений. Такие сборки игнорируют последние два слота, поэтому в том же файле лежит и строка из восьми. Slack хранит одну пользовательскую тему на клиент. Откат — Preferences → Appearance и любая встроенная тема.
Telegram Desktopпалитра клиентаобои — своя упаковка в архив
В архиве: 3 файла .tdesktop-palette
Ручная досборка
Сама палитра ставится файлом, распаковывать нечего. Архив .tdesktop-theme нужен только если вы хотите приложить к палитре фоновое изображение: набор его не собирает, потому что пришлось бы угадывать ваши обои. Собрать самому — переименовать файл палитры в colors.tdesktop-theme, положить рядом обои с именем background.jpg, background.png, tiled.jpg или tiled.png, заархивировать оба файла так, чтобы схема лежала в корне архива, и переименовать .zip в .tdesktop-theme.
- Откройте Settings → Chat settings → Chat background.
- Нажмите Choose file и выберите
digitable-focus-<палитра>.tdesktop-palette. В диалоге он перечислен рядом с.tdesktop-theme. - Telegram покажет предпросмотр — нажмите Save theme.
Файл можно просто перетащить в любой чат, затем открыть загруженный файл и подтвердить в окне предпросмотра. Палитра Telegram объявляет около 510 констант, пропущенное берётся из встроенного умолчания. Покрыты рамка окна, заголовок, меню, список чатов, пузыри сообщений, поле ввода, просмотрщик медиа, боковая панель и тосты — всё, что видно при обычной работе. Редко открываемые экраны (окна звонков, графики статистики, экраны Telegram Stars, подчёркивания проверки орфографии) остаются штатными, но они акцентные, а не белые, поэтому не читаются как неоформленные. Откат — Settings → Chat settings и любая встроенная тема.
Thunderbirdтема почтового клиентапостоянная установка — своя подпись
В архиве: 3 папки с manifest.json
Ручная досборка Thunderbird на релизных сборках требует подписи дополнений, поэтому постоянная установка возможна только с подписанным пакетом. Подпись — шаг покупателя, для него нужен аккаунт на addons.thunderbird.net.
- Примерить без подписи: Tools → Developer Tools → Debug Add-ons или
about:debugging#/runtime/this-thunderbirdв адресной строке контентной вкладки, дальше Load Temporary Add-on иmanifest.jsonвнутри папки палитры. Тема применяется сразу и снимается при следующем запуске. - Поставить навсегда: заархивируйте содержимое папки палитры с
manifest.jsonв корне архива и переименуйте его в.xpi. - Загрузите архив на addons.thunderbird.net как unlisted-дополнение и скачайте подписанный
.xpi. - Поставьте его через Add-ons and Themes → шестерёнка → Install Add-on From File.
Конфиги кладутся в любая папка, дальше Load Temporary Add-on в about:debugging
Смена палитры — Add-ons and Themes → Themes, включить другую запись: активной остаётся одна. Откат — удалить запись и вернуть System theme, Light или Dark.
Digit Agentоткрытый агент и проектный контекстбесплатный гайд
Открыто: инструкция, встроенный скин digitable, шаблон AGENTS.md и ACP-конфигурация
- Установите Digit официальным скриптом:
curl -fsSL https://raw.githubusercontent.com/digitable-lol/digit/main/scripts/install.sh | bash. - Запустите
digit setup, выберите локальную модель или собственный OpenAI-совместимый endpoint. Отдельная чужая cloud-интеграция не требуется. - Для Ollama на Apple Silicon:
ollama pull qwen3.5:4b, затем закрепите пресет —digit config set model.default digit-local; на один запуск хватитdigit -m digit-local. Командаdigit model— интерактивный выбор и аргумента не принимает. - В корне проекта создайте
AGENTS.md: опишите назначение продукта, команды сборки и тестов, ограничения и критерии готовности. Digit загрузит его как проектный контекст.# AGENTS.md ## Product Коротко опишите продукт и пользователей. ## Commands - build: команда сборки - test: команда тестов ## Constraints - не менять пользовательские данные без подтверждения - проверять результат перед завершением - Для Zed, JetBrains и других ACP-клиентов укажите команду
digit-acp. Для терминала запускайтеdigit, для Desktop —digit desktop. - Проверьте установку:
digit doctor, затем попросите Digit назвать активный каталог данных и доступные skills Digitable.
Проверка digit doctor
Digit и этот гайд открыты: покупать Workbench для установки агента не нужно. Workbench добавляет готовые темы, Engineering Compendium и расширенные SDD/ADR/review-шаблоны. Digit хранит конфиг, память и ключи отдельно в ~/.digit; старый ~/.hermes автоматически не импортируется.
Blender MCPагент лепит 3D прямо в Blenderбесплатный гайд
Открыто: инструкция, run.sh, startup.py и аддон с патчем скриншотов
- Склонируйте набор:
git clone https://github.com/digitable-lol/blender-mcp. - Поставьте Blender 4.5 LTS или новее — обычную сборку с интерфейсом, не
blender-headless. Проверено на 4.5.11 LTS. - На сервере без монитора доставьте
xvfb:sudo apt install xvfb.run.shсам поднимет виртуальный дисплей и программный рендерер llvmpipe. - Запустите Blender:
./run.sh start. Скрипт ищет бинарь в$BLENDER, затем вPATH, затем в~/opt/blender/blender— свой путь передайте какBLENDER=/путь/к/blender ./run.sh start. - Зарегистрируйте MCP-сервер в агенте. Путь до
uvxобязан быть абсолютным: десктопный клиент не наследуетPATHвашей интерактивной оболочки.claude mcp add blender --scope user \ -e DISABLE_TELEMETRY=1 -e BLENDER_MCP_DISABLE_TELEMETRY=1 -e MCP_DISABLE_TELEMETRY=1 \ -- "$(command -v uvx)" blender-mcp@1.6.4 - Убедитесь, что порт слушает, и попросите агента сделать скриншот вьюпорта — он обязан прийти цветным, а не чёрным.
Проверка ./run.sh status
Набор и гайд открыты, как и Digit: покупать Workbench ради 3D-пайплайна не нужно. Два места, где оригинальный blender-mcp не работает headless, здесь уже закрыты. Первое: аддон отказывается стартовать под blender -b, потому что раздаёт команды через bpy.app.timers, а они не тикают без цикла событий — поэтому запускается настоящий GUI под xvfb-run. Второе: get_viewport_screenshot читал передний буфер окна, который без композитора остаётся чёрным, и агент получал валидный чёрный PNG со статусом success — то есть слеп и не знал об этом; в наборе аддон пропатчен на офскрин-рендер через gpu.types.GPUOffScreen. Отдельно выключена телеметрия: оригинал включает её по умолчанию с обеих сторон и шлёт промпты, куски кода и скриншоты вьюпорта на сторонний Supabase. Помните про границу доверия: execute_blender_code исполняет произвольный Python с правами вашего пользователя, поэтому держите сокет на localhost и не открывайте чужие .blend при подключённом MCP.
Digitable Chatодноранговый эфемерный чат
Открыто: инструкция: комнаты, пароль, поведение за NAT
Ручная досборка Приложение под GPL-2.0-or-later и в архив не входит намеренно: положить его код внутрь платной поставки — значит распространить всю поставку на тех же условиях. Ссылка такой границы не переходит, поэтому здесь открытый гайд, а не файлы.
- Откройте
https://chat.digitable.life/— учётной записи нет, регистрации нет. - Публичная комната:
https://chat.digitable.life/public/<имя>. Имя — единственное, что её закрывает, поэтому берите неугадываемое:head -c 12 /dev/urandom | base32 | tr A-Z a-z | tr -d =. - Приватная комната:
https://chat.digitable.life/private/<имя>, пароль вводится на странице и в ссылку не попадает — из него и имени комнаты выводится ключ шифрования. - Ссылку и пароль передавайте разными каналами: вместе в одном сообщении они делают приватную комнату публичной.
Сервера у переписки нет: браузеры соединяются напрямую по WebRTC, сообщения не хранятся нигде и исчезают, когда закрыта последняя вкладка — не удаляются по запросу, а просто никуда не записываются. Отсюда и ограничения: истории нет, офлайн-доставки нет, участник должен быть на связи одновременно с вами. Прямое соединение иногда не устанавливается — в жёстких корпоративных сетях и при симметричном NAT; тогда комната открывается, а собеседник не появляется. Проверять это надо до того, как договорились о встрече в комнате.
MCP-серверы2
Не тема в конфиге программы, а инструмент в руках агента. Оба сервера отдают наружу детерминированный результат: та же команда с теми же аргументами даёт тот же ответ, и его можно перепроверить без модели. Подключаются одной записью в конфиге MCP-клиента.
Digit Tools95 утилит одним самодостаточным бинарёмсборка из исходников
Открыто: бинарь digit-tools-mcp и машиночитаемый каталог схем
Ручная досборка Готовых бинарей в поставке нет: собран только Linux-вариант, а каталог под GPL-3.0-only в платный архив не кладётся намеренно. Запрет не лицензионный: распространение за плату GPL-3.0-only разрешает прямо, но оживляет обязанность отдать покупателю исходники — поэтому бинарь ставит пользователь сам, из первоисточника.
- Соберите сервер из исходников:
npm ci, затемnpm run build:binary. На выходе самодостаточный бинарьdist/digit-tools-mcpна 107 МиБ — рантайм на хосте ему не нужен. - Прогоните
npm run smoke:binary: он исполняет через настоящий stdio все 114 примеров каталога. Юнит-тестов мало — именно этот прогон поймал дефект загрузки шрифтов, который они пропускали. - Положите бинарь туда, где он будет жить, например в
~/.digit/mcp/digit-tools-mcp. - Впишите запись в конфиг своего MCP-клиента. Не переписывайте файл целиком: в нём уже могут лежать чужие серверы — слияние с резервной копией делает
toolchain/mcp-config.sh.sh toolchain/mcp-config.sh --file <конфиг вашего MCP-клиента> \ --server digit-tools --command ~/.digit/mcp/digit-tools-mcp --plan - Убедитесь, что клиент видит ровно три инструмента:
tools_categories,tools_list,tools_execute. Девяноста пяти там быть не должно: каталог подаётся в два шага, иначе схемы всех утилит уезжают в контекст модели.
Проверка npm run smoke:binary
Лицензия GPL-3.0-only унаследована от it-tools: 95 утилит перенесены из 75 исходных из 86. Компонент открытый, ставить его бесплатно можно уже сейчас — заблокировано только включение в платный архив. Известное ограничение: таймаут не прерывает синхронную работу, и тяжёлое регулярное выражение всё ещё способно заблокировать процесс.
FTS Gateгейт исполняемых спецификацийсборка из исходников
Открыто: MCP-сервер, CLI fts-gate, библиотека морфизмов и GBNF-грамматика
Ручная досборка Готового артефакта в поставке нет: сервер собирается из исходников, а библиотека морфизмов собрана под материалы курсов и чужому проекту не подходит.
- Проверьте, что на хосте Node 20 или новее: гейт не бинарь, он исполняется рантаймом.
- Соберите гейт:
npm install && npm run build. Тесты — 62 у гейта и 59 у самого FTS. - Убедитесь, что библиотека морфизмов читается:
node dist/src/cli.js morphisms --prettyпечатает 29 записей с уровнями доверия. - Впишите запись в конфиг клиента тем же слиянием, что и для каталога утилит.
sh toolchain/mcp-config.sh --file <конфиг вашего MCP-клиента> \ --server fts-gate --command node --arg ~/.digit/mcp/fts-gate/mcp.js --plan - Проверьте протокол на отказе: дайте гейту спецификацию с морфизмом, которого нет в библиотеке. Отказ обязан прийти обычным результатом с кодом
UNVERIFIED_MORPHISM, а не ошибкой вызова.
Проверка node dist/src/cli.js morphisms --pretty
Наружу торчат два read-only инструмента: fts_gate_check и fts_morphisms_list. FTS отвечает, согласована ли спецификация сама с собой; гейт — допустима ли каждая её предпосылка: 8 кодов отказа плюс детектор структурных логических ошибок ещё на 8. Границу гарантии надо знать заранее: гейт не проверяет истинность объявленного закона, а переносит доверие из текста в ревьюируемый список — контрпример со ставкой налога проходит весь формализм зелёным. Лицензия гейта — BSD 2-Clause, как и у языка: заявление про Apache-2.0 осталось от первой публикации репозитория и исправлено в его NOTICE. Встроенной копии FTS нет — зависимость притянута фиксированным коммитом 6dceb8d, тем самым, которым лицензия и была сменена.
По этому запросу ничего не нашлось. Проверьте написание или сбросьте фильтр — цель может называться иначе, чем пакет.
Где придётся доделать руками
Эти 11 целей нельзя поставить копированием файла, и мы не прячем это за «работает везде». Остальные 42 ставятся штатным импортом схемы, строкой в конфиге или копированием в каталог тем.
- Chromeнужен режим разработчика
- Digitable Chatнужна своя сборка или Stylus
- Discordтребует мод, против ToS
- Firefoxпостоянная установка — своя подпись
- IT Toolsнужна своя сборка или Stylus
- Slackчасть панелей остаётся штатной
- Telegram Desktopобои — своя упаковка в архив
- Thunderbirdпостоянная установка — своя подпись
- Digitable Chat
- Digit Toolsсборка из исходников
- FTS Gateсборка из исходников
Как это выглядит в работе
Одна палитра во всех инструментах сразу. Ниже — те же три режима, что и в архиве: снимки реальных программ и макеты интерфейсов, отрисованные по цветам из тех же файлов тем.
Щёлкните по снимку — он откроется крупно, рядом с конфигом этой цели и путём, куда его класть.
Снято с программ
Настоящий вывод инструментов: подсветка, графики и списки — не рисунок.
Макеты интерфейсов
GUI этих программ в сборочном окружении не запустить, поэтому раскладка отрисована, а цвета взяты из файлов темы. Это макеты, а не снимки.
Конфиги открыты. Платят за собранный набор.
Всё, что показано выше, можно скопировать и разложить руками. В архиве это уже разложено: 47 наборов файлов из одного источника токенов, Compendium из 9 томов, 9 рабочих шаблонов и установщик, который делает раскладку сам.