Files
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

4.2 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Репозиторий

Dotfiles под управлением chezmoi. Исходники в ~/dotfiles, chezmoi разворачивает их в $HOME.

Файлы именуются по chezmoi-конвенции:

  • dot_ префикс → . в имени файла/папки (dot_zshenv~/.zshenv)
  • private_ префикс → права 700 (private_dot_ssh/~/.ssh/)
  • encrypted_ + суффикс .age → расшифровывается при apply (encrypted_pass.txt.agepass.txt)

Каталог configs/ — служебные конфиги вне chezmoi (danted, awg, telemt), не разворачиваются.

Развёртывание

chezmoi apply            # применить изменения
chezmoi diff             # посмотреть что изменится
chezmoi status           # краткий статус
chezmoi add ~/.some/file # начать отслеживать новый файл
chezmoi re-add           # синхронизировать source после ручных правок в ~

На новой машине — bootstrap.sh (устанавливает зависимости + запускает chezmoi apply).

Шифрование

age-ключ: ~/.config/chezmoi/key.txt (вне репо, хранить в безопасном месте). Конфиг chezmoi: ~/.config/chezmoi/chezmoi.toml.

Зашифровать файл:

age -r age1a7wrnp3gw725pmhgffm6kurephmad9220g057mrwgvkrr5xcws7qg5z2xk \
    -o dot_config/resticprofile/encrypted_pass.txt.age \
    dot_config/resticprofile/pass.txt

SSH-ключи

Ключи хранятся в self-hosted Bitwarden (pass.ada-dev.ru):

bw config server https://pass.ada-dev.ru
bw login
bw get item <название ключа> | jq -r '.sshKey.privateKey' > ~/.ssh/id_ed25519

SSH-конфиг

private_dot_ssh/config + config.d/ с числовым префиксом (чем меньше — тем выше приоритет):

  • 00-globals.conf — глобальные дефолты
  • 10-local.conf — локальная сеть
  • 20-selfhost.conf — self-hosted сервисы
  • 30-corporate.conf — рабочие хосты
  • 40-proxy.conf — proxy jump / socks

Zsh-конфиг

dot_config/zsh/dot_zshrc~/.config/zsh/.zshrc, загружает модули из config/*.zsh: env.zshoptions.zshplugins.zsh (zinit) → completion.zshaliases.zshfunctions.zshkeybindings.zshprompt.zsh

Промпт — Powerlevel10k, конфиг в dot_config/zsh/dot_p10k.zsh. Машинно-специфичные настройки — ~/.config/zsh/config/local.zsh (вне репо).

Nvim

LazyVim на базе lazy.nvim. Кастомные плагины в dot_config/nvim/lua/plugins/:

  • colorscheme.lua — тема Nord (gbprod/nord.nvim)
  • langmapper.lua — дублирует маппинги для русской раскладки ЙЦУКЕН

Kitty

Основной терминал. dot_config/kitty/startup.conf запускает fastfetch при старте. Nord, FiraCode Nerd Font 14pt, opacity 0.90.

Restic-бэкапы

Профили в dot_config/resticprofile/profiles.yaml. Хранилище — Яндекс.Диск через rclone remote yadisk. Пароль репозитория — encrypted_pass.txt.age (расшифровывается chezmoi при apply).

Профиль Источник Частота
dotfiles ~/.dotfiles, ~/.config, ~/.ssh каждые 6 ч
projects ~/Documents/Projects каждый час
vaults ~/Documents/Vaults каждый час
files ~/Documents/Files ежедневно 02:15
resticprofile -n dotfiles backup
resticprofile snapshots
resticprofile -n dotfiles restore latest /tmp/restore

Коммиты

backup: YYYY-MM-DD HH:MM — для плановых бэкапов; обычные описательные сообщения — для изменений конфигов.