.config/
├── .zshrc
├── .gitignore
├── zsh-modules/ # Modular ZSH configuration
│ ├── exports.zsh # Environment variables
│ ├── functions.zsh # Helper functions
│ ├── plugins.zsh # Oh My ZSH plugins
│ ├── aliases.zsh # Command aliases
│ └── node.zsh # Node.js/NVM configuration
├── nvim/
├── tmux/
│ ├── tmux.conf
│ └── plugins/ # TPM plugins
├── starship/
│ └── starship.toml
├── posting/ # Posting API client
│ └── config.yaml
└── wezterm/ # WezTerm terminal (config pending)
- Base: ZSH + Oh My ZSH
- Prompt: Starship cross-shell prompt with Catppuccin Frappe theme
[diff]
external = difft
[alias]
dlog = -c diff.external=difft log --ext-diff
dshow = -c diff.external=difft show --ext-diff
ddiff = -c diff.external=difft diff- Terminal Emulator: WezTerm (configuration pending)
- Shell: ZSH with Oh My ZSH framework
- Prompt: Starship with Catppuccin Frappe theme
- Multiplexer: Tmux with custom configuration
- File Management:
eza- Modern replacement for ls with icons and git integration
- Search:
fzf- Fuzzy finder for history and files
- API Testing:
posting- TUI HTTP client
-
Core Shell:
# Install ZSH yay -S zsh # Set ZDOTDIR in ~/.zshenv to use .config directory echo 'ZDOTDIR=~/.config' >> ~/.zshenv # Install Oh My ZSH sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # Install ZSH plugins git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone https://github.com/joshskidmore/zsh-fzf-history-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-fzf-history-search git clone https://github.com/lukechilds/zsh-nvm ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-nvm
-
Essential Tools:
# Eza (modern ls) yay -S eza # Starship prompt yay -S starship # FZF git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install # Ripgrep (for searching) sudo pacman -S ripgrep
-
Development Tools:
# Neovim # Install from package manager or build from source # Tmux sudo pacman -S tmux # TPM (Tmux Plugin Manager) git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
-
Language Runtimes:
# Node.js (via NVM - will be installed by zsh-nvm plugin) nvm install node # Bun curl -fsSL https://bun.sh/install | bash
The configuration uses a add_to_path function that:
- Checks if directory exists before adding
- Prevents duplicate PATH entries
- Supports prepending or appending to PATH