Write once, run everywhere.
This repository manages my configuration for macOS and Linux (WSL2), ensuring a consistent development environment across machines.
This automation handles the Linux/WSL2 environment. The Windows host must be set up manually.
- Install WezTerm: Install the WezTerm terminal on Windows.
- Install Fonts on Windows:
- Download JetBrainsMono Nerd Font.
- Unzip and install the font files into Windows (Select all -> Right Click -> Install).
- Note: WezTerm running on Windows cannot see fonts installed inside WSL.
- Proceed with Installation: Open WezTerm, launch WSL (
wsl), and follow the steps below.
git clone https://github.com/YOUR_USERNAME/dotfiles.git ~/dotfiles
cd ~/dotfilesThis script will backup your existing config, create symlinks, and install dependencies via Homebrew.
./install.shYour terminal is supercharged with modern Rust-based tools. Here is how to use them.
| Command | Tool | Description |
|---|---|---|
z <name> |
zoxide | Jump to any directory instantly (fuzzy match). |
zi |
zoxide | Interactive directory selection with FZF. |
ls |
eza | Modern, colorful directory listing with icons and git status. |
cat <file> |
bat | View file with syntax highlighting and line numbers. |
del <file> |
trash-cli | Safely delete files to the system trash (instead of rm). |
y |
yazi | Blazing fast terminal file manager (like Finder/Explorer). |
| Command | Tool | Description |
|---|---|---|
lg |
lazygit | Full terminal UI for Git. Never type git add again. |
ld |
lazydocker | Full terminal UI for Docker. View logs, restart containers easily. |
delta |
git-delta | Beautiful side-by-side git diffs (auto-configured). |
| Command | Tool | Description |
|---|---|---|
Ctrl+T |
fzf | Fuzzy find files in current dir (with Live Preview). |
Alt+C |
fzf | Fuzzy find directories and cd into them. |
Ctrl+R |
mcfly | Smart shell history search (uses AI ranking). |
help <cmd> |
tealdeer | Simplified man pages (e.g., help tar). |
| Command | Tool | Description |
|---|---|---|
btop |
btop | System monitor (CPU, Mem, Network) with Tokyo Night theme. |
These files are ignored by git to keep your secrets safe. You must create them manually on each new machine.
Set your git identity to ensure your commits are attributed correctly.
[user]
name = Your Name
email = you@example.comAdd your API keys, tokens, and machine-specific logic here.
# Secrets
export ANTHROPIC_API_KEY="sk-..."
export GITHUB_TOKEN="ghp_..."
# Machine-specific Aliases
alias work="cd ~/work/projects"-
Sync: To get the latest config on any machine:
cd ~/dotfiles && git pull && ./install.sh
Note: Running
./install.shacts as a "repair" or "update" script. It is safe to run multiple times. -
Update: To save changes:
- Edit your config files normally (e.g.,
~/.zshrc). cd ~/dotfilesgit commit -am "Update config"git push
- Edit your config files normally (e.g.,
Brewfile: The manifest of installed tools.zsh/: Shell configuration (Aliases, FZF, Tools init).wezterm/: WezTerm styling (Tokyo Night Light) and keybindings.git/: Global git configuration (Delta, Excludes).nvim/: LazyVim configuration.btop/: System monitor config.