explaingit

webpro/awesome-dotfiles

10,598Audience · developerComplexity · 1/5Setup · easy

TLDR

A curated list of articles, example repos, and tools for managing dotfiles, the hidden config files that control your terminal, shell, and editor, so you can version and sync them across machines.

Mindmap

mindmap
  root((awesome-dotfiles))
    Resources
      Articles and guides
      Shell startup guides
      Git workflows
    Example repos
      Bash setups
      Zsh setups
      Fish setups
      Ansible playbooks
    Management tools
      GNU Stow
      Bootstrap scripts
      Symlink managers
    Shells covered
      Bash
      Zsh
      Fish
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Find a well-maintained public dotfiles repo matching your shell and copy the parts you want into your own setup.

USE CASE 2

Set up Git and GNU Stow to symlink your dotfiles so changes sync across multiple machines.

USE CASE 3

Discover Ansible-based dotfiles projects to fully automate a new machine's configuration from scratch.

USE CASE 4

Read guides explaining how shell startup files load in Bash or Zsh to debug a slow terminal launch.

Tech stack

BashZshFishAnsibleGNU Stow

Getting it running

Difficulty · easy Time to first run · 5min
No license information was mentioned in the explanation.

In plain English

Dotfiles are the hidden configuration files that control how your command-line tools, text editor, and shell behave. On Unix-based systems, these files start with a dot (for example.bashrc or .gitconfig), which makes them invisible by default in file browsers. Developers often store them in version-controlled repositories and share them publicly so others can learn from or copy their setups. This repository is a curated list of resources related to that practice. The list is organized into three main areas: articles and tutorials, places to find dotfiles repos, and example dotfiles repositories. The articles section links to introductory guides explaining what dotfiles are, tutorials on managing them with Git and symlink tools, and explanations of how shell startup files load in different shells like Bash and Zsh. The example repos section is the largest part. It organizes well-maintained public dotfiles projects by shell type: Bash, Zsh, Fish, and Ansible-based setups. Each entry in the table shows what the project focuses on, such as macOS defaults, editor configuration, or plugin management. Some projects are simple personal configs, others are full frameworks like oh-my-zsh and oh-my-fish that add theme and plugin support to their respective shells. The list also covers dedicated dotfiles management tools, programs that help you install, symlink, and keep dotfiles in sync across multiple machines. Tools listed include GNU Stow (a symlink manager), various custom bootstrap scripts, and Ansible playbooks for fully automated machine setup. This repository does not contain any dotfiles itself. It is a reference point for finding them, learning about approaches to managing them, and discovering the broader ecosystem of tools and communities around the practice. The README notes that some linked articles may look dated but are included because they are well-tested and widely referenced.

Copy-paste prompts

Prompt 1
I want to start versioning my dotfiles in a Git repo and use GNU Stow to symlink them. Walk me through the setup.
Prompt 2
Show me an example .zshrc from the awesome-dotfiles list that includes useful aliases and a good prompt for a macOS developer.
Prompt 3
I switched from Bash to Zsh and need a solid starting config. Which repos in awesome-dotfiles have well-structured Zsh setups?
Prompt 4
How do I use an Ansible playbook to automate setting up a brand-new Mac from scratch using dotfiles?
Prompt 5
Explain the order in which Zsh reads .zshenv.zprofile.zshrc, and .zlogin when a shell starts.
Open on GitHub → Explain another repo

← webpro on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.