For managing the dotfiles I'm using the Rotz tool.
Best part of Rotz is it can be used on any system (Linux/Mac and even Windows as well). Another thing is that you can not only configure but also install softwares using Rotz. One just has to maintain config files for it. Supports yaml, toml and json formats for config files. I work on Windows and Linux (mostly Ubuntu), so I have created two script files, setup.ps1 for Windows and setup for Linux.
Below is the setup for Windows and Linux
# NOTE: All below commands are run in Powershell
# Install Git
winget install --id Git.Git --exact --source winget
# OR one can use scoop, however, I recommend installing from either winget / using official Git executable.
# Install Rotz (highly recommended to use Powershell):
Invoke-RestMethod volllly.github.io/rotz/install.ps1 | Invoke-Expression
# Restart the system just so that Git and Rotz are installed properly.
# Once restarted, clone the repo using Rotz.
# It is highly recommended to clone it in home folder.
cd ~
rotz clone https://gitlab.com/aniketgm/dotfiles.git
# This will clone the dotfiles repo into the home directory as ~/.dotfiles
# After this, either run the setup.ps1 file OR manually run 'rotz' for each packages.
# For running the script, open powershell as admin and do this:
cd ~/.dotfiles
.\setup.ps1
- Notes: The setup.ps1 file when run performs the following operations:
- First install essential packages/softwares:
- Microsoft VCRedist 2015-2022 (required for various Win apps to run)
- PowerShell 7 (Latest PowerShell with cool features)
- Then install other softwares:
- Scoop (CLI installer for Windows)
- Windows Terminal (Terminal tool provided by Microsoft)
- LazyGit (Git management tool)
- LazyVim (NeoVim distribution, IDE for development)
- Using scoop install further packages like 7zip, fzf, ripgrep, wezterm, etc..
- Finally, Link configurations to their respective locations.
- These will be symlinks. Check out the config.yaml under the rotz folder
- Other misc tools of interest (not covered in the setup)
- First install essential packages/softwares:
# Install Git required for rotz
sudo apt install git unzip dos2unix
# Install rotz
curl -fsSL volllly.github.io/rotz/install.sh | sh
echo "export ROTZ_INSTALL='/home/$USER/.rotz'" >> ~/.bashrc
echo 'export PATH="$ROTZ_INSTALL/bin:$PATH"' >> ~/.bashrc
# Source bashrc to enable rotz
source ~/.bashrc
# Clone dotfiles using rotz. This will clone as ~/.dotfiles
cd ~
rotz clone https://gitlab.com/aniketgm/dotfiles.git
# Now install rest of the packages
cd ~/.dotfiles # Assuming you cloned the dotfiles in the $HOME directory
chmod +x ./setup # Set execute permissions if not set.
./setup
- Notes: The setup file when run performs the following operations:
- First install essential packages/softwares:
- build-essentials, clangd, curl, ctags, etc.
- Then install other softwares:
- LazyGit (Git management tool)
- LazyVim (NeoVim distribution, IDE for development)
- Other tools like fzf, ripgrep, wezterm, etc..
- Finally, Link configurations to their respective locations.
- These will be symlinks. Check out the config.yaml under the rotz folder
- First install essential packages/softwares: