- Зачем: - нужен воспроизводимый способ установки на новую машину и защита от перезаписи tracked-файлов ИИ-инструментами. - Что: - добавлен install.sh: stow всех пакетов, создание settings.local.json, chmod 444 на settings.json, автопатч .bashrc. - claude/settings.json разделён на базовый (permissions, statusLine) и локальный (model, effortLevel в settings.local.json). - добавлен .concept-software.ru в NO_PROXY в server-env-setup и bash_functions. - README переработан: install.sh как рекомендуемый способ, документация двухуровневых настроек Claude, Developer Mode hint, расширенное описание VS Code прокси. - Проверка: - git clone + ./install.sh на чистой машине.
Dotfiles
Персональные конфигурационные файлы для настройки рабочего окружения.
📦 Содержимое
Bash
- Файлы:
bash/.bash_custom,bash/.bash_functions,bash/.bash_prompt - Подключение кастомных bash-файлов (функции, prompt, секреты) поверх стандартного
~/.bashrc - Кастомный двухстрочный prompt (подключается из
~/.bash_prompt) - Поддержка цветного вывода и автодополнения
Tmux
- Файл:
tmux/.tmux.conf - Два префикса:
Ctrl+b(стандартный) иCtrl+Space(удобный) - Визуальный стиль с синей цветовой схемой
- Vi-режим для копирования
- Горячие клавиши:
|/-— разделение панелейAlt+стрелки— изменение размера панелей и переключение оконr— перезагрузка конфига
Vim
- Файл:
vim/.vimrc - Минималистичная конфигурация без плагинов
- 2 пробела вместо табов (оптимально для YAML/XML)
- Поддержка мыши и подсветка поиска
- Leader key:
Space<Space>w— сохранить<Space>h— убрать подсветку поиска<Space>p— вставка без форматирования
Zed
- Директория:
zed/.config/zed/ - Структура для конфигурации Zed редактора
VS Code (WSL)
- Файл:
vscode/.vscode-server/server-env-setup - Поддержка
~/.vscode-server/server-env-setupдля VS Code Server в WSL - Подгрузка
~/.env.secretsдля расширений, задач/debug и терминалов VS Code - Автоматическая настройка прокси: если
hproxy.localрезолвится, выставляютсяHTTP_PROXY,HTTPS_PROXY,ALL_PROXY(socks5),NO_PROXYи их lowercase-варианты - Режим
fail-open: если~/.env.secretsотсутствует или не загружается — warning в stderr, VS Code продолжает запуск
Opencode
- Директория:
opencode/.config/opencode/ - Конфигурация AI-ассистента opencode с MCP-серверами:
- context7 — документация библиотек
- web-reader — чтение веб-страниц
- web-search-prime — поиск в интернете
- zread — чтение GitHub репозиториев
- playwright — браузерная автоматизация
- Требует переменных окружения (см.
.env.example) - Скиллы берутся из общего пакета
agents/.agents/skills/через симлинк~/.config/opencode/skills
Agents (shared skills)
- Директория:
agents/.agents/skills/ - Каноничное место для общих скиллов в формате
~/.agents/skills/<name>/SKILL.md
Codex
- Директория:
codex/.codex/skills/ - Тонкие симлинки в
~/.codex/skills/на общие skills из~/.agents/skills/
Claude
- Директория:
claude/.claude/ - Тонкий симлинк
~/.claude/skillsна общие skills из~/.agents/skills/ - Двухуровневые настройки:
settings.json(в dotfiles, read-only) — стабильная база: permissions, statusLinesettings.local.json(локальный, не в git) — машинно-специфичное: model, effortLevel
- Claude Code мержит оба файла,
settings.local.jsonимеет приоритет settings.jsonзащищёнchmod 444, чтобы Claude Code не перезаписывал tracked файл
Gemini
- Директория:
gemini/.gemini/ - Политики для Gemini CLI: pre-approved readonly команды
🚀 Установка
Автоматическая (рекомендуется)
sudo apt install stow
git clone https://github.com/ddmitry/dotfiles ~/dotfiles
cd ~/dotfiles
./install.sh
Скрипт install.sh:
- Применяет все stow пакеты
- Создаёт
~/.claude/settings.local.jsonс дефолтными model/effortLevel - Защищает
settings.jsonот перезаписи (chmod 444) - Автоматически добавляет подключение bash_custom в
~/.bashrc
Stow вручную
sudo apt install stow
cd /path/to/dotfiles
stow bash tmux vim zed vscode agents opencode codex claude gemini
После stow добавьте в ~/.bashrc (если не используете install.sh):
[ -f ~/.bash_custom ] && source ~/.bash_custom
Создайте локальные настройки Claude:
cat > ~/.claude/settings.local.json <<'EOF'
{
"model": "opus",
"effortLevel": "high"
}
EOF
Windows (chezmoi)
Для Windows используется chezmoi — кросс-платформенный менеджер dotfiles.
💡 Примечание: chezmoi также работает на Linux/WSL, но stow предпочтительнее для полной функциональности.
⚠️ Требования:
- Developer Mode должен быть включён (для создания симлинков)
Settings → System → For developers → Developer Mode → On
- PowerShell 5.0+ или PowerShell Core
Установка (два шага):
# 1. Установка chezmoi
winget install twpayne.chezmoi
# 2. Инициализация (клонирует репо)
chezmoi init ddmitry/dotfiles
# 3. Первое применение (подготавливает структуру)
chezmoi apply
# 4. Второе применение (копирует файлы в правильные места)
chezmoi apply
Примечания:
- После шага 4 все файлы будут на месте:
~/.vimrc,~/.agents/skills/,~/.config/opencode/, и т.д. - Симлинки для skills создаются автоматически только если включен Developer Mode
- Без Developer Mode AI-ассистенты будут работать с прямыми копиями skills
Что доступно на Windows:
- ✅ Vim
- ✅ Agents (shared skills)
- ✅ Codex (с симлинками на skills)
- ✅ Claude (с симлинками на skills)
- ✅ Opencode (с симлинками на skills)
Что НЕ доступно на Windows:
- ❌ Bash (Linux-only)
- ❌ Tmux (Linux-only)
- ❌ Zed (пути конфигурации отличаются)
🔧 Требования
Linux/WSL
- Linux (протестировано на Ubuntu)
- Bash 4.0+
- Tmux 2.0+
- Vim 8.0+
Windows
- Windows 10/11 с Developer Mode
- PowerShell 5.0+ или PowerShell Core
- chezmoi
📝 Дополнительные файлы
Для полной настройки создайте:
~/.bash_aliases— персональные алиасы~/.env.secrets— приватные переменные окружения (API ключи)
🔑 Переменные окружения
Кастомные функции bash
Файл bash/.bash_functions содержит пользовательские функции (proxy_on/off, myip и др.).
При использовании stow bash он будет доступен как ~/.bash_functions.
Приватные переменные (секреты)
- Скопируйте шаблон:
cp bash/.env.secrets.example ~/.env.secrets
- Отредактируйте и добавьте API ключи:
# Context7 API (https://context7.com)
export CONTEXT7_API_KEY="your_context7_api_key_here"
# Z.AI API для LLM, поиска и чтения (https://z.ai)
export ZAI_API_KEY="your_zai_api_key_here"
Файл ~/.env.secrets автоматически подгружается при старте shell.
VS Code Server в WSL
Файл vscode/.vscode-server/server-env-setup выполняется при каждом старте VS Code Server в WSL и делает две вещи:
-
Загружает
~/.env.secrets— API ключи становятся доступны расширениям, задачам и терминалам VS Code. Если файл отсутствует или содержит ошибку, выводится warning в stderr, запуск не блокируется. -
Настраивает прокси — если
hproxy.localрезолвится (через/etc/hostsили DNS в режиме mirror), автоматически выставляются:HTTP_PROXY/http_proxy→http://hproxy.local:12334HTTPS_PROXY/https_proxy→http://hproxy.local:12334ALL_PROXY/all_proxy→socks5://hproxy.local:12334NO_PROXY/no_proxy→hproxy.local,localhost,127.0.0.1,.concept-software.ru
После установки/обновления файла сделайте одно из действий:
Developer: Reload Windowв VS Code- или
Remote-WSL: Reconnect to WSL
Если у вас уже есть локальный ~/.vscode-server/server-env-setup, stow может сообщить конфликт.
Тогда сохраните старую версию и примените stow повторно:
mv ~/.vscode-server/server-env-setup ~/.vscode-server/server-env-setup.bak.$(date +%Y%m%d%H%M%S)
stow -vt ~ vscode