Dotfiles are used to customize and automate you daily work on the terminal using scripts and aliases.
The "dotfiles" name is derived from the configuration files in Unix-like systems that start with a dot.
.bash_aliases.gitconfig
Clone the repository:
git clone https://github.com/carlos-algms/dotfiles.git
cd dotfilesThe bootstrapper script will create symbolic links in the home folder replacing existing files, so remember to backup.
Files to backup:
~/.bashrc~/.bash_profile~/.zshrc
./bootstrap.shbootstrap.bat- Entry point:
./bootstrap.sh- Orchestrates all installation scripts - Architecture: Iterates through subdirectories running individual
install.shscripts - Script conventions: logging and OS detection, see
AGENTS.md"File Operations Protocol"
Each major component has its own install.sh:
shell/install.sh- Shell configuration (detects OS and delegates to platform-specific installers)neovim/install.sh- Neovim setup (installs via brew/apt, creates symlink fromneovim/nvimto~/.config/nvim)kitty/install.sh- Kitty terminal (macOS only, symlinks config files)
- Scripts create symlinks to this repository rather than copying files
- Existing files are backed up with timestamp suffix before linking
- Platform-specific installers in
shell/[linux|macos|windows]/install-*.sh shell/zsh/install-zsh.shinstalls oh-my-zsh only when~/.oh-my-zshis missing. The oh-my-zsh installer replaces an existing~/.zshrcwith its own template and saves the old file as~/.zshrc.pre-oh-my-zsh, so a fresh machine gets a working file. Symlink your own~/.zshrcafterwards if you wantshell/zsh/installers/pnpm-shell-completion.shinstalls thepnpm-shell-completionoh-my-zsh plugin. It is a native binary, so it is faster thanpnpm completion zsh, which starts Node on shell start (~0.55s) and on every Tab (~0.3s). Rerun the script to update it: it compares the installed release tag with the latest GitHub release and reinstalls when they differ
# Install/update all configurations
./bootstrap.sh
# OR Install individual components
./shell/install.sh
./neovim/install.sh
./kitty/install.sh
# bootstrap.sh runs every component and lists the failed installers at the end.
# Installers are idempotent: rerun the failed ones.
# Linux only: install or update fzf, ripgrep, yazi, fnm, zoxide (+ Node LTS).
# Reinstalls a tool only when a newer release exists; rerun it to update them.
# Set GITHUB_TOKEN to avoid GitHub API rate limits.
./shell/linux/install-or-update-shell-tools.sh
# Sync neovim config via SSH
# Like a shared host like HostGator, GoDaddy, etc..
./neovim/sync-via-ssh.sh
# Herdr (not wired into bootstrap)
ln -s $(pwd)/herdr/config.toml ~/.config/herdr/config.toml| Carlos A. Gomes |