A collection of dotfiles to make my life at the command line easier (or harder).
Found, borrowed, stolen, picked, and pulled from peers, colleagues, blogs, forums, posts, AI, Claude, and more. Refined through daily use at home, on the job, and remotely.
Used across various platforms for various things.
- π¨ Catppuccin Mocha theme across Ghostty, fzf, and Neovim
- βοΈ Automated setup with intelligent backup and symlink management
- π» Platform-specific profiles for macOS and Linux
- π Modern tooling with Starship prompt, Zinit plugin manager, and NVChad
- β¨οΈ Vi mode keybindings in zsh for modal editing
- πͺ Tmux integration with plugin management and custom layouts
- π€ Claude Code configuration with custom skills and git safety hooks
Required:
- π Git - Version control (required for setup and plugin management)
- π zsh - Shell (recommended as default shell)
- π₯ curl or wget - For downloading plugins
π macOS:
- πΊ Homebrew - Package manager
Recommended:
- π» Ghostty - Fast, feature-rich terminal emulator
- π€ JetBrains Mono Nerd Font - Nerd Font with icon support (required for prompt symbols)
- π Starship - Fast, customizable cross-shell prompt
- π Neovim - Modern vim with NVChad configuration
- πͺ tmux - Terminal multiplexer with plugin support
- π fzf - Fuzzy finder for command history and file search
- π zoxide - Smarter cd command
Optional:
- π¨ vivid - LS_COLORS generator (Catppuccin theme)
- π‘ mosh - Mobile shell for better remote connections
- π pyenv - Python version manager
- π¦ nvm - Node version manager
- π₯ Bun - Fast JavaScript runtime and package manager
- π€ Claude Code - AI-powered coding assistant CLI
The setup script automatically installs Zinit plugin manager, NVChad, and Tmux Plugin Manager.
- π macOS
- π§ Linux
- π± iPadOS (via Blink)
Run this command to check which tools are installed:
for cmd in git zsh curl wget starship nvim tmux fzf zoxide; do command -v $cmd >/dev/null && echo "β $cmd" || echo "β $cmd"; donegit clone https://github.com/just1jray/dots.git ~/Developer/src/dots
cd ~/Developer/src/dots
./setup.sh./setup.sh [options]
Options:
-h, --help Show help message
-f, --force Force overwrite without backup
-n, --dry-run Preview changes without applying
-s, --skip-plugins Skip plugin installation
-c, --check-nvchad Check NVChad installation status- π Creates necessary directories for configs and plugins
- πΎ Backs up existing configs (unless
--forceis used) - π Symlinks config files to proper locations:
~/.zshrcβzsh/zshrc~/.config/starship.tomlβstarship/starship.toml~/.config/nvim/βnvim/~/.tmux.confβtmux/tmux.conf~/.vimrcβvim/vimrc~/.claude/βclaude/(if Claude Code is installed)
- π Installs Zinit plugin manager for zsh
- π Installs NVChad for Neovim (if nvim is installed)
- πͺ Installs Tmux Plugin Manager (TPM) and plugins
- π» Loads platform-specific profiles based on OS
The zshrc automatically loads platform-specific profiles:
- π macOS: Sources
~/.config/zsh/profile-macos - π§ Linux: Sources
~/.config/zsh/profile-linux
Add platform-specific environment variables, paths, or aliases to these files.
Edit starship/starship.toml to customize your prompt appearance and modules.
The ghostty/config includes several customizations:
- β‘ Quick terminal - Toggle terminal with
ctrl+``(requires Ghostty 1.1+) - βοΈ Split keybindings:
cmd+shift+enter- Horizontal splitcmd+opt+enter- Vertical splitcmd+d- Close split
Customize Neovim by editing files in nvim/lua/:
chadrc.lua- NVChad theme and UI settingsoptions.lua- Vim optionsmappings.lua- Custom keybindingsplugins/- Plugin configurations
The dotfiles include Claude Code configuration in the claude/ directory:
- πͺ hooks/ - Custom hook scripts
stop-hook-git-check.sh- Git safety hook that prevents closing sessions with uncommitted/unpushed changes
- π¬ commands/ - Custom slash commands
/review-edu- Educational code review command
- π§ skills/ - Custom Claude Code skills
session-start-hook/- Skill for creating startup hooks in repositoriescode-review-edu/- Thorough code review skill (triggers on "review this code", "find bugs", etc.)
The setup script automatically symlinks ~/.claude/ to the claude/ directory in this repository.
Note: Claude Code will create additional directories in ~/.claude/ for session data, plans, and other runtime files. These are managed by Claude and not tracked in this dotfiles repository.
Open to suggestions, feedback, pull requests, forks, and/or ridicule.