This repository contains personal configuration files (dotfiles) for a macOS/Linux development environment. It manages configurations for shell, editors, terminals, and other tools using a custom installation script that handles symlinking and initialization.
The repository is organized into "groups" (directories), each representing a tool or logical collection of configs.
- Group Directories: (e.g.,
zsh/,nvim/,tmux/) contain the configuration files. - File Mapping: Files inside a group are mapped relative to the user's home directory (
$HOME).- Example:
nvim/.config/nvim/init.luais symlinked to~/.config/nvim/init.lua.
- Example:
- Initialization Scripts: Files named
init.scriptwithin a group are executed by the installer rather than symlinked.
The installation process is automated via install.sh.
- Required:
git - Recommended:
neovim,tmux,zsh,ripgrep,python3
To install or update the dotfiles:
./install.shMechanism:
- Symlinking: Iterates through all group directories. For each file (excluding
init.script), it creates a symbolic link in$HOMEpointing to the file in the repo. It prompts before replacing existing files. - Initialization: Finds and executes all
init.scriptfiles found in the repository (e.g., installing zsh antidote, tmux tpm).
- Config: Lua-based configuration (
init.lua). - Plugin Manager:
lazy.nvim(Automatically bootstrapped).
- Plugin Manager:
antidote(installed viainit.script). - Prompt:
pure. - Features:
zsh-autosuggestions,zsh-syntax-highlighting,zsh-eza,atuin.
- Config:
.tmux.conf(Prefix set toCtrl-a). - Plugin Manager: TPM (Tmux Plugin Manager).
- Note: After the first launch, open a new tmux session and install the TPM plugins using
<ctrl-a> I.
- Window Management:
aerospace(for macOS tiling). - Terminals:
alacritty/,wezterm/,ghostty/.
- Adding Configs: Create a new directory for the tool (if it doesn't exist) and replicate the path structure relative to
$HOME. Run./install.shto link it. - Scripts: Use
init.scriptfor actions that require execution (installing binaries, downloading plugins) instead of just linking. - Idempotency: The
install.shscript is designed to be run multiple times safely. It checks if links already exist and match.