This repo contains my own dotfiles along with some useful distribution tools.

You can use this is an inspiration source for your own dotfiles, or flat out fork it and modify to your liking. If you go this way, you would want to at least remove my ssh keys so that I can't get onto your boxes ;)

Platforms and tools

I use these dotfiles on a bunch of platforms, and they are known to work with at least the following:

  • OpenBSD, FreeBSD, NetBSD
  • ArchLinux, Ubuntu, RHEL
  • Solaris 8+
  • HP-UX
  • Bash and KSH

Some configs for any given platform can be broken at any given time, I don't actually test all these combinations after every commit. At the very least, OpenBSD and ArchLinux should work because both are my main working tools.

You are most likely to be interested in .myshrc (bash/ksh rc, sourced from shell-specific configs), .vimrc, .tmux.conf & .config/openbox/rc.xml — these are the most well-developed configs in here, with shell leading by a huge margin.


Download dependencies

This section describes a generic way to fetch dependencies, please use your package manager where you can.

I'm using peru to manage the dependencies. Full list is in peru.yaml, but generally it's things like plugins and color schemes, you can totally install with all that stuff missing if you can't be bothered or peru does not work on your box (it needs a modern python).

First, you will need to install peru, then run make sync and bam you are done. All the dependencies have been fetched and placed where they belong. Proceed to install.

You can always fetch everything manually too, just consult the peru.yaml file.


Put the sources somewhere, modify to your liking, then execute:

make local

This will place the config files in your local ~.

WARNING: this will not copy across vim plugins fetched by peru. This is intentional, since most likely you want to install these via your package manager.

Makefile includes some nice rules to help you distribute the dotfiles to all your remote boxes. Remote boxes only need ssh.

Remote boxes: known

Adjust the Makefile and create a rule for every known remote host. You can create rules that will group these boxes, see the my and all rules.

Once you're done, you can run make rulename to push to your remote box(es), under the rule rulename.

Remote boxes: unknown

I often get to work on new boxes so here's what I use to quickly push my dotfiles to some remote box, without having to put it into my Makefile:

make remote somebox2 somebox3

Visit my blog if you want to know more about how this works (or just read the Makefile).

Clean up EY references

Don't forget: you probably need to remove any and all references to my personal stuff if you want to use this as the basis for your own dotfiles.

At the very least, do the following:

rm .ssh/id_* .ssh/authorized_keys
sed -i "s/yunake/$LOGNAME/g" .profile .kshrc .bashrc .bash_profile .myshrc

Remove any references to my hosts from .ssh/config and Makefile, change name and email in .hgrc and .gitconfig.


Send your patches to or via bitbucket. Please state how the patch was tested and which platforms are supported.

I try to keep everything as platform-agnostic as possible, I have to. Please keep this in mind if you plan to make a contribution.


WTFPL version 2, ⓒ Eugene Yunak