# AGENTS.md This file provides guidance to Codex (Codex.ai/code) when working with code in this repository. ## Репозиторий Dotfiles под управлением **GNU Stow**. Каждый каталог верхнего уровня — это stow-пакет. `stow -t ~ /` создаёт симлинки из пакета в `$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` для плановых бэкапов. Для изменений конфигов — обычные описательные сообщения.