Configuration complète pour macOS avec installation automatisée.
git clone https://github.com/PixiBixi/dotfiles.git ~/dotfiles
cd ~/dotfiles
./init_mac.shLe script est idempotent : vous pouvez le relancer sans risque.
- macOS (Ventura ou plus récent recommandé)
- Connexion internet
- Droits administrateur (pour Xcode Command Line Tools)
Le script installe automatiquement:
- Xcode Command Line Tools
- Homebrew
- oh-my-zsh + plugins
- Tous les packages listés dans
Brewfile,npmfile,gemlist - kubectl krew + plugins
dotfiles/
├── init_mac.sh # Script d'installation principal
├── Brewfile # Packages Homebrew (formulae, casks, mas)
├── Plugins_Krew # Plugins kubectl krew
├── npmfile # Packages NPM globaux
├── gemlist # Gems Ruby
├── .zshrc # Configuration zsh
├── .wezterm.lua # Configuration Wezterm
├── .gitconfig_perso # Git config pour projets perso
├── .gitconfig_work # Git config pour projets work
├── .markdownlint.json # Configuration markdownlint
└── .kube/
└── switch-config.yaml # Configuration kubeswitch- Arrêt immédiat en cas d'échec (
set -euo pipefail) - Messages d'erreur clairs avec couleurs
- Trap pour cleanup automatique
Chaque composant vérifie s'il est déjà installé:
- ✓ Skip si déjà présent
- ⚠ Warning si fichier manquant (non bloquant)
- ✗ Erreur seulement pour composants critiques
- Support Intel (
/usr/local) et Apple Silicon (/opt/homebrew) - Vérification macOS avant exécution
- Détection des outils déjà installés
Éditer vos identités Git:
# Personnel
vim ~/.gitconfig_perso
# Professionnel
vim ~/.gitconfig_workDans votre .gitconfig principal, incluez conditionnellement:
[includeIf "gitdir:~/Documents/perso/"]
path = ~/.gitconfig_perso
[includeIf "gitdir:~/Documents/work/"]
path = ~/.gitconfig_workSplit votre kubeconfig en plusieurs fichiers:
kubectl konfig split -o ~/.kube/configsRecharger votre configuration:
source ~/.zshrcExporter vos packages actuels:
brew bundle dump --force --file=./BrewfileLister vos packages NPM globaux:
npm list --global --parseable --depth=0 | \
sed '1d' | \
awk '{gsub(/\/.*\//,"",$1); print}' > ./npmfileLister vos gems installées:
gem list | tail -n+1 | \
sed 's/(/--version /' | \
sed 's/)//' > ./gemlistLister vos plugins krew:
kubectl krew list > ./Plugins_Krew- zsh avec oh-my-zsh
- Plugins:
zsh-autosuggestions,zsh-syntax-highlighting - Wezterm comme émulateur de terminal
Voir Brewfile pour la liste complète. Généralement:
rg(ripgrep),fd,bat,exafzfpour fuzzy findingjq,yqpour manipulation JSON/YAML
kubectl+ krewkubectx,kubenskubeswitchpour gestion multi-cluster- Plugins krew selon
Plugins_Krew
- Git avec configuration avancée
- Node.js (via Homebrew)
- Ruby (système macOS)
- Packages NPM/Gem selon listes
Si l'installation Xcode Command Line Tools nécessite une interaction:
- Le script s'arrête proprement
- Terminez l'installation dans la fenêtre popup
- Relancez
./init_mac.sh
Pour Apple Silicon, ajoutez à votre shell:
eval "$(/opt/homebrew/bin/brew shellenv)"Pour Intel:
eval "$(/usr/local/bin/brew shellenv)"Certains plugins peuvent ne plus être maintenus. Le script continue avec un warning. Vérifiez manuellement:
kubectl krew search <plugin-name>Pour activer la réutilisation de connexions SSH (déjà configuré dans .zshrc):
mkdir -p ~/.ssh/privateLa configuration Wezterm est copiée automatiquement. Pour la personnaliser:
vim ~/.wezterm.luaConfiguration pour linting Markdown (VSCode, nvim):
vim ~/.markdownlint.jsonPour ajouter un outil:
- L'installer manuellement pour tester
- L'ajouter au fichier approprié (
Brewfile,npmfile, etc.) - Regénérer le fichier avec les commandes de maintenance
- Commit + push
Configuration personnelle - Utilisez à vos risques et périls.