Skip to content

Configuration files for alacritty, asdf, neovim, tmux, zsh, and more.

Notifications You must be signed in to change notification settings

dickdavis/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

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.

Set-up

Clone the repo.

git clone git@github.com:dickdavis/dotfiles.git

Create a ~/.config directory to store all of the configuration files.

mkdir ~/.config

Follow instructions for each tool to get started.


homebrew

Install homebrew.

/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

alacritty

Run the scripts/configure_alacritty script to install and configure alacritty. Ensure you install the font manually after the script completes.

Manual instructions

Install alacritty.

brew install --cask alacritty --no-quarantine

Make a config directory for alacritty.

mkdir ~/.config/alacritty

Copy the config file to the ~/.config/alacritty directory.

cp templates/.config/alacritty/alacritty.toml ~/.config/alacritty/alacritty.toml

Install the Fire Code Nerd font by downloading the font and installing it.


zsh

Run the scripts/configure_zsh script to install and configure zsh. Ensure you install the dracula theme manually after the script completes.

Manual instructions

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/zsh

Move the oh-my-zsh installation over to the ~/.config/zsh directory.

mv ~/.oh-my-zsh ~/.config/zsh/.oh-my-zsh

Copy 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 ~/.zshenv

Follow the instructions here to install the dracula theme manually.


direnv

Run the scripts/configure_direnv script to install and configure direnv.

Manual instructions

Install direnv.

brew install direnv

asdf

Run the scripts/configure_asdf script to install and configure asdf.

Manual instructions

Install asdf.

brew install coreutils git
brew install asdf

Set 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-gems

Install 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 install

tmux

Run the scripts/configure_tmux script to install and configure tmux. Ensure you manually install the plugins after the script completes.

Manual instructions

Install tmux.

brew install tmux

Make a config directory for tmux.

mkdir ~/.config/tmux

Copy the config file to the ~/.config/tmux directory.

cp templates/.config/tmux/tmux.conf ~/.config/tmux/tmux.conf

Install the tmux package manager.

git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm

Reload the tmux environment to source TPM.

tmux source ~/.config/tmux/tmux.conf

Install the plugins by pressing prefix + I.


tmuxinator

Run the scripts/configure_tmuxinator script to install and configure tmuxinator.

Manual instructions

Install tmuxinator if not already installed.

gem install tmuxinator

Copy the example layouts to ~/.config/tmuxinator/ directory.

cp -r templates/.config/tmuxinator/* ~/.config/tmuxinator

Copy the example layouts and modify as necessary per project.


tmate

Run the scripts/configure_tmate script to install and configure tmate.

Manual instructions

Install tmate.

brew install tmate

Copy the config file to the home directory.

cp templates/.config/tmate/tmate.conf ~/.config/tmate/tmate.conf

neovim

Run the scripts/configure_neovim script to install and configure neovim. Ensure you install the plugins after the script completes.

Manual instructions

Install neovim.

brew install neovim

Install ripgrep.

brew install ripgrep

Make a config directory for neovim.

mkdir ~/.config/nvim

Copy .config/nvim to the ~/.config/nvim directory.

cp -r templates/.config/nvim/ ~/.config/nvim

Run :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.sh

git

Run the scripts/configure_git script to install and configure git. This will prompt for your name and email for Git configuration.

./scripts/configure_git

Or provide your name and email as command-line arguments:

./scripts/configure_git -n "Your Name" -e "your.email@example.com"

Manual instructions

Install ctags for the git hooks:

brew install ctags

Create 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 true

The .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.


Github CLI

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.

Manual instructions

Install the gh CLI.

brew install gh

Login.

gh auth login

Generate 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/config

Add the key to the SSH agent.

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Add the key to the Github account.

gh ssh-key add ~/.ssh/id_ed25519.pub --title "$(hostname)" --type authentication

Copy the config file to the ~/.config/gh directory.

cp templates/.config/gh/config.yml ~/.config/gh/config.yml

Claude Code

Install the claude-code package using the native installer.

curl -fsSL https://claude.ai/install.sh | bash

Enable vim keybindings with the /vim slash command.

Add a local MCP server (example):

claude mcp add my-server -- /path/to/server

Claude Agents

Custom 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_agents

Manual 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 analysis
  • ruby-expert-engineer: Specializes in Ruby/Rails development with RSpec and standardrb
  • terraform-aws-architect: Designs and implements AWS infrastructure using Terraform
  • troubleshooting-engineer: Diagnoses and resolves complex software issues

Claude Desktop

Install Claude Desktop by downloading it from the official website.

Add a local MCP server by following the official instructions.


Dash

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.


Podman Desktop

Install Podman. Refer to the documentation for further installation and configuration instructions.

brew install podman-desktop

AutoRaise

Install AutoRaise and enable it in system preferences.

brew install --cask dimentium/autoraise/autoraiseapp

About

Configuration files for alacritty, asdf, neovim, tmux, zsh, and more.

Topics

Resources

Stars

Watchers

Forks