my dotfiles
Shell Python Perl Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
base
bin
host-caprica
host-leonis
host-tauron
os-freebsd/.config/zsh/config
os-gnu
plugin-ack
plugin-aptitude/.config/zsh/functions
plugin-archlinux
plugin-atool
plugin-benchmark/.local/bin
plugin-docker/.config/zsh
plugin-etckeeper/.local/bin
plugin-git
plugin-gnupg
plugin-haskell
plugin-mercurial
plugin-nodejs
plugin-openbox
plugin-pass/.local/bin
plugin-ratpoison
plugin-ruby
plugin-scala/.local/bin
plugin-sift
plugin-ssh
plugin-subversion
plugin-tmux
plugin-todotxt
plugin-xorg
README.md

README.md

What?

My public configuration-files and personal scripts. They might not work for you, but feel free to steal from them.

I change those files a lot and sometimes I break things, so be careful.

My vim config lives in in a separate repository, so I can use it without having to fetch all of my dotfiles.

How?

I use GNU Stow to link the files in place. This pulls another dependency, but it's easy and effective, so meh.

Every folder in this repo is a plugin or topic and represents the configuration for a program, a suite of programs, a specific machine or an operating system. The files in those plugins are simply linked into $HOME as they are. Stow tries to be smart about "folding", that means creating subdirectories instead of linking them, if necessary. So if you want to place files into a subdirectory, but not under version control remove the symlink, create the folder and relink.

ZSH

Everything in $XDG_CONFIG_HOME/zsh/config will be sourced, so it's rather easy to add functionality to zsh, or manipulate the environment. Next to every plugin in this repository does this.

Files are sourced in alphanumeric order, so you can force a certain order by prefixing numbers to the filenames.

$XDG_CONFIG_HOME/zsh/completions is reserved for custom completion scripts. Every file containing a function in $XDG_CONFIG_HOME/zsh/functions will be autoloaded.

Everything in $XDG_CONFIG_HOME/zsh/login will be sourced, when the shell starts, and everything in $XDG_CONFIG_HOME/zsh/logout will be sourced, when it exits.

Install

Make sure you have zsh, git and stow installed and in your $PATH.

cd ~
git clone git://github.com/poxar/dotfiles.git .dotfiles
.dotfiles/bin/up

Note, that no old files will be overwritten. That means you have to move them away by hand. (You'll get a warning about that.)

To get rid of the symlinks again, type this

.dotfiles/bin/down

In case you want to select by hand what will be installed, call

stow -v base and all the plugins you want

or write the plugins you want int $HOME/.dotrc.zsh like so

plugins=("base" "and" "something" "else")

and call bin/up.

Using this verbatim

Don't.

Seriously, bad idea.

I recommend you cook up your own zsh configuration, but feel free to adopt my system if you want (I might set up an example repo when I have the time). If you're searching for a preconfigured environment take a look at