- 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)
3.7 KiB
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.
Развёртывание
# Все пакеты сразу
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:
env.zsh— переменные окруженияoptions.zsh— опции shellplugins.zsh— плагины через zinitcompletion.zsh— автодополнениеaliases.zsh— алиасыfunctions.zsh— функцииkeybindings.zsh— горячие клавишиprompt.zsh— промпт (starship / p10k)
Машинно-специфичные настройки кладутся в config/local.zsh (не в репозитории).
Restic-бэкапы
Профили в restic/.config/resticprofile/profiles.yaml. Хранилище — Яндекс.Диск через rclone remote yadisk. Пароль репозитория — pass.txt (в репозитории, не публичен).
resticprofile -n dotfiles backup # бэкап конфигов
resticprofile snapshots # список снимков
resticprofile -n dotfiles check # проверка целостности
Коммиты
Стиль коммитов: backup: YYYY-MM-DD HH:MM для плановых бэкапов. Для изменений конфигов — обычные описательные сообщения.