Dotfiles

From Noah.org
Jump to navigationJump to search

All of my dotfiles are as universal as possible so they usually work on Linux, BSD, and Solaris. All of my systems use exactly the same dotfiles so I can easily move my home environment. Some of the universal dotfiles will source local dotfiles so you can customize individual systems. For example, the universal .bashrc sources .bashrc_local. The dotfiles sync script described below will not update the local variants. In most cases I find I never need any local tweaks with the exception of Mutt -- obviously the universal muttrc needs to source muttrc_local.

.dotfiles sync script

I have a shell script that I run periodically to get the latest versions of my dotfiles.

   .dotfiles

The first thing I do on a new system is get the .dotfiles script and then run it to sync all the other dotfiles. In the examples below you don't have to `cd ~` if you prefer to download the dotfiles into some other directory.

Running the following commands will erase your current home dotfiles (.bashrc and friends).

cd ~
wget http://www.noah.org/engineering/dotfiles/.dotfiles && chmod 755 .dotfiles
./.dotfiles

If you prefer curl use this:

cd ~
curl -o .dotfiles http://www.noah.org/engineering/dotfiles/.dotfiles && chmod 755 .dotfiles
./.dotfiles

The .dotfiles sync script never updates the .bashrc_local or muttrc_local or other *_local files.

I considered using something like Subversion to store these dotfiles, but I found this little script to be simpler and quicker for my needs. Plus tar, gzip, and either wget or curl are always available whereas I usually have to install Subversion on a new system.

my dotfiles

I keep all of my beloved UNIX dotfiles in an gzip archive here:

 dotfiles.tar.gz

You can browse the individual dotfiles here:

 .bashrc
 .bash_aliases
 .vim/
 .vimrc
 .inputrc
 .lynxrc
 .mailcap
 .pythonrc
 .screenrc
 bin/
 .fonts/
 .mutt/
 .subversion/

I try to get all of the bash dotfiles to work on both Linux and BSD, with Linux being favored. I don't like my dotfiles to depend too much on the platform I'm running on, but this doesn't always work too well with older BSD systems. It's harmless when it fails -- sometimes I get warnings when I login on really old BSD systems.