mattryan's dotfiles
A grossly opinionated set of system configurations, optimized for Linux while aiming to run on macOS.
git clone https://github.com/rattlion/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
make
# Install Xcode command line tools
xcode-select --install
# Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Arch
sudo pacman -S git make zsh curl
# Ubuntu/Debian
sudo apt update && sudo apt install git make zsh curl
# RHEL/CentOS/Fedora
sudo yum install git make zsh curl
# or on newer versions:
sudo dnf install git make zsh curl
bin/
added to PATH~/.dotfiles/
├── bin/ # Custom scripts (added to PATH)
├── topic/ # E.g. nvim
│ ├── *.zsh # Loaded into environment
│ ├── path.zsh # Loaded first (PATH setup)
│ ├── completion.zsh # Loaded last (autocomplete)
│ ├── *.symlink # Symlinked to $HOME
│ └── *.template # Copied to $HOME (for customization)
├── Makefile # Installation automation
└── README.md # This file
The installation process:
*.symlink
files to your home directory*.template
files to your home directory*.zsh
files into your shell environmentbin/
directory to your PATHgit/gitconfig.template
→ ~/.gitconfig
(copied)zsh/zshrc.symlink
→ ~/.zshrc
(symlinked)bin/myip
→ Available globally as myip
commandFiles ending in .template
are copied (not symlinked) so you can customize them:
# Edit your personal git config
vim ~/.gitconfig
# Add untracked or generally device specific configs to ~/.secretrc
vim ~/.secretrc
mkdir ~/.dotfiles/newtool/
newtool/newtoolrc.symlink
- will be symlinked as ~/.newtoolrc
newtool/config.zsh
- any .zsh file will be loaded in your shellnewtool/aliases.zsh
- it can be helpful to separate them logicallycd ~/.dotfiles && make
cd ~/.dotfiles
git pull origin main
make clean # Remove old symlinks
make install # Reinstall with updates
Installation fails with “Permission denied”
# Fix script permissions
chmod +x ~/.dotfiles/script/install
chmod +x ~/.dotfiles/script/uninstall
Zsh not loading configurations
# Reload zsh configuration
source ~/.zshrc
# Or restart your terminal
Symlinks pointing to wrong location
# Edit the filenames accordingly
cd ~/.dotfiles
# mv /topic/config.zsh /topic/config.symlink
# Clean and reinstall
make clean
make install
cd ~/.dotfiles
make uninstall
This will:
Several years ago this project started out as a fork of Zach Holman’s excellent dotfiles which at the time was a fork of Ryan Bates’. I’ve been updating this set since 2012.