diff --git a/README.md b/README.md index 262c836..52ebba1 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,12 @@ - **Директория:** `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-серверами: @@ -59,6 +65,22 @@ ## 🚀 Установка +### 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 @@ -82,6 +104,11 @@ cp vim/.vimrc ~/ 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/ @@ -99,22 +126,6 @@ mkdir -p ~/.claude ln -snf ~/.agents/skills ~/.claude/skills ``` -### Stow (рекомендуется для Linux/WSL) - -```bash -# Установка stow -sudo apt install stow - -# Применение конфигов -cd /path/to/dotfiles -stow bash tmux vim zed agents opencode codex claude -``` - -Важно: `bash` пакет кладет файлы `~/.bash_custom`, `~/.bash_functions`, `~/.bash_prompt`. Убедитесь, что ваш `~/.bashrc` содержит строку: -```bash -[ -f ~/.bash_custom ] && source ~/.bash_custom -``` - ### Windows (chezmoi) Для Windows используется [chezmoi](https://www.chezmoi.io/) — кросс-платформенный менеджер dotfiles. @@ -202,4 +213,22 @@ 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` для дополнительной информации. diff --git a/vscode/.vscode-server/server-env-setup b/vscode/.vscode-server/server-env-setup new file mode 100755 index 0000000..465ed81 --- /dev/null +++ b/vscode/.vscode-server/server-env-setup @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +# VS Code WSL server startup hook. +# Loads private environment variables from ~/.env.secrets if available. + +secrets_file="$HOME/.env.secrets" + +warn() { + printf 'server-env-setup: %s\n' "$1" >&2 +} + +if [ ! -f "$secrets_file" ]; then + warn "warning: $secrets_file not found; starting without extra secrets." + return 0 2>/dev/null || exit 0 +fi + +# shellcheck disable=SC1090 +if ! source "$secrets_file"; then + warn "warning: failed to source $secrets_file; starting without extra secrets." +fi + +return 0 2>/dev/null || exit 0