Config terminal complète : Alacritty + tmux + zsh + Neovim (NvChad 2.5) + lazygit + Hammerspoon, avec accès base de données en terminal (pgcli · lazysql · dadbod-ui), pensée pour un stack Go / Rust / React-TS / Proto (buf).
Docs : ARCHITECTURE.md — schéma visuel de comment tout est câblé · WORKFLOW.md — la méthode de dev (challenge → livraison fidèle).
Prérequis : Homebrew (https://brew.sh), les outils Xcode (xcode-select --install), et Claude Code (https://claude.com/claude-code — requis par ccw et la config Agent Teams).
git clone https://github.com/Skayfa/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.shLe script installe les dépendances (Brewfile), le CLI tree-sitter, puis pose les configs (toute config existante est sauvegardée en *.bak.<date>). Suis les 5 étapes finales affichées à la fin.
| Dossier | Cible | Contenu |
|---|---|---|
alacritty/ |
~/.config/alacritty/ |
police Nerd Font, palette Everforest, fenêtre sans titre, ⌘b→préfixe tmux, ⌘⇧clic/Ctrl⇧O ouvre un fichier dans Zed (via bin/zed-open) |
tmux/ |
~/.tmux.conf, ~/.config/tmux/ |
statusbar Powerline cyan, nav fluide, lazygit (préfixe g) + hunk (préfixe h) + lazysql (préfixe D) en popup, aide-mémoire préfixe ? |
nvim/ |
~/.config/nvim/ |
NvChad 2.5 (thème catppuccin-latte) : LSP (gopls, ts_ls, rust_analyzer, jsonls, yamlls, marksman, buf_ls pour proto), treesitter, formatage, nav IDE, fuzzy fd+fzf, panel SQL dadbod-ui (espace D), helper :Cheat |
lazygit/ |
~/Library/Application Support/lazygit/ |
thème contraste cyan |
hunk/ |
~/.config/hunk/ |
diff viewer orienté review (thème everforest-dark) : lit le changeset, Claude y pose ses remarques en annotations inline |
git/ |
~/.config/git/ |
config git générique : alias git hdiff / git hshow (review via hunk). L'identité reste dans ~/.gitconfig, local et hors repo |
hammerspoon/ |
~/.hammerspoon/ |
drop-down Alacritty sur Ctrl+Alt+T |
bin/ |
~/.local/bin/ |
ccw (git worktree + tmux + claude), zed-open (ouvre un chemin dans Zed) |
zsh/ |
sourcé par ~/.zshrc |
UX shell : autosuggestions, fzf-tab (TAB flou : branches git), zoxide (z), eza, bindings fzf+fd, historique persistant, aide-mémoire cheat, helper DB db <name> ; alias vim/lg |
claude/ |
~/.claude/ |
Claude Code : Agent Teams (teammateMode: tmux) + statusline custom |
starship/ |
~/.config/ |
prompt Starship (que la statusline Claude reprend) |
Lié, pas copié : la plupart des configs sont des symlinks vers ce repo → tu édites
~/dotfiles, c'est actif immédiatement, sans relancer./install.sh.Quatre exceptions sont copiées (et là il faut relancer
./install.shpour appliquer) :alacritty.toml(chemin absolu verszed-open, lancé sans shell pour étendre un~),lazygit/config.ymletclaude/settings.json(ces outils réécrivent leur propre config — un lien les ferait écrire dans le repo), etnvim/(lazy.nvim y écritlazy-lock.json). Ces fichiers-là utilisent le placeholder__HOME__, résolu à l'install → portable quel que soit ton nom d'utilisateur.
tmux (préfixe = ⌘b ou Ctrl-b) — détail : préfixe ?
⌥←/→/↑/↓naviguer entre panes ·Shift←/→changer de fenêtrepréfixe v/ssplit ·préfixe zzoom ·préfixe Ctrl-hjkléchanger un panepréfixe glazygit (popup) ·préfixe hhunk (review du diff) ·préfixe Dlazysql (bases de données)
neovim (leader = espace) — détail : espace ? (:Cheat) ou espace + attendre (which-key)
espace f ffichiers ·espace f wrecherche texte ·Ctrl-narborescencegd/Ctrl+clicdéfinition ·Ctrl-oretour ·Ctrl-iavant ·gt/gTbuffersespace f mformater ·Kdoc ·espace r nrenommer ·espace Dpanel SQL (:DBUI)
zsh — détail : cheat ou Ctrl-X ?
→accepter la suggestion ·TABcomplétion floue (branches git) ·Ctrl-Rhistoriquez <bout>saut de dossier ·db <name>ouvrir une base en pgcli
bases de données (Postgres local) : db <name> (pgcli CLI) · préfixe D (lazysql TUI) · espace D (dadbod-ui dans nvim)
lazygit : Ctrl-b g (popup) · lg (plein écran)
review d'un changeset : hd (hunk, plein écran) · Ctrl-b h (popup) · hd --watch (se recharge pendant qu'un agent édite) · git hdiff / git hshow. Une session hunk ouverte = Claude peut y poser sa review en annotations inline (skill hunk-review). Le stage/commit/push reste dans lazygit.
Édite les fichiers dans ~/dotfiles — c'est actif immédiatement (symlinks), sauf pour les 4 fichiers copiés ci-dessus qui demandent un ./install.sh. Puis commit, push. Sur l'autre Mac : git pull (+ ./install.sh si l'un des 4 a bougé, ou au premier setup).
Chaque install sauvegarde l'existant en *.bak.<date>. Pour restaurer une config, remets le .bak à sa place (mv).