docs(readme): убраны эмодзи и машинная типографика
- Зачем:
- README писался моделью, и в нем остались знаки, которых нет на
клавиатуре: их некому было подставить, потому что markdown правят
в редакторе кода, а не в Word с автозаменой.
- декоративные эмодзи в заголовках в русском тексте вне переписки
не ставят вовсе, это самый однозначный след генерации.
- Что:
- сняты эмодзи с шести заголовков и из комментария в блоке кода.
- 21 длинное тире заменено на дефис, 3 пары елочек на прямые кавычки,
7 стрелок на ->, буква "е" приведена к авторскому стилю в 14 словах.
- в разделе "Дизайн-решения" отглагольные существительные развернуты
в глаголы: "форсирование и изменение может сломать" стало
"если форсировать и менять, можно сломать".
- Проверка:
- якорных ссылок на заголовки ни внутри README, ни снаружи нет,
переименование ничего не ломает.
- блоки кода не тронуты: ни одно тире не попало внутрь фенсов,
10 фенсов и 62 строки таблиц на месте.
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
31f7fddcde
commit
f7e3f0e889
1 file changed
+41
-41
@@ -2,7 +2,7 @@
|
||||
|
||||
Персональные конфигурации для Linux/WSL (stow) и Windows (chezmoi).
|
||||
|
||||
## 🚀 Quick start
|
||||
## Quick start
|
||||
|
||||
### Linux / WSL
|
||||
|
||||
@@ -19,13 +19,13 @@ cd ~/dotfiles
|
||||
```powershell
|
||||
winget install --id Microsoft.PowerShell
|
||||
winget install twpayne.chezmoi
|
||||
# ⚠️ Перезапустить терминал, чтобы pwsh и chezmoi попали в PATH
|
||||
# Перезапустить терминал, чтобы pwsh и chezmoi попали в PATH
|
||||
chezmoi -S "$HOME\dotfiles\chezmoi" apply
|
||||
```
|
||||
|
||||
Chezmoi использует отдельный source dir `chezmoi/` внутри этого репозитория, не трогая stow/install.sh workflow.
|
||||
|
||||
## 🔧 Требования
|
||||
## Требования
|
||||
|
||||
### Linux / WSL
|
||||
|
||||
@@ -35,13 +35,13 @@ Chezmoi использует отдельный source dir `chezmoi/` внутр
|
||||
|
||||
### Windows
|
||||
|
||||
- Windows 10/11 + Developer Mode (Settings → System → For developers)
|
||||
- Windows 10/11 + Developer Mode (Settings -> System -> For developers)
|
||||
- PowerShell 7.x
|
||||
- [chezmoi](https://www.chezmoi.io/)
|
||||
|
||||
> `Windows PowerShell 5.1` остаётся legacy-режимом совместимости — не форсируется в UTF-8 и не тюнится.
|
||||
> `Windows PowerShell 5.1` остается legacy-режимом совместимости - не форсируется в UTF-8 и не тюнится.
|
||||
|
||||
## 📦 Что включено
|
||||
## Что включено
|
||||
|
||||
### Linux / WSL (stow)
|
||||
|
||||
@@ -52,7 +52,7 @@ Chezmoi использует отдельный source dir `chezmoi/` внутр
|
||||
| `tmux` | Два префикса (`Ctrl+b`, `Ctrl+Space`), vi-режим, split по `\|` / `-` |
|
||||
| `vim` | Минимальный .vimrc без плагинов, 2 пробела, leader = `Space` |
|
||||
| `wezterm` | Общий для Linux и Windows конфиг: одинаковые оформление и горячие клавиши |
|
||||
| `kitty` | `kitty.conf` и тема; `~/.config/kitty` остаётся настоящим каталогом, чтобы файлы kitty не попадали в репозиторий |
|
||||
| `kitty` | `kitty.conf` и тема; `~/.config/kitty` остается настоящим каталогом, чтобы файлы kitty не попадали в репозиторий |
|
||||
| `vscode` | `server-env-setup` для VS Code Server в WSL: секреты + авто-прокси |
|
||||
| `chatgpt` | Отдельный ярлык `ChatGPT Proxy` с запретом прямого запуска при ошибке |
|
||||
|
||||
@@ -60,14 +60,14 @@ Chezmoi использует отдельный source dir `chezmoi/` внутр
|
||||
|
||||
### Windows (chezmoi)
|
||||
|
||||
- **PowerShell 7 profile** — live-stub в `~/Documents/PowerShell/` загружает managed profile из `~/.config/powershell/profile.ps1`
|
||||
- **Git baseline** — `~/.gitconfig` с managed настройками, `~/.gitconfig.local` для персональных overrides
|
||||
- **Windows Terminal** — идемпотентный скрипт: PS7 по умолчанию, PS 5.1 как legacy, Azure Cloud Shell скрыт
|
||||
- **WezTerm** — `~/.wezterm.lua` как живая ссылка на общий конфиг для Windows и Linux
|
||||
- **UTF-8** — `chcp 65001` + `Console.InputEncoding/OutputEncoding` только для pwsh 7, не для PS 5.1
|
||||
- **Codex Proxy shortcut** — Start Menu ярлык для запуска Codex GUI с proxy-переменными
|
||||
- **Claude Proxy** — ярлык меню «Пуск» для запуска Claude Desktop с переменными прокси
|
||||
- **Extension points** — `~/.config/powershell/profile.extra.ps1` и `profile.d/*.ps1` для локальных добавок
|
||||
- **PowerShell 7 profile** - live-stub в `~/Documents/PowerShell/` загружает managed profile из `~/.config/powershell/profile.ps1`
|
||||
- **Git baseline** - `~/.gitconfig` с managed настройками, `~/.gitconfig.local` для персональных overrides
|
||||
- **Windows Terminal** - идемпотентный скрипт: PS7 по умолчанию, PS 5.1 как legacy, Azure Cloud Shell скрыт
|
||||
- **WezTerm** - `~/.wezterm.lua` как живая ссылка на общий конфиг для Windows и Linux
|
||||
- **UTF-8** - `chcp 65001` + `Console.InputEncoding/OutputEncoding` только для pwsh 7, не для PS 5.1
|
||||
- **Codex Proxy shortcut** - Start Menu ярлык для запуска Codex GUI с proxy-переменными
|
||||
- **Claude Proxy** - ярлык меню "Пуск" для запуска Claude Desktop с переменными прокси
|
||||
- **Extension points** - `~/.config/powershell/profile.extra.ps1` и `profile.d/*.ps1` для локальных добавок
|
||||
|
||||
### AI-инструменты (кросс-платформа)
|
||||
|
||||
@@ -76,12 +76,12 @@ Chezmoi использует отдельный source dir `chezmoi/` внутр
|
||||
| Инструмент | Что настраивается |
|
||||
|------------|-------------------|
|
||||
| **Agents** | Каноничное хранилище скиллов: `~/.agents/skills/<name>/SKILL.md` |
|
||||
| **Claude** | `~/.claude/skills` → симлинк на agents; `settings.local.json` → симлинк на репозиторий (базовые permissions + statusLine); `statusline-command.sh` → копия из репозитория; `settings.json` — управляется Claude Code |
|
||||
| **[Opencode](https://github.com/anomalyco/opencode)** | MCP-серверы (context7, web-reader, playwright и др.), `~/.config/opencode/skills` → симлинк на agents |
|
||||
| **Codex** | `~/.codex/skills/` → симлинки на agents |
|
||||
| **Claude** | `~/.claude/skills` -> симлинк на agents; `settings.local.json` -> симлинк на репозиторий (базовые permissions + statusLine); `statusline-command.sh` -> копия из репозитория; `settings.json` - управляется Claude Code |
|
||||
| **[Opencode](https://github.com/anomalyco/opencode)** | MCP-серверы (context7, web-reader, playwright и др.), `~/.config/opencode/skills` -> симлинк на agents |
|
||||
| **Codex** | `~/.codex/skills/` -> симлинки на agents |
|
||||
| **Gemini** | Политики для CLI: pre-approved readonly команды |
|
||||
|
||||
## ⚙️ Настройка
|
||||
## Настройка
|
||||
|
||||
### Секреты (`.env.secrets`)
|
||||
|
||||
@@ -89,7 +89,7 @@ Chezmoi использует отдельный source dir `chezmoi/` внутр
|
||||
cp bash/.env.secrets.example ~/.env.secrets
|
||||
```
|
||||
|
||||
Содержимое — API-ключи для AI-инструментов:
|
||||
Содержимое - API-ключи для AI-инструментов:
|
||||
|
||||
```bash
|
||||
export CONTEXT7_API_KEY="..." # https://context7.com
|
||||
@@ -108,7 +108,7 @@ Linux/Bash-интерфейс `proxy-client` поддерживает внешн
|
||||
[Установка, выбор режима, WSL и ежедневное использование](proxy-client/README.md)
|
||||
описаны рядом с пакетом. Windows PowerShell и ярлык `Codex Proxy` сохраняют
|
||||
прежнюю интеграцию с `hproxy.local:12334`. Ярлык запускает упакованное
|
||||
приложение через системный идентификатор и передаёт параметры Chromium
|
||||
приложение через системный идентификатор и передает параметры Chromium
|
||||
`--proxy-server` и `--proxy-bypass-list`. Сам Codex и его дочерние процессы
|
||||
читают общие proxy-переменные из `~/.codex/.env`; пользовательское окружение
|
||||
Windows не меняется. Если Codex уже запущен, его нужно полностью закрыть перед
|
||||
@@ -116,7 +116,7 @@ Windows не меняется. Если Codex уже запущен, его ну
|
||||
|
||||
`Claude Proxy` поддерживает как обычную установку в
|
||||
`%LOCALAPPDATA%\AnthropicClaude`, так и пакет из Microsoft Store. В обоих
|
||||
случаях он передаёт параметры Electron `--proxy-server` и
|
||||
случаях он передает параметры Electron `--proxy-server` и
|
||||
`--proxy-bypass-list`, чтобы прокси применялся ко всему трафику Claude Desktop.
|
||||
Ярлык использует скрытый промежуточный запускатель, поэтому Claude не открывает
|
||||
и не удерживает окно Windows Terminal.
|
||||
@@ -124,14 +124,14 @@ Windows не меняется. Если Codex уже запущен, его ну
|
||||
запуском через `Claude Proxy`.
|
||||
|
||||
Список хостов, которые идут мимо прокси, продублирован в профилях Codex,
|
||||
PowerShell и VS Code: одного общего файла у Windows и WSL нет. Эталон —
|
||||
PowerShell и VS Code: одного общего файла у Windows и WSL нет. Эталон -
|
||||
`DEFAULT_NO_PROXY_EXTRA` в `proxy-client/.local/bin/proxy-client`; меняя его,
|
||||
поправь и копии. Расхождение ловит `tests/test_proxy_env_sync.py` — раньше
|
||||
копии разъезжались, и один и тот же хост то шёл мимо прокси, то нет.
|
||||
поправь и копии. Расхождение ловит `tests/test_proxy_env_sync.py` - раньше
|
||||
копии разъезжались, и один и тот же хост то шел мимо прокси, то нет.
|
||||
|
||||
На Linux Stow-пакет `chatgpt` добавляет отдельный пользовательский ярлык
|
||||
`ChatGPT Proxy`. Штатный `ChatGPT` остаётся прямым. Прокси-ярлык получает
|
||||
активные настройки от `proxy-client`, передаёт Chromium явные параметры прокси
|
||||
`ChatGPT Proxy`. Штатный `ChatGPT` остается прямым. Прокси-ярлык получает
|
||||
активные настройки от `proxy-client`, передает Chromium явные параметры прокси
|
||||
и сохраняет proxy-переменные для дочерних процессов. Повторный запуск поднимает
|
||||
окно уже работающего проксированного экземпляра. Если ChatGPT открыт напрямую
|
||||
или прокси недоступен, новый режим не подмешивается: GNOME показывает
|
||||
@@ -148,13 +148,13 @@ PowerShell и VS Code: одного общего файла у Windows и WSL н
|
||||
| `core.eol` | `lf` | Дефолт ближе к Linux/macOS |
|
||||
| `core.quotepath` | `false` | Кириллица в путях читаема |
|
||||
| `core.longpaths` | `true` | Длинные пути на Windows |
|
||||
| `fetch.prune` | `true` | Убирать удалённые ветки |
|
||||
| `fetch.prune` | `true` | Убирать удаленные ветки |
|
||||
| `pull.ff` | `only` | Защита от случайных merge commit |
|
||||
| `init.defaultBranch` | `main` | — |
|
||||
| `init.defaultBranch` | `main` | - |
|
||||
|
||||
Персональные настройки (`user.name`, `user.email`, `core.editor`, `core.sshCommand`) живут в `~/.gitconfig.local`.
|
||||
|
||||
На Windows chezmoi при первом apply мигрирует существующий `~/.gitconfig` в `~/.gitconfig.local` и подставляет managed baseline. На Linux baseline задаётся вручную или через скрипты.
|
||||
На Windows chezmoi при первом apply мигрирует существующий `~/.gitconfig` в `~/.gitconfig.local` и подставляет managed baseline. На Linux baseline задается вручную или через скрипты.
|
||||
|
||||
Проверка: `git config --global --includes --list --show-origin`.
|
||||
|
||||
@@ -166,7 +166,7 @@ PowerShell и VS Code: одного общего файла у Windows и WSL н
|
||||
*.cmd text eol=crlf
|
||||
```
|
||||
|
||||
## 📖 Справочник
|
||||
## Справочник
|
||||
|
||||
### Bash-функции (`~/.config/proxy-client/shell.bash`)
|
||||
|
||||
@@ -176,7 +176,7 @@ PowerShell и VS Code: одного общего файла у Windows и WSL н
|
||||
| `proxy_off` | Очищает proxy-переменные |
|
||||
| `pclaude` / `pcodex` | Запуск Claude/Codex CLI через прокси с fail-fast pre-flight |
|
||||
| `myip` | Показывает текущий внешний IP |
|
||||
| `update_hproxy` | Остаётся в `~/.bash_functions` и обновляет WSL NAT-алиас |
|
||||
| `update_hproxy` | Остается в `~/.bash_functions` и обновляет WSL NAT-алиас |
|
||||
|
||||
### PowerShell-функции (`~/.config/powershell/profile.ps1`)
|
||||
|
||||
@@ -188,9 +188,9 @@ PowerShell и VS Code: одного общего файла у Windows и WSL н
|
||||
| `myip` | Показывает текущий внешний IP |
|
||||
| `Reload-Profile` | Перечитывает профиль без перезапуска сессии |
|
||||
| `which` | `Get-Command -All` по имени |
|
||||
| `touch` | Создаёт файл или обновляет `LastWriteTime` |
|
||||
| `mkcd` | Создаёт директорию и переходит в неё |
|
||||
| `open` | `Invoke-Item` — открывает путь |
|
||||
| `touch` | Создает файл или обновляет `LastWriteTime` |
|
||||
| `mkcd` | Создает директорию и переходит в нее |
|
||||
| `open` | `Invoke-Item` - открывает путь |
|
||||
| `croot` | Переходит в корень текущего Git-репозитория |
|
||||
| `wt-here` | Новое окно Windows Terminal в текущей директории |
|
||||
| `wt-tab-here` | Новая вкладка в текущей директории |
|
||||
@@ -206,20 +206,20 @@ PowerShell и VS Code: одного общего файла у Windows и WSL н
|
||||
| `~/.gitconfig.local` | Персональные Git-настройки (`user.name`, `core.editor` и т.д.) |
|
||||
| `~/.local/bin/start-claude-proxy.ps1` | Скрипт запуска Claude Desktop для Windows с переменными прокси и параметрами Electron |
|
||||
| `~/.local/bin/start-claude-proxy.vbs` | Скрытый запуск PowerShell-скрипта без привязки Claude к видимому окну терминала |
|
||||
| `~/.local/bin/start-codex-proxy.ps1` | Запуск Codex для Windows через системный идентификатор; прокси Electron задаётся параметрами, а `codex.exe` читает `~/.codex/.env` |
|
||||
| `~/.local/bin/start-codex-proxy.ps1` | Запуск Codex для Windows через системный идентификатор; прокси Electron задается параметрами, а `codex.exe` читает `~/.codex/.env` |
|
||||
| `~/.local/bin/start-chatgpt-proxy` | Запуск Linux-приложения ChatGPT через активную настройку `proxy-client` |
|
||||
| `~/.local/share/applications/chatgpt-proxy.desktop` | Отдельный Linux-ярлык `ChatGPT Proxy`, не подменяющий штатный `ChatGPT` |
|
||||
| `~/.config/powershell/profile.extra.ps1` | Локальные дополнения к pwsh-профилю |
|
||||
| `~/.config/powershell/profile.d/*.ps1` | Фрагменты, загружаемые по алфавиту |
|
||||
| `~/.claude/settings.json` | Управляется Claude Code: `model`, `effortLevel`, «always allow» permissions |
|
||||
| `~/.claude/settings.json` | Управляется Claude Code: `model`, `effortLevel`, "always allow" permissions |
|
||||
|
||||
## 💡 Дизайн-решения
|
||||
## Дизайн-решения
|
||||
|
||||
**Почему stow на Linux + chezmoi на Windows?**
|
||||
stow проще и покрывает весь Linux/WSL workflow. chezmoi нужен на Windows, где stow недоступен и нужны run-скрипты (миграция `.gitconfig`, настройка Windows Terminal). Два инструмента живут рядом и не мешают друг другу: chezmoi использует отдельный source dir `chezmoi/`, а `.chezmoiignore` исключает Linux-файлы на Windows.
|
||||
|
||||
**Почему Windows PowerShell 5.1 не трогается?**
|
||||
Форсирование UTF-8 и изменение профиля PS 5.1 может сломать старые скрипты, `.bat`/`.cmd` и консольные утилиты. PS 7 — основной shell, PS 5.1 — режим совместимости.
|
||||
Если форсировать UTF-8 и менять профиль PS 5.1, можно сломать старые скрипты, `.bat`/`.cmd` и консольные утилиты. PS 7 - основной shell, PS 5.1 - режим совместимости.
|
||||
|
||||
**Почему Claude `settings.local.json` — симлинк, а `settings.json` — нет?**
|
||||
Claude Code перезаписывает `settings.json` при каждом «always allow» — этот файл принадлежит Claude Code. Базовые permissions и statusLine живут в `settings.local.json`, который Claude Code только читает и мержит с `settings.json`. Симлинк из `~/.claude/settings.local.json` на файл в репозитории безопасен. Машинно-специфичные настройки (`model`, `effortLevel`) — в `settings.json`, управляются через Claude Code.
|
||||
**Почему Claude `settings.local.json` - симлинк, а `settings.json` - нет?**
|
||||
Claude Code перезаписывает `settings.json` при каждом "always allow" - этот файл принадлежит Claude Code. Базовые permissions и statusLine живут в `settings.local.json`, который Claude Code только читает и мержит с `settings.json`. Симлинк из `~/.claude/settings.local.json` на файл в репозитории безопасен. Машинно-специфичные настройки (`model`, `effortLevel`) - в `settings.json`, управляются через Claude Code.
|
||||
Reference in new issue
Block a user