Cross-platform dotfiles with automatic theme switching.
- Zsh - Shell configuration with aliases, history, and completions
- Neovim - LazyVim-based config with TokyoNight theme
- Tmux - Terminal multiplexer with vim-style navigation
- Git - Config with delta for diffs and useful aliases
- Ghostty - Terminal emulator config (macOS)
- fzf, ripgrep, fd - Fast searching
- eza - Modern ls replacement
- bat - Syntax-highlighted cat
- lazygit - Git TUI
- fnm - Node version manager
- uv - Python package manager
- Claude Code - AI coding assistant
git clone https://github.com/s-machina/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./bootstrap.shThe bootstrap script will:
- Install Homebrew (macOS) or use your system package manager (Linux)
- Install all packages from the Brewfile
- Install Claude Code via npm
- Symlink dotfiles using GNU Stow
- Set up Claude Code configuration (selective symlinks)
- Set up automatic theme switching (macOS)
| Feature | macOS | Linux |
|---|---|---|
| Package installation | Homebrew | apt/dnf/pacman |
| Theme switching | Auto | Manual |
| Ghostty config | Yes | No |
Themes automatically sync with your system appearance:
- Dark mode: TokyoNight Storm
- Light mode: TokyoNight Day
This works across Neovim, Tmux, and Ghostty via a background daemon.
dotfiles/
├── bootstrap.sh # Main installer
├── Brewfile # Package list
├── shell/ # Zsh config
├── neovim/ # Neovim config
├── tmux/ # Tmux config
├── git/ # Git config
├── claude-code/ # Claude Code config
├── ghostty/ # Ghostty config (macOS)
├── themes/ # Theme switching scripts
├── macos/ # macOS-specific files
└── scripts/ # Setup scripts
- Edit
~/.gitconfig.localfor personal git settings (name, email) - Configure Claude Code settings in
~/.claude/settings.jsonfor machine-specific config - Restart your terminal or run
source ~/.zshrc