This repository contains my personal configuration files (dotfiles) for various tools and applications such as Zsh, Neovim, Kitty terminal, Git, and more. It allows for easy setup and synchronization of my development environment across multiple machines.
- Unified Configuration: Centralized management of configuration files.
- Easy Setup: Automated installation script for quick environment setup on new machines.
- Version Control: Track changes using Git, with automated weekly commits.
- Symlink Management: Use symbolic links to maintain consistency between the repository and the home directory.
- Cross-Platform Support: Works on Unix-like systems (macOS, Linux).
git clone [email protected]:orielsanchez/.dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh
This script will:
- Create symbolic links for all dotfiles in their appropriate locations.
- Install dependencies using Homebrew (if available).
- Backup existing configuration files by appending a
.bak
extension before overwriting.
- Git: For cloning the repository and version control.
- Zsh: The Z shell, used as the default shell.
- Homebrew (optional): Used to install packages listed in the
Brewfile
.- Installation: Homebrew Website
-
Move the Configuration File to the Repository
mv ~/.newconfig ~/.dotfiles/newconfig
-
Create a Symlink
ln -s ~/.dotfiles/newconfig ~/.newconfig
-
Commit and Push Changes
cd ~/.dotfiles git add newconfig git commit -m "Add newconfig" git push
An autocommit.sh
script is included to automate weekly commits and pushes of any changes to the dotfiles.
-
Make the Script Executable
chmod +x ~/.dotfiles/autocommit.sh
-
Edit Crontab
crontab -e
-
Add the Following Line
0 1 * * 0 ~/.dotfiles/autocommit.sh
This schedules the script to run every Sunday at 1 AM.
~/.dotfiles/
├── install.sh # Installation script
├── autocommit.sh # Script for automated commits
├── Brewfile # Homebrew dependencies
├── zshrc # Zsh configuration
├── zprofile # Zsh profile
├── scripts # Scripts
├── gitconfig # Git configuration
├── config/ # Application configurations
│ ├── nvim/ # Neovim configuration
│ ├── kitty/ # Kitty terminal configuration
│ └── ... # Other configurations
└── .gitignore # Git ignore file
While this repository is primarily for personal use, suggestions and improvements are welcome. Feel free to open an issue or submit a pull request.
This project is open-source and available under the MIT License.