Skip to content

ijcd/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

These are my dotfiles. There are many like them but these ones are mine. I've built these up over a few decades of unix use. Things I use:

I use a single git clone and symlink to files within that. I find it works better for me than approaches like vcsh or trying to exclude my entire home directory with .gitignore (an approach I used for years).

Requirements

Set zsh as your login shell:

chsh -s $(which zsh)

Installing

Dotfiles only

cd ~
git clone https://github.com/ijcd/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./dotfiles install

Stuff from brew (a few things are used by the dotfiles

brew brewdle

Optional: LOLCAT and Pygments. Adjust the startup if you don't want them.

sudo gem install lolcat
sudo easy_install Pygments

Organization

I use modules to organize my dotfiles. Using zgen, I'm able to pull in modules from oh-my-zsh and prezto. Both of these are installed and managed by zgen.

Loading happens in a few steps, starting from modules/zsh/zshrc.symlink which is symlinked by the system as ~/.zshrc

In addition to the oh-my-zsh and prezto modules, I have all of my local customization organized by major topic area with a local module loading function (dotfiles-import-local-module) and installation script that do the following for each module:

  • symlink all files/directories named *.symlink to the correspondinging dotfile in ~
  • add $modpath/bin to the path
  • add $modpath/functions to the fpath (for autoloading functions)
  • source all $modpath/*.zsh files

Most modules are located in modules/$moddir. All files in modules/* are sourced at startup by zshrc.symlink. There is a top-level module called "local" with more recent, less organized things that is also sourced.

Customizing

Start by looking at these files and go from there:

  • dotfiles
  • modules/zsh/zshrc.symlink
  • local/*

Resync things by running:

./dotfiles install

Fun Things

Inspiration

History

I've been using zsh since 1995 or so. I used antigen for a year (patched to create a dotfile cache like zgen does, never released that -- see dots.zsh ...). I switched to zgen lately and cleaned everything up. Here you go.