Idiomas: English | 日本語 | Español | Português | 中文 | 한국어
Este repositório configura um ambiente de desenvolvimento no macOS.
Ele combina dotfiles e Ansible para que você possa preparar um novo Mac de forma rápida e consistente.
setup-mac/
├── dotfiles/ # Arquivos de configuração
│ ├── .zshenv
│ ├── .gitconfig
│ └── .config/
│ ├── zsh/
│ │ └── .zshrc
│ ├── git/
│ │ └── config
│ ├── sheldon/
│ │ └── plugins.toml
│ ├── wezterm/
│ │ └── wezterm.lua
│ └── starship.toml
└── ansible/ # Playbooks do Ansible
├── site.yml
└── roles/
├── homebrew/
├── vscode_extensions/
├── mise/ # Configuração de toolchains com mise
├── macos/
├── dotfiles/
└── xdg_normalize/- macOS (Apple Silicon e Intel compatíveis)
- Conexão com a Internet
git clone https://github.com/kumo01GitHub/setup-mac.git ~/setup-mac
cd ~/setup-macInstalar o Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Instalar o Ansible:
brew install ansiblecd ~/setup-mac/ansible
ansible-playbook site.ymlSe uma tarefa exigir privilégios elevados (por exemplo, instalar o cask docker), inclua --ask-become-pass:
ansible-playbook site.yml --ask-become-passPara executar com valores de identidade do Git:
Nome e e-mail do Git são resolvidos nesta ordem:
- Variáveis de CLI (
-e git_user_name=... -e git_user_email=...) - Variáveis de ambiente (
GIT_USER_NAME,GIT_USER_EMAIL) - Prompt interativo em tempo de execução, se ainda estiver faltando
GIT_USER_NAME="Your Name" GIT_USER_EMAIL="your.email@example.com" ansible-playbook site.yml
# ou
ansible-playbook site.yml -e git_user_name="Your Name" -e git_user_email="your.email@example.com"- Adicione arquivos em
dotfiles/ - Adicione caminhos em
ansible/custom.ymlusandodotfiles_files_extra
Observação:
.gitconfigé gerenciado separadamente por template.
Você pode adicionar itens aos padrões das roles sem editar defaults/main.yml, usando apenas ansible/custom.yml.
- Edite
ansible/custom.yml - Adicione itens usando variáveis
*_extra
ansible/site.yml carrega automaticamente ansible/custom.yml antes da execução das roles.
Exemplo: ansible/custom.yml
homebrew_packages_extra:
homebrew_cask_apps_extra:
- firefox
mise_plugins_extra:
- java
mise_toolchains_extra:
- go@latest
dotfiles_files_extra:
- .config/mytool/config.tomlEdite dotfiles/.config/zsh/.zshrc para personalizar o shell.
dotfiles/.zshenv contém as configurações mínimas carregadas no início (variáveis XDG e ZDOTDIR).
Para aplicar alterações, abra um novo terminal ou execute:
source ~/.config/zsh/.zshrcOs itens desta seção podem incluir ferramentas, apps e extensões opcionais gerenciados por ansible/custom.yml (*_extra).
| Pacote | Descrição |
|---|---|
| git | Controle de versão |
| curl | Cliente HTTP |
| bat | Alternativa ao cat com destaque de sintaxe |
| dockutil | Gerenciamento de itens do Dock |
| tree | Visualizador de árvore de diretórios |
| ansible | Gerenciamento de configuração |
| eza | Alternativa moderna ao ls |
| lcov | Ferramenta de medição de cobertura |
| jq | Processador JSON |
| hadolint | Linter de Dockerfile |
| starship | Prompt multiplataforma para shell |
| mise | Gerenciador de versões/runtimes |
| delta | Visualizador de diff para Git |
| sheldon | Gerenciador de plugins do Zsh |
| Aplicativo | Descrição |
|---|---|
| Visual Studio Code | Editor de código |
| WezTerm | Emulador de terminal |
| Google Chrome | Navegador web |
| Docker | Runtime de contêineres |
| FiraCode Nerd Font | Fonte para desenvolvimento |
| Android Studio | IDE Android |
| Extensão | ID |
|---|---|
| EditorConfig | EditorConfig.EditorConfig |
| indent-rainbow | oderwat.indent-rainbow |
| Prettier | esbenp.prettier-vscode |
| ESLint | dbaeumer.vscode-eslint |
| Python | ms-python.python |
| Pylance | ms-python.vscode-pylance |
| Dart | Dart-Code.dart-code |
| Flutter | Dart-Code.flutter |
| Kotlin | fwcd.kotlin |
| Swift | swiftlang.swift-vscode |
| Java Extension Pack | vscjava.vscode-java-pack |
| Gradle for Java | vscjava.vscode-gradle |
| Spring Boot Tools | vmware.vscode-spring-boot |
| YAML | redhat.vscode-yaml |
| XML | redhat.vscode-xml |
O playbook aplica as seguintes configurações:
- Ativar ocultação automática do Dock
- Reconstruir itens do Dock a partir da lista de apps definida em
ansible/roles/macos/tasks/main.yml - Ocultar apps recentes no Dock (apps não fixados desaparecem ao fechar)
- Mostrar arquivos ocultos no Finder
- Sempre mostrar extensões de arquivo
A role xdg_normalize migra caminhos padrão não compatíveis com XDG para locais compatíveis com XDG e remove caminhos legados.
Lista de migração (caminho padrão → caminho XDG):
| Ferramenta | Categoria | Caminho padrão | Caminho XDG |
|---|---|---|---|
| Homebrew | Cache | ~/Library/Caches/Homebrew |
~/.cache/Homebrew |
| Ansible | Dados | ~/.ansible |
~/.local/share/ansible |
| Android SDK | Dados | ~/.android |
~/.local/share/android |
| Gradle | Dados | ~/.gradle |
~/.local/share/gradle |
| Docker | Configuração | ~/.docker |
~/.config/docker |
| mise | Dados | ~/.mise |
~/.local/share/mise |
| hadolint | Configuração | ~/.hadolint.yaml |
~/.config/hadolint.yaml |
| npm | Cache | ~/.npm |
~/.cache/npm |
| npm | Configuração | ~/.npmrc |
~/.config/npm/npmrc |
Flutter/Dart (pub) |
Cache | ~/.pub-cache |
~/.cache/pub |
| pip | Configuração | ~/.pip |
~/.config/pip |
| pip | Cache | ~/Library/Caches/pip |
~/.cache/pip |
| RubyGems | Cache | ~/.gem |
~/.cache/gem |
| CocoaPods | Dados | ~/.cocoapods |
~/.local/share/cocoapods |
| Claude | Configuração | ~/.claude |
~/.config/claude |
| GitHub Copilot | Configuração | ~/.copilot |
~/.config/copilot |
| less | Estado | ~/.lesshst |
~/.local/state/less/history |
| Vim | Estado | ~/.viminfo |
~/.local/state/vim/viminfo |
| Zsh | Configuração | ~/.zshrc, ~/.zprofile, ~/.zlogin, ~/.zlogout |
~/.config/zsh/ |
| Zsh | Histórico | ~/.zsh_history |
~/.local/state/zsh/history |
| Zsh | Sessões | ~/.zsh_sessions |
~/.local/state/zsh/sessions |
| Zsh | Cache de conclusão | ~/.zcompdump* |
~/.config/zsh/ |
Nota: Algumas ferramentas podem recriar caminhos legados em ~ se não oferecerem suporte a caminhos XDG.