Awesome Open Source
Awesome Open Source

Dotfiles for Vim/Neovim, i3-gaps, NeoMutt, etc. pp. Bash functions and aliases, scripts, keybindings, more scripts,

Screenshot showing an xterm running Bash

There are three main directories: home, root, and misc.

  • The home directory contains files that should be linked to from $HOME and mirrors its directory structure.
  • The root directory contains files that should be linked to from outside $HOME. Paths reflect where symlinks should be created relative to the filesystem root directory.
  • The misc directory contains files that don't require linking.

For example, home/vim/vimrc would be the target of a link at ~/.vim/vimrc and root/usr/local/share/cows/dynamic-duo.cow should be linked to from /usr/local/share/cows/dynamic-duo.cow.


Be warned that my setup is personal, opinionated, and sometimes my own information is hard-coded. Some configuration is specific to Arch, the ThinkPad X220, or otherwise not portable. That being said, you can specifically install the configuration for individual programs without any extraneous changes being made. Installation uses GNU Make.

  • Clone this repository to ~/dotfiles.

  • Cherry-pick the configuration for programs you're interested in by giving Make their names. The makefile doesn't replace most conflicting files. Remove or move them manually. For example:

    mv ~/.vim ~/.vim.backup
    make vim

    You probably always want to specify targets when running make rather than installing all configuration. The currently implemented targets are: vim, nvim, git, bash, screen, mutt, conky, xterm, and gpg.

Make may consider targets to be up to date because of existing files that conflict with the links it should create. The -B flag (e.g. make -B vim) forces remaking of all considered targets. This only results in the removal of conflicting symlinks, but not regular files.

Use the -n flag (e.g. make -n vim) to preview the commands Make would execute.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Shell (229,252
Makefile (23,613
Bash (7,151
Dotfiles (6,732
Vim (5,854
Neovim (2,588
I3 (681
I3wm (633
Make (440
Rofi (402
Screen (323
I3 Gaps (215
Mutt (105
Irssi (44
Neomutt (39
Newsboat (34
Gnu Make (33
Fontconfig (29
Xbindkeys (6
Gnu Screen (5
Related Projects