Config files of a Ruby developer who refuses to leave the terminal and is teaching AI to pair program
Primarily for me (hi future Christine!), but if you're a Ruby dev who lives in the terminal or you're curious about AI-assisted workflows, steal what works.
.bash_profile&.bashrc- Homebrew bash 5 with mise for version management.zprofile&.zshrc- Minimal zsh, kept in step with bash for when I reach for it- Starship prompt with a palette generated for every tmux theme
.config/nvim/init.lua- Lua config with vim-plug (it works and I'm stubborn)- Gruvbox theme, Rails plugins, FZF integration
.config/tmux/- Modular config with eleven themes and a switcher (seeTHEMES.md)- Vim-style copy/paste that actually works with macOS
- Pane borders with status indicators
Themes (switch with switch-theme.sh <name> or prefix + T):
| Name | Mode | Notes |
|---|---|---|
tokyo |
dark | Blue/purple, the original |
catppuccin |
dark | Soft pastels |
everforest |
dark | Nature-inspired, best readability for diffs |
solstice |
dark | Tropical ocean at dusk |
equinox |
dark | Woodsmoke and late harvest |
original |
dark | The first saved theme, a Catppuccin variant |
latte |
light | Catppuccin light variant |
rosepine-dawn |
light | Warm cream, high contrast for reading AI output |
gruvbox-light |
light | Warm neutral, highest contrast for terminal tools |
solstice-dawn |
light | Sunrise on the beach |
equinox-dawn |
light | Light through turning leaves |
Switching a theme also sets the Starship palette, the Alacritty theme, glow's
style, and Neovim's background to match. Details in .config/tmux/THEMES.md.
alacritty/alacritty.toml- Window, shell, and two pointer imports: theme and fontalacritty/fonts/- One file per font;switch-font.sh <name>picks one
bin/dev-session- Sets up a 2-pane tmux layout: shell + Claude (docs inbin/README.md)bin/git-recent*- Recently active branches, sized to the terminal.claude/- Claude Code preferences (code style, git workflow, PR conventions)
.gitconfig- Aliases (git pf,git can,git up), worktree helpers (git wclean,git wlist), GPG signing- Stacked-branch defaults:
rebase.updateRefs,autoSquash,autoStash,rerere,push.autoSetupRemote
┌─────────────────────────┬─────────────────────────┐
│ │ │
│ Shell │ Claude Code │
│ (commands, server) │ (AI pair programmer) │
│ │ │
└─────────────────────────┴─────────────────────────┘
Claude handles editing, git, tests, and codebase exploration directly. The shell is for servers, migrations, and anything needing direct control.
git clone git@github.com:cseeman/dotfiles.git ~/Documents/Repos/dotfiles
cd ~/Documents/Repos/dotfiles
./install.sh --dry-run # see what would change
./install.shThe installer, in order:
- Symlinks every config into
$HOME, moving anything it replaces to~/.dotfiles-backup/<timestamp>/. - Runs
brew bundlefrom the Brewfile (skip with--no-brew). - Clones tpm and installs the tmux plugins.
- Clones the alacritty-theme collection.
- Sets the default tmux theme (equinox-dawn) and Alacritty font (Maple) if none is active.
- Fetches vim-plug and installs the Neovim plugins.
Re-running is safe; links already in place are skipped.
Machine-specific settings stay out of the repo: ~/.bashrc.local,
~/.zshrc.local, and ~/.gitconfig.local are sourced or included when
present. The installer seeds ~/.gitconfig.local with a github.user line,
which .bashrc uses to hand Bundler a GitHub Packages credential.
make check lints the shell scripts, sources every tmux config into a scratch
server, and starts Neovim headless. Run it before committing.
Opinionated and personal. Your mileage may vary. If you spot something wrong, let me know, Rails devs gotta stick together.