Files
dotfiles/AGENTS.md
T
Dmitry 7c8a4893de migrate: stow → chezmoi
- restructure repo to chezmoi conventions (dot_ prefix, private_dot_ssh/)
- add nvim config (was untracked)
- encrypt restic pass.txt with age
- remove stow artifacts (.stow-local-ignore, stow package dirs)
- update bootstrap.sh to use chezmoi apply
- remove runtime files from tracking (micro buffers, zed backup)
2026-05-13 18:28:01 +03:00

82 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AGENTS.md
This file provides guidance to Codex (Codex.ai/code) when working with code in this repository.
## Репозиторий
Dotfiles под управлением **GNU Stow**. Каждый каталог верхнего уровня — это stow-пакет. `stow -t ~ <package>/` создаёт симлинки из пакета в `$HOME`, сохраняя структуру подкаталогов.
Исключения (не разворачиваются через stow): `configs/`, `nixos/` — это утилитарные каталоги вне stow-конвенции, описаны в `.stow-local-ignore`.
## Развёртывание
```bash
# Все пакеты сразу
stow -t ~ */
# Один пакет
stow -t ~ zsh
# Проверить без применения (dry run)
stow -n -t ~ zsh
# Удалить симлинки пакета
stow -D -t ~ zsh
```
Быстрый старт на новой машине — `bootstrap.sh` (устанавливает зависимости + запускает stow + меняет shell на zsh).
## Структура пакетов
| Пакет | Что настраивает |
|---|---|
| `zsh/` | Zsh: `.zshenv``ZDOTDIR=~/.config/zsh`, модульный `.zshrc` + 8 файлов в `config/` |
| `git/` | `.gitconfig`, `.gitignore_global` |
| `ssh/` | `~/.ssh/config` (Include-based) + `config.d/` с нумерованными секциями |
| `tmux/` | `.tmux.conf` (базовый) + `.tmux.conf.local` (кастомизации) |
| `nvim/` | LazyVim-конфиг с `init.lua` и `lua/config/` |
| `alacritty/` | Терминал alacritty (запасной) |
| `kitty/` | Основной терминал: Nord, вкладки, сплиты, kitty graphics protocol |
| `zed/` | Редактор Zed |
| `restic/` | Resticprofile: бэкапы на Яндекс.Диск через rclone |
| `fastfetch/` | Системный fetch |
| `micro/` | Редактор micro |
| `vim/` | `.vimrc` |
## SSH-конфиг
Конфиги разбиты по файлам с числовым префиксом (приоритет — чем меньше, тем раньше):
- `00-globals.conf` — глобальные дефолты
- `10-local.conf` — локальная сеть
- `20-selfhost.conf` — self-hosted сервисы
- `30-corporate.conf` — рабочие хосты
- `40-proxy.conf` — proxy jump / socks
## Zsh-конфиг
Загрузочный порядок: `.zshenv``ZDOTDIR``.zshrc``config/*.zsh`:
1. `env.zsh` — переменные окружения
2. `options.zsh` — опции shell
3. `plugins.zsh` — плагины через zinit
4. `completion.zsh` — автодополнение
5. `aliases.zsh` — алиасы
6. `functions.zsh` — функции
7. `keybindings.zsh` — горячие клавиши
8. `prompt.zsh` — промпт (starship / p10k)
Машинно-специфичные настройки кладутся в `config/local.zsh` (не в репозитории).
## Restic-бэкапы
Профили в `restic/.config/resticprofile/profiles.yaml`. Хранилище — Яндекс.Диск через rclone remote `yadisk`. Пароль репозитория — `pass.txt` (в репозитории, не публичен).
```bash
resticprofile -n dotfiles backup # бэкап конфигов
resticprofile snapshots # список снимков
resticprofile -n dotfiles check # проверка целостности
```
## Коммиты
Стиль коммитов: `backup: YYYY-MM-DD HH:MM` для плановых бэкапов. Для изменений конфигов — обычные описательные сообщения.