This project automates the setup of a new system with essential tools and configurations, such as Zsh, Homebrew, NVM, Neovim, and more. It ensures a consistent development environment across machines.
-
Zsh Configuration:
- Installs Oh My Zsh if not already installed.
- Symlinks
.zshrc
and.zprofile
from theconfigurations/zsh
directory. - Sources additional scripts and aliases for enhanced functionality.
-
Homebrew:
- Ensures Homebrew is installed.
- Installs packages listed in the
configurations/brew/Brewfile
.
-
Utilities:
- Cross-platform symlink creation with backup support.
- Logging utilities for clear feedback during the setup process.
- Spinner animations for a better user experience.
.
├── Cargo.toml # Rust project configuration
├── configurations/ # Configuration files for tools
│ ├── brew/
│ │ └── Brewfile # List of Homebrew packages to install
│ └── zsh/
│ ├── .zshrc # Zsh configuration file
│ ├── .zprofile # Zsh profile file
│ ├── zstyle.zsh # Zsh style configuration
│ └── scripts/ # Additional Zsh scripts
├── src/ # Rust source code
│ ├── main.rs # Entry point for the application
│ ├── brew/ # Homebrew-related functionality
│ ├── utils/ # Utility modules (logging, symlinks, etc.)
│ └── zsh/ # Zsh-related functionality
└── target/ # Build artifacts
- Rust (for running this project)
- Git (for cloning repositories)
- Curl (for downloading scripts)
-
Clone this repository:
git clone https://github.com/karthik-js/dotfiles.git cd dotfiles
-
Make the
init.sh
script executable:chmod +x init.sh
-
Run the
init.sh
script:./init.sh
-
Reload your Zsh configuration:
source ~/.zshrc
-
Fork this repository to your GitHub account.
-
Clone your forked repository:
git clone https://github.com/your-username/dotfiles.git cd dotfiles
-
Make the
init.sh
script executable:chmod +x init.sh
-
Run the
init.sh
script:./init.sh
-
Reload your Zsh configuration:
source ~/.zshrc
- Zsh Configurations: Modify files in the
configurations/zsh
directory to customize your Zsh setup. - Homebrew Packages: Add or remove packages in the
configurations/brew/Brewfile
.
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License.