A simple dotfiles manager for my personal configuration files.
This repository contains my personal configuration files (dotfiles) for various applications and tools. It uses a simple symlink approach to manage configurations and sets up your shell environment.
git clone https://github.com/markgandolfo/dotfiles.git ~/.config/dotfilesBefore running the initialisation script (init.py), ensure you have the following applications installed:
- Python 3 (required for the script -- but who doesn't have python preinstalled?)
- Zsh
- Alacritty
- Oxker
- Git
cd ~/.config/dotfiles
./init.pyThe initialisation script:
- Creates symbolic links from the configuration directories to their appropriate locations in
~/.config/except for /home_dir/ which symlinks all files to the home directory, and the/scriptdirectory which is used for manually run scripts - Adds a source line to your
.zshrcfile to load additional zsh configurations - Preserves any existing configurations by showing warnings instead of overwriting
~/.config/dotfiles/
├── init.py # Initialization script
├── _scripts/ # Not processed by init.py -- helper scripts for installs, etc.
├── _macosx/ # macOS specific stuff, just alacritty applescript for now
├── home/ # Symlinks all files to ~
├── zsh/ # ZSH configuration files
│ ├── mark.zsh # entry point for ./zshrc to source
│ ├── exports.zsh
│ └── alias.zsh
├── config # Everything in here will be symlinked to ~/.config
│ ├── alacritty
│ ├── gitui
│ ├── oxker
│ ├── spotify-player
│ └── zellij
└── ...
To add new application configurations:
- Create a directory in the repository root with the application name
- Add your configuration files to this directory
- Run
./init.shagain to create the necessary symlinks
Feel free to modify any of the configuration files to suit your preferences. After making changes, configurations will update automatically since they're symlinked.
To update your dotfiles with the latest changes from the repository:
cd ~/.config/dotfiles
git pull
./init.pyMIT
If you have any questions or suggestions, please feel free to open an issue on the repository.