-# Lines configured by zsh-newuser-install
-HISTFILE=~/.histfile
-HISTSIZE=10000
-SAVEHIST=20000
-setopt histignoredups
-setopt histignorespace
-setopt appendhistory
-
-setopt autocd
-setopt beep
+# Path to config files
+ZSH=$XDG_CONFIG_HOME/zsh
+ZSH_DATA=$XDG_DATA_HOME/zsh
+ZSH_CACHE=$XDG_CACHE_HOME/zsh
+[[ ! -d "$ZSH" ]] && echo "Missing config dir: '$ZSH'" && return
+[[ ! -d "$ZSH_CACHE" ]] && echo "Missing cache dir: '$ZSH_CACHE'" && return
+[[ ! -d "$ZSH_DATA" ]] && echo "Missing data dir: '$ZSH_DATA'" && return
+
+# populate path (order matters)
+typeset -U path # make path a unique array
+# osx gnu utils (installed via brew)
+if (( $+commands[brew] )); then
+ for pkg in coreutils findutils gnu-sed make; do
+ [[ -d $(brew --prefix $pkg)/libexec/gnubin ]] && path=($(brew --prefix $pkg)/libexec/gnubin $path)
+ done
+fi
+# osx pip 3.7 install
+[[ -d ~/Library/Python/3.7/bin ]] && path=(~/Library/Python/3.7/bin $path)
+# personal scripts
+[[ -d ~/.local/bin ]] && path=(~/.local/bin $path)
+[[ -d ~/bin ]] && path=(~/bin $path)
+# android
+[[ -d /opt/android-sdk ]] && path=($path /opt/android-sdk/platform-tools)
+
+# load my functions
+typeset -U fpath # make fpath a unique array
+[[ -d $ZSH/functions ]] && fpath=($ZSH/functions $fpath)
+autoload -U ${fpath[1]}/*(:t) # loads all functions in the first element of fpath
+
+# Load all of the config files in $ZSH/lib that end in .zsh
+for config_file ($ZSH/lib/*.zsh); do
+ source $config_file
+done
+
+# Set name of the theme to load.
+# Look in $ZSH/themes
+ZSH_THEME="ramsi"
+[[ -f "$ZSH/themes/${ZSH_THEME}.zsh-theme" ]] && source "$ZSH/themes/${ZSH_THEME}.zsh-theme"
+
+# initialise completion
+autoload -U compinit; compinit -d "$ZSH_CACHE/zcompdump"
+
+# miscelaneous options
setopt extendedglob
-setopt nomatch
+setopt nonomatch # if glob does not match, pass it to the command
+setopt numeric_glob_sort # sort numerically not lexically
setopt noclobber # don't allow overwriting files with '>', use '>!' instead
+setopt notify
setopt rcquotes # echo 'don''t'; prints don't
+setopt dvorak # correct_all uses dvorak
+setopt rematch_pcre # use perl regexp
-unsetopt notify
+# disable flow control
+setopt noflowcontrol
+stty -ixon
-bindkey -e
-# End of lines configured by zsh-newuser-install
-# The following lines were added by compinstall
-zstyle :compinstall filename '/home/ramsi/.zshrc'
+# source aliases
+[[ -f $XDG_CONFIG_HOME/aliases ]] && source $XDG_CONFIG_HOME/aliases
+for alias_file ($ZSH/aliases/*.zsh); do
+ source $alias_file
+done
-autoload -Uz compinit
-compinit
-# End of lines added by compinstall
+# set up a few named directories
+hash -d fook=/mnt/fook
+hash -d src=~/src
-# source aliases
-[[ -f ~/.bash_aliases ]] && source ~/.bash_aliases
-
-# set up prompt
-autoload -U promptinit
-promptinit
-prompt walters
-
-# make cd act like pushd
-DIRSTACKSIZE=10
-setopt autopushd # cd acts like pushd
-setopt pushdminus # inverts the meaning of cp -1 and cp +1
-setopt pushdsilent # don't print dir stack everytime
-setopt pushdtohome # pushd with no argumens pushes to ~
-alias dh='dirs -v'
-
-# set search path for cd
-cdpath=( ~ /mnt )
+# fpp named dirs
+hash -d evk=~/src/fpp/evk
+hash -d fpp=~/src/fpp