This repository contains configuration files for the tools that are part of my development workflow.
Check here to view cheatsheets that document usage of the customizations.
Clone the repo.
git clone git@github.com:dickdavis/dotfiles.gitCreate a ~/.config directory to store all of the configuration files.
mkdir ~/.configFollow instructions for each tool to get started.
- homebrew: package management
- alacritty: terminal emulator
- zsh: shell
- direnv: load environment variables from config files
- asdf: version management for programming languages
- tmux: terminal multiplexing
- tmuxinator: managing tmux layouts
- tmate: pair-programming over ssh
- neovim: text editor
- git: version control
- Github CLI: interacting with Github via CLI
- Claude Code: using Claude within a terminal
- Claude Desktop: using Claude via app
- Dash: documentation tool
- Podman Desktop: building and running containers
- AutoRaise: focus follows mouse for Mac
Install homebrew.
/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Run the scripts/configure_alacritty script to install and configure alacritty. Ensure you install the font manually after the script completes.
Install alacritty.
brew install --cask alacritty --no-quarantineMake a config directory for alacritty.
mkdir ~/.config/alacrittyCopy the config file to the ~/.config/alacritty directory.
cp templates/.config/alacritty/alacritty.toml ~/.config/alacritty/alacritty.tomlInstall the Fire Code Nerd font by downloading the font and installing it.
Run the scripts/configure_zsh script to install and configure zsh. Ensure you install the dracula theme manually after the script completes.
Download and run the ohmyzsh script.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Make a config directory for zsh.
mkdir ~/.config/zshMove the oh-my-zsh installation over to the ~/.config/zsh directory.
mv ~/.oh-my-zsh ~/.config/zsh/.oh-my-zshCopy the config files over to the zsh config directory.
cp -r templates/.config/zsh/ ~/.config/zsh/Copy the .zshenv file to your home directory.
cp templates/.zshenv ~/.zshenvFollow the instructions here to install the dracula theme manually.
Run the scripts/configure_direnv script to install and configure direnv.
Install direnv.
brew install direnvRun the scripts/configure_asdf script to install and configure asdf.
Install asdf.
brew install coreutils git
brew install asdfSet up asdf to use XDG directories:
# Create directories according to XDG Base Directory spec
mkdir -p ~/.config/asdf
mkdir -p ~/.local/share/asdf
# Copy the configuration file
cp templates/.config/asdf/.asdfrc ~/.config/asdf/.asdfrc
# Copy the tool versions file
cp templates/.tool_versions ~/.tool-versions
# Copy the .default-gems file
cp templates/.default-gems ~/.default-gemsInstall the asdf plugins for default languages, and install the default versions specified in .tool_versions:
# Install ruby plugin
asdf plugin add ruby
# Install nodejs plugin (includes keyring setup for Node.js)
asdf plugin add nodejs
# Install java plugin
asdf plugin add java
# Install lua plugin
asdf plugin add lua
# Install elixir plugin
asdf plugin add elixir
# Install golang plugin
asdf plugin add golang
# Install python plugin
asdf plugin add python
# Install kubectl
asdf plugin add kubectl https://github.com/asdf-community/asdf-kubectl.git
# Install the versions specified in .tool_versions
asdf installRun the scripts/configure_tmux script to install and configure tmux. Ensure you manually install the plugins after the script completes.
Install tmux.
brew install tmuxMake a config directory for tmux.
mkdir ~/.config/tmuxCopy the config file to the ~/.config/tmux directory.
cp templates/.config/tmux/tmux.conf ~/.config/tmux/tmux.confInstall the tmux package manager.
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpmReload the tmux environment to source TPM.
tmux source ~/.config/tmux/tmux.confInstall the plugins by pressing prefix + I.
Run the scripts/configure_tmuxinator script to install and configure tmuxinator.
Install tmuxinator if not already installed.
gem install tmuxinatorCopy the example layouts to ~/.config/tmuxinator/ directory.
cp -r templates/.config/tmuxinator/* ~/.config/tmuxinatorCopy the example layouts and modify as necessary per project.
Run the scripts/configure_tmate script to install and configure tmate.
Install tmate.
brew install tmateCopy the config file to the home directory.
cp templates/.config/tmate/tmate.conf ~/.config/tmate/tmate.confRun the scripts/configure_neovim script to install and configure neovim. Ensure you install the plugins after the script completes.
Install neovim.
brew install neovimInstall ripgrep.
brew install ripgrepMake a config directory for neovim.
mkdir ~/.config/nvimCopy .config/nvim to the ~/.config/nvim directory.
cp -r templates/.config/nvim/ ~/.config/nvimRun :Lazy install to install the plugins.
Also, you should ensure that ruby-lsp and standardrb gems are installed.
Install the elixir-ls language server by downloading the zip file from here, then moving the unzipped directory to ~/.config/elixir-ls-v0. Make the language_server.sh script executable:
chmod +x ~/.config/elixir-ls-v0/language_server.shRun the scripts/configure_git script to install and configure git. This will prompt for your name and email for Git configuration.
./scripts/configure_gitOr provide your name and email as command-line arguments:
./scripts/configure_git -n "Your Name" -e "your.email@example.com"Install ctags for the git hooks:
brew install ctagsCreate a git template directory in your home directory:
mkdir -p ~/.git_template
cp -r templates/.git_template/ ~/.git_template/
chmod +x ~/.git_template/hooks/*Configure git:
# Set your git user information
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# Set the git template directory
git config --global init.templatedir ~/.git_template
# Set up tracking with remote
git config --global push.autoSetupRemote trueThe .git_template directory contains git hooks that automatically generate ctags when you perform git actions like commit, checkout, merge, and rebase. This helps with code navigation in editors that support ctags.
Run the scripts/configure_gh script to install and configure gh CLI. This will also setup an SSH key for the machine and add it to your Github account.
Install the gh CLI.
brew install ghLogin.
gh auth loginGenerate a new SSH key.
ssh-keygen -t ed25519 -C "[EMAIL]"Start the SSH agent.
eval "$(ssh-agent -s)"Copy the config file to the ~/.ssh directory.
cp templates/.ssh/config ~/.ssh/configAdd the key to the SSH agent.
ssh-add --apple-use-keychain ~/.ssh/id_ed25519Add the key to the Github account.
gh ssh-key add ~/.ssh/id_ed25519.pub --title "$(hostname)" --type authenticationCopy the config file to the ~/.config/gh directory.
cp templates/.config/gh/config.yml ~/.config/gh/config.ymlInstall the claude-code package using the native installer.
curl -fsSL https://claude.ai/install.sh | bashEnable vim keybindings with the /vim slash command.
Add a local MCP server (example):
claude mcp add my-server -- /path/to/serverCustom Claude agents are included in this repository to enhance Claude Code's capabilities for specific tasks.
Automated Installation:
Run the configuration script to copy all agents to your local Claude configuration:
./scripts/configure_claude_agentsManual Installation:
Copy the agent files to your Claude agents directory:
mkdir -p ~/.claude/agents
cp templates/.claude/agents/*.md ~/.claude/agents/Available Agents:
code-review-specialist: Provides thorough code review with security and quality analysisruby-expert-engineer: Specializes in Ruby/Rails development with RSpec and standardrbterraform-aws-architect: Designs and implements AWS infrastructure using Terraformtroubleshooting-engineer: Diagnoses and resolves complex software issues
Install Claude Desktop by downloading it from the official website.
Add a local MCP server by following the official instructions.
Install Dash by downloading it from the official website and then applying the license file.
Download the following docsets by usings the Dash > Settings > Downloads interface:
- Ruby
- Ruby on Rails
- Redis
- PostgreSQL
- JavaScript
- C
- Python
- Elixir
- Golang
- Common Lisp
- Font Awesome
- Git
- Ruby strftime
- Rspec Expectations
- Rails Migrations CLI
Generate and install the cheatsheets located in the cheatsheets/ directory. Run the scripts/generate_cheatsheets script to generate the cheatsheets.
Install Podman. Refer to the documentation for further installation and configuration instructions.
brew install podman-desktopInstall AutoRaise and enable it in system preferences.
brew install --cask dimentium/autoraise/autoraiseapp