Integrations catalogue
All 53 Digitable Focus targets with instructions and the configs themselves: filter by category, find your tool by name and see how the palette sits in its interface. Installing and configuring this by hand is free — what people buy is the assembled archive.
53 targets. One palette in all of them.
Carbon, Paper and Signal are built from one set of tokens, so in the terminal, the editor, a git diff and a messenger these are literally the same colours in the same roles: background, accent, string, keyword, error. You choose the palette once — after that it repeats in every integration.
- Carbonthe main dark one
- Paperlight, for daytime work
- Signalhigh contrast
It is not only the instructions that are open: every card carries the configs themselves — all three palettes, in full, with a “Copy” button. Building Digitable Focus for yourself by hand is free and needs no purchase. What people pay for is the assembled archive: 47 ready file sets from a single token source, the Compendium, the templates and an installer that lays it all out across your directories itself.
Терминалы и мультиплексоры12
Палитра приходит файлом схемы или строкой include. Мультиплексоры красят только свою обвязку — ANSI-цвета остаются за эмулятором, поэтому tmux и Zellij ставят в пару с терминалом.
Alacrittyпресет цветов через import
In the archive: 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тема по имени файла
In the archive: 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
In the archive: 3 скрипта .sh
- Сохраните текущие настройки:
dconf dump /org/gnome/terminal/ > gnome-terminal-backup.dconf. - Скопируйте скрипты куда угодно, например в
~/.local/share/digitable-focus/. - Примените палитру к профилю по умолчанию:
sh digitable-focus-carbon.sh. - Откройте новую вкладку. Уже открытые перекрашиваются сразу.
Configs go into любой каталог, например ~/.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
In the archive: 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
In the archive: 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
In the archive: 3 файла .conf
- Скопируйте
.conf-файлы в~/.config/kitty/. - Добавьте один include в конец
~/.config/kitty/kitty.conf:include digitable-focus-carbon.conf. - Перечитайте конфиг:
ctrl+shift+f5или перезапуск Kitty.
Держите ровно один include. Kitty применяет последнее прочитанное значение, поэтому include в конце файла перекрывает ваши цветовые настройки выше. Смена палитры — заменить имя файла в строке include и перечитать конфиг.
Konsoleцветовая схема профиля
In the archive: 3 файла .colorscheme
- Скопируйте
.colorscheme-файлы в~/.local/share/konsole/— до того, как откроете настройки: Konsole пересканирует папку только при открытии диалога. - Settings → Configure Konsole → Profiles, откройте профиль на редактирование.
- На вкладке Appearance выберите Digitable Focus Carbon.
- Нажмите OK — открытые вкладки перекрашиваются сразу.
Цвет курсора и выделения Konsole хранит в профиле, а не в цветовой схеме. Чтобы они совпали с палитрой, выставьте курсор в акцентный цвет там же, на вкладке Appearance. Под каждую палитру удобно завести отдельный профиль и переключаться через File → New Tab.
Tabbyблок colorScheme в конфиге
In the archive: 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статус-строка и рамки панелей
In the archive: 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 из каталога
In the archive: 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
In the archive: schemes.json
- Откройте настройки Windows Terminal в виде JSON.
- Скопируйте объекты из
schemes.jsonв массивschemes. - Выберите схему в нужном профиле.
Zellijстатус-бар, вкладки, рамки
In the archive: 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подсветка в пейджере
In the archive: 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.
Check 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
In the archive: 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
Check 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тема системного монитора
In the archive: 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
In the archive: 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
Check 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цвета листинга каталога
In the archive: 3 палитры, .sh и .fish
- Скопируйте нужный файл в
~/.config/eza/. - Bash или zsh — добавьте
source ~/.config/eza/digitable-focus-carbon.shв rc-файл. fish — скопируйте.fish-файл в~/.config/fish/conf.d/. - Откройте новую оболочку.
Check 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цвета информационной заставки
In the archive: 3 файла .jsonc
- Положите один файл на место конфига:
mkdir -p ~/.config/fastfetch && cp digitable-focus-carbon.jsonc ~/.config/fastfetch/config.jsonc. - Уже есть свой
config.jsonc— перенесите в него блокиlogo.colorиdisplay: палитру несут они. Массивmodulesвнизу файла нужен только затем, чтобы цветам было что красить; удалите его, и fastfetch вернётся к своему списку модулей. - Запустите
fastfetch.
Check 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цвета оболочки и пейджера
In the archive: 3 файла .fish
- Скопируйте один файл в
~/.config/fish/conf.d/. - Откройте новую оболочку:
exec fish.
Check 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цвета интерактивного поиска
In the archive: 3 палитры, .sh и .fish
- Скопируйте нужный файл в
~/.config/fzf/. - Bash или zsh — добавьте
source ~/.config/fzf/digitable-focus-carbon.shв rc-файл. fish — скопируйте.fish-файл в~/.config/fish/conf.d/. - Откройте новую оболочку, чтобы переменная экспортировалась.
Check 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-панели
In the archive: 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
In the archive: 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цвета файлового менеджера
In the archive: 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.
Check 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 объявлены устаревшими — они ещё работают, но на таких сборках последние две строки фрагмента можно убрать.
Уроборосзапись о каждом вызове настоящего запускабесплатный гайд
Open: инструкция, три способа установки и разбор записи, общий для шести языков
- Поставьте инструмент любым из трёх способов. 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.
Check 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цвета сегментов промпта
In the archive: 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.
Check 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палитра ролей в промпте
In the archive: 3 файла .toml
- Сохраните текущий конфиг:
cp ~/.config/starship.toml{,.bak}. - Скопируйте один файл поверх или допишите его содержимое, если модули уже настроены. Строка
palette = "..."должна остаться одна, вверху файла. - Перезагрузите оболочку.
Check 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цветовая схема файлового менеджера
In the archive: 3 файла .vifm
- Скопируйте
.vifm-файлы в~/.config/vifm/colors/, создав папку, если её нет. На сборке со старой раскладкой каталог другой:~/.vifm/colors/. - Примерьте прямо в работающей программе:
:colorscheme digitable-focus-carbon. - Чтобы схема осталась, добавьте ту же строку без двоеточия в
~/.config/vifm/vifmrc:colorscheme digitable-focus-carbon.
Check 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подсветка ввода и промпт
In the archive: 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 со шрифт-локом
In the archive: 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 и синтаксиса
In the archive: 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
In the archive: 3 файла .icls
- Откройте Settings → Editor → Color Scheme.
- Нажмите шестерёнку рядом с именем схемы и выберите Import Scheme...
- Укажите один
.icls-файл и подтвердите. - Выберите импортированную схему в списке Scheme и примените.
Configs go into импорт в 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
In the archive: 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цветовая схема редактора
In the archive: 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
In the archive: 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расширение с тремя темами
In the archive: папка расширения
- Скопируйте папку в
~/.vscode/extensions/digitable.focus-0.1.0. - Перезапустите VS Code.
- Откройте Preferences: Color Theme.
- Выберите Carbon, Paper или Signal.
Расширение не исполняет код и не собирает телеметрию.
Zedсемейство тем одним файлом
In the archive: 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тема окна браузеранужен режим разработчика
In the archive: 3 папки расширения
Manual finishing
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цвета затемнения сайтов
In the archive: 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.
Configs go into импорт в попапе 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
In the archive: 3 файла .css
Manual finishing
У 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 подставляет пользовательские стили после стилей страницы — именно это теме и нужно.
Configs go into каталог сборки рядом с 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
In the archive: 3 файла .theme.css
Manual finishing У 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тема окна браузерапостоянная установка — своя подпись
In the archive: 3 папки с manifest.json
Manual finishing
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 и подтвердите установку.
Configs go into любая папка, дальше Load Temporary Add-on в about:debugging
Смена палитры — about:addons → Темы, включить другую: Firefox держит активной одну тему. Удаление — там же, потом верните свою прежнюю тему. Временные дополнения исчезают при перезапуске сами.
IT Toolsтема набора веб-утилитнужна своя сборка или Stylus
In the archive: 3 файла .css
Manual finishing
У 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 подставляет пользовательские стили после стилей страницы — именно это теме и нужно.
Configs go into каталог, который сервер отдаёт как корень сайта, — рядом с 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 для графа
In the archive: 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-сниппет хранилища
In the archive: 3 файла .css
- Скопируйте один CSS-файл в
.obsidian/snippets/вашего хранилища. - Откройте Settings → Appearance → CSS snippets.
- Включите выбранный сниппет Digitable Focus.
Держите включённой одну палитру за раз.
qutebrowserцвета интерфейса браузера
In the archive: 3 фрагмента .py
- Скопируйте один файл в
~/.config/qutebrowser/. - Добавьте одну строку в
~/.config/qutebrowser/config.py. Если у вас есть вызовconfig.load_autoconfig(), строка обязана идти после него: он заново применяет всё, что вы когда-либо меняли через:set, включая цвета, и иначе перекроет палитру.config.source('digitable-focus-carbon.py') - Перечитайте конфиг из работающего окна командой
:config-sourceили перезапустите qutebrowser.
Check 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строка цветов интерфейсачасть панелей остаётся штатной
In the archive: 3 файла .txt
Manual finishing После редизайна Slack строка красит уже не все поверхности: клиент раскладывает слоты на свои встроенные цвета, поэтому боковая панель, активный элемент и бейдж упоминаний следуют палитре, а часть панелей остаётся штатной. Это ограничение Slack, а не пробел в файле — поддерживаемого способа перекрасить остальное без патча десктоп-клиента нет.
- Откройте файл нужной палитры и скопируйте строку из десяти слотов.
- В Slack нажмите на свой аватар → Preferences → Appearance.
- Выберите Dark или Light под палитру — Paper светлая, остальные две тёмные, — затем Custom theme.
- Рядом с Theme Colors нажмите Import theme, выберите Paste your legacy theme colors, вставьте строку и нажмите Apply.
Configs go into строка вставляется в Preferences → Appearance → Import theme
В старых сборках диалога импорта нет: там разверните Create a custom theme в разделе Colors и вставьте строку в поле с подписью про копирование значений. Такие сборки игнорируют последние два слота, поэтому в том же файле лежит и строка из восьми. Slack хранит одну пользовательскую тему на клиент. Откат — Preferences → Appearance и любая встроенная тема.
Telegram Desktopпалитра клиентаобои — своя упаковка в архив
In the archive: 3 файла .tdesktop-palette
Manual finishing
Сама палитра ставится файлом, распаковывать нечего. Архив .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тема почтового клиентапостоянная установка — своя подпись
In the archive: 3 папки с manifest.json
Manual finishing 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.
Configs go into любая папка, дальше Load Temporary Add-on в about:debugging
Смена палитры — Add-ons and Themes → Themes, включить другую запись: активной остаётся одна. Откат — удалить запись и вернуть System theme, Light или Dark.
Digit Agentоткрытый агент и проектный контекстбесплатный гайд
Open: инструкция, встроенный скин 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.
Check digit doctor
Digit и этот гайд открыты: покупать Workbench для установки агента не нужно. Workbench добавляет готовые темы, Engineering Compendium и расширенные SDD/ADR/review-шаблоны. Digit хранит конфиг, память и ключи отдельно в ~/.digit; старый ~/.hermes автоматически не импортируется.
Blender MCPагент лепит 3D прямо в Blenderбесплатный гайд
Open: инструкция, 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 - Убедитесь, что порт слушает, и попросите агента сделать скриншот вьюпорта — он обязан прийти цветным, а не чёрным.
Check ./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одноранговый эфемерный чат
Open: инструкция: комнаты, пароль, поведение за NAT
Manual finishing Приложение под 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 утилит одним самодостаточным бинарёмсборка из исходников
Open: бинарь digit-tools-mcp и машиночитаемый каталог схем
Manual finishing Готовых бинарей в поставке нет: собран только 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. Девяноста пяти там быть не должно: каталог подаётся в два шага, иначе схемы всех утилит уезжают в контекст модели.
Check npm run smoke:binary
Лицензия GPL-3.0-only унаследована от it-tools: 95 утилит перенесены из 75 исходных из 86. Компонент открытый, ставить его бесплатно можно уже сейчас — заблокировано только включение в платный архив. Известное ограничение: таймаут не прерывает синхронную работу, и тяжёлое регулярное выражение всё ещё способно заблокировать процесс.
FTS Gateгейт исполняемых спецификацийсборка из исходников
Open: MCP-сервер, CLI fts-gate, библиотека морфизмов и GBNF-грамматика
Manual finishing Готового артефакта в поставке нет: сервер собирается из исходников, а библиотека морфизмов собрана под материалы курсов и чужому проекту не подходит.
- Проверьте, что на хосте 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, а не ошибкой вызова.
Check 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, тем самым, которым лицензия и была сменена.
Nothing matched that query. Check the spelling or clear the filter — the target may be named differently from its package.
Where you will have to finish by hand
These 11 targets cannot be installed by copying a file, and we do not hide that behind “works everywhere”. The other 42 install through a regular scheme import, one line in a config, or a copy into the themes directory.
- Chromeнужен режим разработчика
- Digitable Chatнужна своя сборка или Stylus
- Discordтребует мод, против ToS
- Firefoxпостоянная установка — своя подпись
- IT Toolsнужна своя сборка или Stylus
- Slackчасть панелей остаётся штатной
- Telegram Desktopобои — своя упаковка в архив
- Thunderbirdпостоянная установка — своя подпись
- Digitable Chat
- Digit Toolsсборка из исходников
- FTS Gateсборка из исходников
How it looks at work
One palette across every tool at once. Below are the same three modes as in the archive: screenshots of real programs and interface mock-ups drawn from the colours of those same theme files.
Click a shot — it opens large, next to the config for that target and the path to put it in.
Captured from the programs
Real tool output: highlighting, graphs and listings — not a drawing.
Interface mock-ups
The GUI of these programs cannot be launched in the build environment, so the layout is drawn while the colours come from the theme files. These are mock-ups, not screenshots.
The configs are open. What you pay for is the assembled set.
Everything shown above can be copied and laid out by hand. In the archive it is laid out already: 47 file sets from a single token source, a Compendium in 9 volumes, 9 working templates and an installer that does the placement itself.