Skip to content

Repository files navigation

Dotfiles

Config for the tools I actually use: bash and zsh, tmux, Neovim, git, and irb.

Most of the work happens on a Linux devbox over SSH; the Mac is a light checkout that mainly needs the shell and git config.

Install

Clone to ~/.dotfiles, then:

./install.sh

The script symlinks each file to its place in $HOME, and is safe to re-run. Use ./install.sh --dry-run to see what it would do first.

Because the files are symlinked, editing anything in this repo takes effect immediately. Re-running install.sh is only needed when a new file is added.

Anything real already sitting at a target path is moved to <name>.backup rather than deleted. Symlinks left behind by older versions of this repo are cleaned up automatically.

On the first run it also clones tpm, the tmux plugin manager. Two things still need a manual nudge afterwards:

  • open nvim — lazy.nvim bootstraps itself and installs plugins
  • inside tmux, press prefix + I to install the tmux plugins

What goes where

Repo pathSymlinked to
gitconfig~/.gitconfig
gitignore~/.gitignore
inputrc~/.inputrc
irbrc~/.irbrc
tmux.conf~/.tmux.conf
shell/bash_profile~/.bash_profile
shell/zshrc~/.zshrc
bin/~/.bin
nvim/~/.config/nvim

The rest of shell/ is not symlinked individually; bash_profile and zshrc source it directly out of the repo.

Documentation

Each tool has its own page, covering what is configured and why:

  • Shell — bash and zsh, aliases, functions, prompt, PATH
  • tmux — key bindings, status line, plugins, the session switcher
  • Neovim — plugins, key maps, LSP, running specs
  • Git — settings, aliases, the global ignore file
  • Ruby — the irb prompt

Local overrides

Machine-specific settings that should not be committed go in ~/.shell_local, which is sourced last by both shells. On the devbox that is what pulls in the devbox environment.

The tmux session switcher reads its search paths from ~/.tmux-sessionizer-paths if that file exists.

Conventions

  • Arrows over hjkl. Both tmux and Neovim are set up so arrow keys do the navigating. Nothing requires hjkl.
  • , is the Neovim leader.
  • Ctrl-b is the tmux prefix — the default, left alone deliberately.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages