My personal dotfiles and setup scripts.
make setup # Install everything (nvm + Node LTS + npm)
make install-nvm # Install nvm only
make setup-nodejs # Setup Node.js and npm
make setup-nodejs-18 # Setup Node.js 18
make help # Show all available commandsjust setup # Install everything (nvm + Node LTS + npm)
just install-nvm # Install nvm only
just setup-nodejs # Setup Node.js and npm
just setup-node-18 # Setup Node.js 18
just setup-node-20 # Setup Node.js 20
just help # Show all available commands./scripts/setup.sh # Install everything
./scripts/install-nvm.sh # Install nvm only
./scripts/setup-nodejs.sh # Setup Node.js and npm (LTS)
./scripts/setup-nodejs.sh 18 # Setup Node.js 18Setup shell formatting, linting, and terminal tools:
| Tool | Type | Bash | Zsh | Purpose |
|---|---|---|---|---|
| shfmt | Formatter | ✓ | ✓ | Format shell scripts |
| shellcheck | Linter | ✓ | ✓ | Lint shell scripts for best practices |
| starship | Prompt | ✓ | ✓ | Cross-shell prompt (bash, zsh, fish, etc) |
| oh-my-zsh | Framework | ✗ | ✓ | ZSH-specific plugin framework |
| zsh-autosuggestions | Plugin | ✗ | ✓ | ZSH-specific plugin for suggestions |
| zsh-syntax-highlighting | Plugin | ✗ | ✓ | ZSH-specific plugin for syntax colors |
# Install shell formatting & linting tools
make setup-shell-tools
# or
just setup-shell-tools
# Script:
./scripts/setup-shell-tools.sh# Setup oh-my-zsh with plugins
make setup-zsh
# or
just setup-zsh
# Script:
./scripts/setup-zsh.shmake format-shell
# or
just format-shell
# Script:
./scripts/format-shell.shmake lint-shell
# or
just lint-shell
# Script:
./scripts/lint-shell.sh- Make sure scripts are executable:
chmod +x scripts/*.sh - Some installations may require
sudofor system-level packages - After running setup scripts, restart your terminal to ensure environment variables are loaded
shfmtformats shell scripts with consistent styleshellchecklints shell scripts for best practicesstarshipprovides a cross-shell prompt
This repo already keeps app configs in .config/:
- Most of the files in
.config/can be copied directly to '~/.config/' for app-level configs .config/config.ghostty.config/.vscode/(profile-level files likesettings.json,extensions.json, snippets)
Copy Ghostty config to:
$HOME/Library/Application\ Support/com.mitchellh.ghostty/config.ghostty
mkdir -p "$HOME/Library/Application Support/com.mitchellh.ghostty"
cp "$PWD/.config/config.ghostty" "$HOME/Library/Application Support/com.mitchellh.ghostty/config.ghostty"Link your profile config directory to:
$HOME/Library/Application\ Support/Code/User/profiles/<profile ID>/
PROFILE_ID="<profile ID>"
cp "$PWD/.config/.vscode/*" \
"$HOME/Library/Application Support/Code/User/profiles/$PROFILE_ID/"Replace <profile ID> with your actual profile folder name.
