Skip to content

Personal Neovim development environment with multi-language LSP support for React, TypeScript, Go, and Swift. Configured for consistent tooling and developer experience across projects.

Notifications You must be signed in to change notification settings

foxtrottwist/dotfiles

Repository files navigation

Dotfiles

Personal configuration files managed with GNU Stow.

Packages

Package Description
claude Claude Code settings (skills fetched separately)
git Global git config and gitignore (XDG-based)
ghostty Ghostty terminal emulator
mise Mise version manager
nvim Neovim configuration
starship Cross-shell prompt
zellij Zellij terminal multiplexer
zsh Zsh shell configuration (.zshrc, .zshenv, .zprofile)

Quick Start

Run the bootstrap script to install all dependencies and deploy configurations:

git clone git@github.com:foxtrottwist/dotfiles.git ~/dotfiles
cd ~/dotfiles
./setup.sh

The script will:

  • Install Homebrew (if not present)
  • Install required packages via Brewfile (stow, neovim, ripgrep, fd, zellij, mise, zsh, starship, ghostty)
  • Install Oh My Zsh (if not present)
  • Install Rust toolchain (if not present)
  • Deploy all configurations via stow
  • Fetch latest standalone skills from GitHub releases

Manual Setup

If you prefer manual installation:

Prerequisites

# Install all packages via Brewfile
brew bundle --file=Brewfile

# Or install individually:
# brew install stow neovim ripgrep fd zellij mise zsh starship
# brew install --cask ghostty

# Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Rust (optional but recommended)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Installation

cd ~/dotfiles

# Deploy all configurations
stow claude git ghostty mise nvim starship zellij zsh

# Or deploy individually
stow nvim
stow zsh

Updating

Run the update command to pull latest, restow, and fetch skills:

./setup.sh --update

Or manually:

cd ~/dotfiles
git pull
stow -R claude git ghostty mise nvim starship zellij zsh
./setup.sh --fetch-only

Verification

Check that everything is working:

./setup.sh --verify

Adding New Configurations

# Create package structure
mkdir -p ~/dotfiles/[app]/.config/[app]

# Move existing config
mv ~/.config/[app]/* ~/dotfiles/[app]/.config/[app]/

# Deploy with stow
cd ~/dotfiles && stow [app]

# Commit
git add [app]
git commit -m "add [app] configuration"

For configs that live in $HOME (not .config):

mkdir -p ~/dotfiles/[app]
mv ~/.[app]rc ~/dotfiles/[app]/
cd ~/dotfiles && stow [app]

Removing a Package

cd ~/dotfiles
stow -D [package]  # Removes symlinks

Skills

Most skills (iter, write, prompt-dev, chat-migration, code-audit) and the shortcuts-mcp server are bundled in the workflow-tools Claude Code plugin. The setup script fetches the two standalone skills from GitHub releases:

  • dotfiles-skill — Manages this dotfiles repo from Claude Code
  • submodule-sync — Git submodule workflow automation

Downloaded as .skill files and unpacked to ~/.claude/skills/.

To update standalone skills to latest releases:

./setup.sh --fetch-only

Git Package

The git package stows a global git config and gitignore to ~/.config/git/ (the XDG default path). Shared settings like pull.rebase, push.autoSetupRemote, and rerere are tracked in the repo. Machine-specific settings (name, email) live in a local file that isn't stowed.

After stowing, create your local config:

git config --file ~/.config/git/config.local user.name "Your Name"
git config --file ~/.config/git/config.local user.email "you@example.com"

If you already have a ~/.gitconfig, remove it so git uses the XDG path:

rm ~/.gitconfig

Optional Tools

These tools are detected and configured automatically if present:

  • Miniconda - Python environment manager (~/miniconda3/)
  • LM Studio CLI - Local LLM tooling (~/.lmstudio/)
  • Rover - Apollo GraphQL CLI (~/.rover/)

Troubleshooting

Stow conflicts

If stow reports conflicts, existing files may need to be removed or backed up:

# Check what exists
ls -la ~/.config/nvim

# Back up and retry
mv ~/.config/nvim ~/.config/nvim.bak
stow nvim

Shell errors on startup

The zsh configuration includes existence checks for optional tools. If you see errors:

  1. Run ./setup.sh --verify to identify missing dependencies
  2. Install missing tools or remove references from .zshrc

About

Personal Neovim development environment with multi-language LSP support for React, TypeScript, Go, and Swift. Configured for consistent tooling and developer experience across projects.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors