5.4 KiB
AGENTS.md
Инструкции для Codex при работе с этим репозиторием.
Репозиторий
Dotfiles под управлением chezmoi. Исходники лежат в ~/dotfiles, chezmoi apply разворачивает их в $HOME.
Файлы именуются по chezmoi-конвенции:
dot_-> точка в имени файла или каталога:dot_zshenv->~/.zshenvprivate_-> приватные права:private_dot_ssh/->~/.ssh/encrypted_*.age-> зашифрованные секреты, расшифровываются приchezmoi apply
Корневые служебные файлы, не разворачиваемые в $HOME, описаны в .chezmoiignore: README.md, CLAUDE.md, AGENTS.md, bootstrap.sh, .gitignore, .claude/, configs/.
Развёртывание
chezmoi apply # применить изменения
chezmoi diff # посмотреть будущие изменения
chezmoi status # краткий статус
chezmoi add ~/.some/file # начать отслеживать новый файл
chezmoi re-add # синхронизировать source после ручных правок в ~
На новой машине используется bootstrap.sh: устанавливает зависимости, создаёт ~/.ssh/sockets, запускает chezmoi apply --source "$DOTFILES_DIR" и предлагает сменить shell на zsh.
Шифрование
Age-ключ хранится вне репозитория: ~/.config/chezmoi/key.txt.
Шаблон конфига chezmoi: .chezmoi.toml.tmpl.
Секреты в репозитории хранятся как encrypted_*.age, например:
dot_config/resticprofile/encrypted_pass.txt.ageprivate_dot_ssh/encrypted_private_id_ed25519*.age
Не расшифровывать и не коммитить plaintext-секреты.
Структура
| Путь | Что настраивает |
|---|---|
dot_config/zsh/ |
Zsh: модульный .zshrc, Powerlevel10k, конфиги в config/*.zsh |
dot_config/nvim/ |
LazyVim на lazy.nvim, кастомные плагины в lua/plugins/ |
dot_config/kitty/ |
Основной терминал: Nord, FiraCode Nerd Font, opacity, startup fastfetch |
dot_config/alacritty/ |
Запасной терминал |
dot_config/resticprofile/ |
Профили restic/resticprofile |
dot_config/zed/ |
Настройки Zed |
dot_config/micro/ |
Настройки micro |
dot_config/fastfetch/ |
Fastfetch |
dot_local/bin/ |
Пользовательские скрипты |
private_dot_ssh/ |
SSH-конфиг, публичные ключи, зашифрованные приватные ключи |
dot_codex/ |
Глобальный конфиг Codex, разворачивается в ~/.codex |
dot_claude/ |
Глобальный конфиг Claude, разворачивается в ~/.claude |
dot_gitconfig |
~/.gitconfig |
dot_gitignore_global |
~/.gitignore_global |
dot_tmux.conf, dot_tmux.conf.local |
tmux / oh-my-tmux |
dot_vimrc |
Vim |
SSH
Основной файл: private_dot_ssh/config.
Дополнительные секции лежат в private_dot_ssh/config.d/ с числовым префиксом:
00-globals.conf— глобальные дефолты10-local.conf— локальная сеть20-selfhost.conf— self-hosted сервисы30-corporate.conf— рабочие хосты40-proxy.conf— proxy jump / socks
Приватные ключи зашифрованы через age. Если нужен ручной импорт, источник — self-hosted Bitwarden pass.ada-dev.ru.
Zsh
dot_zshenv задаёт ZDOTDIR=~/.config/zsh.
dot_config/zsh/dot_zshrc загружает модули:
env.zshoptions.zshplugins.zshcompletion.zshaliases.zshfunctions.zshkeybindings.zshprompt.zsh
Промпт — Powerlevel10k, конфиг: dot_config/zsh/dot_p10k.zsh.
Машинно-специфичные настройки: ~/.config/zsh/config/local.zsh, вне репозитория.
Nvim
LazyVim. Кастомные плагины:
dot_config/nvim/lua/plugins/colorscheme.lua— Norddot_config/nvim/lua/plugins/langmapper.lua— маппинги для русской раскладки ЙЦУКЕН
Restic
Профили: dot_config/resticprofile/profiles.yaml.
Хранилище — Яндекс.Диск через rclone remote yadisk, зеркало — cloud-pc.
Пароль репозитория — encrypted_pass.txt.age, расшифровывается chezmoi.
backup-menu # интерактивное меню, алиас bm
resticprofile -n dotfiles backup
resticprofile -n dotfiles snapshots
resticprofile -n dotfiles restore latest /tmp/restore
На новой машине нужно один раз настроить rclone remotes yadisk и cloud-pc.
Коммиты
backup: YYYY-MM-DD HH:MM — для плановых бэкапов.
Для изменений конфигов — обычные описательные сообщения.
Не добавлять Codex в co-authors без прямого запроса.