Aproveitei a semana passada para aprofundar meus conhecimentos em shell script e decidi usar meus dotfiles como laboratório prático para aplicar o que aprendi e devo continuar aprendendo ao longo desse ano.

O que são dotfiles?

Para quem não conhece, dotfiles são arquivos de configuração que geralmente começam com um ponto (.), tornando-se ocultos em sistemas Unix/Linux. Eles armazenam personalizações para aplicativos e ambientes de desenvolvimento, incluindo:

  • ~/.bashrc: Configurações do shell Bash;
  • ~/.npmrc: Preferências do npm;
  • ~/.gitconfig: Configurações globais do Git;
  • ~/.zshrc: Arquivo principal de configuração do Zsh.

Esses arquivos permitem não só personalizar seu ambiente de trabalho, mas também manter consistência entre diferentes máquinas e sistemas.

Meus dotfiles existem há 9 anos e estavam precisando de atualização. Combinei a necessidade de atualizar as configurações com meu interesse recente em shell script. Durante o processo, utilizei o GitHub Copilot no VS Code (disponível gratuitamente com limites de uso) como assistente para verificar sintaxe, documentação e sugestões de boas práticas. Pretendo detalhar meu fluxo de trabalho com IAs assistivas em um futuro post.

Minha configuração

Nos meus dotfiles, gerencio:

Toda instalação é executada por um único comando ./install no terminal. 🚀

À medida que evoluo meu conhecimento em shell scripting, vou implementando melhorias nessas configurações para aumentar a eficiência e ergonomia no meu fluxo de trabalho.

Comece seus próprios dotfiles

Se você ainda não tem dotfiles, sinta-se à vontade para usar meu repositório como base ou inspiração. O projeto é open source - contribuições são bem-vindas! Para explorar diferentes abordagens, recomendo:

  • O portal dotfiles.github.io com curadoria de exemplos;
  • O repositório do Paul Irish que me inspirou inicialmente;
  • O repositório Awesome Dotfiles no GitHub, que possui uma lista de recursos e exemplos interessantes para explorar e implementar em seus dotfiles.

O ponto principal é adaptar as configurações às suas necessidades específicas enquanto mantém a capacidade de replicar seu ambiente em qualquer computador rapidamente.