My personal dotfiles managed with GNU Stow. These dotfiles are designed for macOS but can be adapted for other systems.
zsh/
- ZSH shell configuration with Oh My Zshvim/
- Vim editor configurationtmux/
- Terminal multiplexer configurationgit/
- Git configuration and global gitignorebrew.sh
- Homebrew package installation scriptbootstrap.sh
- Setup script for new machines
- macOS
- Basic command line knowledge
- Git (will be installed by the script if not present)
The brew.sh
script will install these essential tools:
- git (Version control)
- tmux (Terminal multiplexer)
- python3 (Python programming language)
- htop (Process viewer)
- tree (Directory listing)
- fzf (Fuzzy finder)
- jq (JSON processor)
- coreutils (GNU core utilities)
- node (Node.js)
- stow (Symlink farm manager)
- zsh (Better shell)
- vim (Text editor)
- ripgrep (Better grep)
- fd (Better find)
# Clone this repository
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
# Go to the dotfiles directory
cd ~/dotfiles
# Make scripts executable
chmod +x bootstrap.sh brew.sh
# Run the bootstrap script
./bootstrap.sh
If you prefer to install step by step:
- Install Homebrew packages:
./brew.sh
- Create symlinks with stow:
stow git tmux vim zsh
dotfiles/
├── git/
│ ├── .gitconfig
│ └── .gitignore
├── tmux/
│ └── .tmux.conf
├── vim/
│ └── .vimrc
├── zsh/
│ └── .zshrc
├── bootstrap.sh
├── brew.sh
└── README.md
- Fork this repository
- Update configurations in each directory
- Modify
brew.sh
to add/remove packages - Update bootstrap.sh if needed
- Create a new directory for your config:
mkdir mynewconfig
- Move your config file into it, maintaining the home directory structure:
# If the config file is normally at ~/.myconfig
mv ~/.myconfig mynewconfig/.myconfig
- Use stow to create the symlink:
stow mynewconfig
To update your configurations:
- Make changes to the files in the dotfiles directory
- Commit and push your changes
- On other machines, pull the changes and re-run stow if needed:
cd ~/dotfiles
git pull
stow git tmux vim zsh # or whichever configs you updated
These dotfiles are maintained by Arsen Zairov. Feel free to use them as a starting point for your own dotfiles!