claytron / dotfiles

My *nix confs

This URL has Read+Write access

clayton (author)
Sun Nov 08 18:31:46 -0800 2009
commit  a5e8ab44b63412e9020ba9952eddfd5b712e4df4
tree    821d777c7e717e5165f931bf7cfea321db714460
parent  b13a2693e443867f7884151930c7721afaeec5f3
name age message
file .ackrc Loading commit data...
file .bash_profile
file .bashrc Fri Jun 12 14:46:01 -0700 2009 use the tick for completion cycling in bash g... [clayton]
file .commonenv
file .commonfuncs Thu Sep 24 06:40:37 -0700 2009 * added Arch Linux shortcuts for pacman and gn... [clayton]
file .commonprofile Wed Oct 14 22:43:50 -0700 2009 getting my git files into svn git-svn-id: http... [clayton]
file .commonrc
file .ctags Wed Nov 04 19:14:26 -0800 2009 * open taglist on the opposite side of the NER... [clayton]
file .gitconfig Wed Oct 21 14:42:06 -0700 2009 remove abandoned header [claytron]
file .gitignore Wed Nov 04 20:29:04 -0800 2009 ignore some vim generated files git-svn-id: ht... [clayton]
file .gvimrc
file .inputrc Tue Apr 28 00:13:45 -0700 2009 turn the bell off!! git-svn-id: https://svn.si... [clayton]
file .pystartup Mon Apr 27 22:02:05 -0700 2009 * slight update so that if readline is not ava... [clayton]
file .reviewboardrc Sun Aug 09 16:51:58 -0700 2009 adding my reviewboard rc git-svn-id: https://... [clayton]
file .screenrc Mon Jan 19 05:04:34 -0800 2009 moving this into 'dotfiles' git-svn-id: https... [clayton]
directory .vim/
file .vim_commonrc
directory .vimperator/
file .vimperatorrc
file .vimrc
file .zprofile Mon Apr 27 22:40:44 -0700 2009 I made a crapload of changes: * created a PAT... [clayton]
file .zshenv
file .zshprompt Fri Jul 31 05:40:20 -0700 2009 condition on the projects dir, that could be pr... [clayton]
file .zshprompt_simple Tue May 12 07:12:57 -0700 2009 * remove status line from LESS var * use chec... [clayton]
file .zshprompt_vcs Sun Aug 09 16:52:31 -0700 2009 adding a vcs prompt example from the internets ... [clayton]
file .zshrc
file README.mdown Wed Oct 14 22:43:50 -0700 2009 getting my git files into svn git-svn-id: http... [clayton]
file config Thu Nov 05 18:04:20 -0800 2009 ignore some vim generated files git-svn-id: h... [clayton]
file create_links.sh Mon Nov 02 18:26:44 -0800 2009 couple of minor bugs in the create script git-... [clayton]
README.mdown

README (aka WTF is this?!?!)

All of these confs were compiled by Clayton Parker, aka claytron. Most of the confs have comments describing why/what is happening.

Get the latest from github

Caveats

I would strongly urge you not to use my confs directly. I am very picky about things, and this would certainly drive you crazy.

Another item of note is that I use vi editing mode in every place that will allow me to. This is set in the .inputrc and .zshrc. This would likely throw most people off as they are used to the emacs mode. The only issue I've run into with the vi mode is when you move from the end of the line in insert mode. When you try and go back to the end you can't without going to command mode and using a to add to the line.

A little history

To start off, here is a little background. Here in lies years of craziness all compiled into one nice little folder. I've been using the command line since 2003 when I was given a job as a systems administrator. I started on ZSH and have been using it ever since. Recently I decided to compile a set of confs that could be used with either ZSH or Bash (since most machines have at least bash).

Contents

Here is a list of all the files and a brief explanation of what they do.

.ackrc

Setup some new types for ack. Add to existing types (mainly Plone)

.bash_profile

Bash shell login code

.bashrc

Bash interactive shell setup

.commonenv

Common environment settings between Bash and ZSH

.commonfuncs

Common functions used between Bash and ZSH

.commonprofile

Common login code for Bash and ZSH. This includes code to svn up on each login so that the profile settings stay up-to-date

.commonrc

Common interactive shell setup for Bash and ZSH. This contains all my aliases

.inputrc

Readline configuration. Sets up all my command lines with vi :)

.pystartup

Interactive Python interpreter startup code. I use it to initialize rlcompleter2 or readline with tab completion.

.screenrc

Settings for screen

.vimrc

VIM settings

.vim

All my plugins and other misc. vim stuff

.zprofile

ZSH shell login code

.zshenv

ZSH environment setup. This includes an awesome PATH setup routine :)

.zshprompt

My default ZSH prompt. It's a modified version of Phil's Prompt

.zshprompt_simple

A simple version of my prompt that will work when the enhanced characters are not available

.zshrc

ZSH interactive shell code

config

My default .subversion/config setup. I wish I could set these defaults on the server :(

create_links.sh

A shell script that aids in setting up these conf files on every server. It contains an array of all the conf files that need to be symlinked. It will give you some feed back as to what it's linked and what was 'in the way'.

Usage in the wild

Here is how I typically set up my shell on a new system. This is assuming subversion is available. You could do something similar with git, but I haven't messed with that yet.

$ svn co https://repo/path/to/dotfiles/trunk .dotfiles
$ .dotfiles/create_links.sh
linking .screenrc
linking .vimrc
linking .zshenv
linking .zshprompt
linking .zshprompt_simple
linking .zshrc
linking .inputrc
linking .bash_profile
linking .bashrc
linking .commonrc
linking .commonenv
linking .commonprofile
Remove /home/clayton/.subversion/config so that it can be linked
linking .pystartup

Notice that it says the .subversion/config is in the way. So let's fix that.

$ rm .subversion/config
$ .dotfiles/create_links.sh
linking config

Now we are all set. Next time we log in the confs will be updated so that any new changes are added.

$ ssh some-machine

dotfiles updated:
U .dotfiles/.bashrc
At revision 10712.

$ qs

Since qs is an alias for .dotfiles/create_links.sh the latest confs are in place.

If you ever want to remove all the symlinks you can use the create_links.sh script by passing it the remove argument

$ .dotfiles/create_links.sh unlink
Unlinked /home/clayton/.screenrc
Unlinked /home/clayton/.vimrc
Unlinked /home/clayton/.zshenv
Unlinked /home/clayton/.zshprompt
Unlinked /home/clayton/.zshprompt_simple
Unlinked /home/clayton/.zshrc
Unlinked /home/clayton/.inputrc
Unlinked /home/clayton/.bash_profile
Unlinked /home/clayton/.bashrc
Unlinked /home/clayton/.commonrc
Unlinked /home/clayton/.commonenv
Unlinked /home/clayton/.commonprofile
Unlinked /home/clayton/.commonfuncs
Unlinked /home/clayton/.subversion/config
Unlinked /home/clayton/.pystartup

In addition to the remove argument there is cleanup. This will not only remove all the symlinks, but it will also remove all the other items created by the script. This can be slightly dangerous since that includes everything, including unversioned files.