# 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` - `w` — сохранить - `h` — убрать подсветку поиска - `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 - Режим `fail-open`: при проблеме с файлом выводится warning, запуск 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//SKILL.md` ### Codex - **Директория:** `codex/.codex/skills/` - Тонкие симлинки в `~/.codex/skills/` на общие skills из `~/.agents/skills/` ### Claude - **Директория:** `claude/.claude/` - Тонкий симлинк `~/.claude/skills` на общие skills из `~/.agents/skills/` ## 🚀 Установка ### Stow (рекомендуется) ```bash # Установка stow sudo apt install stow # Применение конфигов cd /path/to/dotfiles stow bash tmux vim zed vscode agents opencode codex claude ``` Важно: `bash` пакет кладет файлы `~/.bash_custom`, `~/.bash_functions`, `~/.bash_prompt`. Убедитесь, что ваш `~/.bashrc` содержит строку: ```bash [ -f ~/.bash_custom ] && source ~/.bash_custom ``` ### Ручная установка ```bash # Bash cp bash/.bash_custom ~/.bash_custom cp bash/.bash_functions ~/.bash_functions cp bash/.bash_prompt ~/.bash_prompt # Подключите кастомные настройки в ~/.bashrc (один раз) # [ -f ~/.bash_custom ] && source ~/.bash_custom source ~/.bashrc # Tmux cp tmux/.tmux.conf ~/ tmux source-file ~/.tmux.conf # Vim cp vim/.vimrc ~/ # Zed mkdir -p ~/.config/zed cp zed/.config/zed/* ~/.config/zed/ 2>/dev/null || true # VS Code (WSL) mkdir -p ~/.vscode-server cp vscode/.vscode-server/server-env-setup ~/.vscode-server/server-env-setup chmod +x ~/.vscode-server/server-env-setup # Opencode mkdir -p ~/.config/opencode cp opencode/.config/opencode/* ~/.config/opencode/ # Agents (shared skills) mkdir -p ~/.agents/skills cp -r agents/.agents/skills/* ~/.agents/skills/ # Codex (bridge to shared skills) mkdir -p ~/.codex/skills ln -snf ~/.agents/skills/conventional-commits ~/.codex/skills/conventional-commits # Claude (bridge to shared skills) mkdir -p ~/.claude ln -snf ~/.agents/skills ~/.claude/skills ``` ### Windows (chezmoi) Для Windows используется [chezmoi](https://www.chezmoi.io/) — кросс-платформенный менеджер dotfiles. > 💡 **Примечание:** chezmoi также работает на Linux/WSL, но stow предпочтительнее для полной функциональности. **⚠️ Требования:** - Developer Mode должен быть включён (для создания симлинков) - PowerShell 5.0+ или PowerShell Core **Установка (два шага):** ```powershell # 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](https://www.chezmoi.io/) ## 📝 Дополнительные файлы Для полной настройки создайте: - `~/.bash_aliases` — персональные алиасы - `~/.env.secrets` — приватные переменные окружения (API ключи) ## 🔑 Переменные окружения ### Кастомные функции bash Файл `bash/.bash_functions` содержит пользовательские функции (proxy_on/off, myip и др.). При использовании `stow bash` он будет доступен как `~/.bash_functions`. ### Приватные переменные (секреты) 1. Скопируйте шаблон: ```bash cp bash/.env.secrets.example ~/.env.secrets ``` 2. Отредактируйте и добавьте API ключи: ```bash # 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 Для VS Code в WSL используется файл `~/.vscode-server/server-env-setup`. В этом репозитории он находится в `vscode/.vscode-server/server-env-setup` и подгружает `~/.env.secrets` в окружение VS Code Server. После установки/обновления файла сделайте одно из действий: - `Developer: Reload Window` в VS Code - или `Remote-WSL: Reconnect to WSL` Если у вас уже есть локальный `~/.vscode-server/server-env-setup`, stow может сообщить конфликт. Тогда сохраните старую версию и примените stow повторно: ```bash mv ~/.vscode-server/server-env-setup ~/.vscode-server/server-env-setup.bak.$(date +%Y%m%d%H%M%S) stow -vt ~ vscode ``` Скрипт работает в режиме `fail-open`: если `~/.env.secrets` отсутствует или содержит ошибку, VS Code продолжит запуск, а warning появится в логах. См. `.env.example` для дополнительной информации.