autoload -U promptinit
promptinit

autoload -U colors
colors

autoload -U compinit
compinit

HISTSIZE=10000
SAVEHIST=10000
HISTFILE="$HOME/.zsh_history"

PROMPT="%{$fg[white]%}╭─%{$fg[green]%}%M %{$fg[red]%}▶ %{$fg[yellow]%}%~
%{$fg[white]%}╰─%B$%b "
RPROMPT="%{$fg[red]%}%? %{$fg[white]%}%*%{$reset_color%}"

man() {
        env LESS_TERMCAP_mb=$'\E[01;31m' \
        LESS_TERMCAP_md=$'\E[01;38;5;74m' \
        LESS_TERMCAP_me=$'\E[0m' \
        LESS_TERMCAP_se=$'\E[0m' \
        LESS_TERMCAP_so=$'\E[38;5;246m' \
        LESS_TERMCAP_ue=$'\E[0m' \
        LESS_TERMCAP_us=$'\E[04;38;5;146m' \
        man "$@"
}

### VARIABLES
export EDITOR="vim"
export VISUAL="vim"

### BOOKMARKS
bm() {
    case "$1" in
        dev)
            cd "$HOME/development/projects"
            ;;
        dot)
            cd "$HOME/dotfiles"
            ;;
        *)
            echo "unknown target"
            ;;
    esac
}


### SHELL OPTIONS
setopt EXTENDED_HISTORY
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_VERIFY
setopt INC_APPEND_HISTORY
setopt SHARE_HISTORY
setopt AUTO_CD
setopt APPEND_HISTORY
setopt HIST_IGNORE_DUPS
setopt NOHIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_SPACE
setopt CORRECT
setopt RM_STAR_SILENT
setopt BG_NICE
setopt CHECK_JOBS
setopt HUP
setopt LONG_LIST_JOBS

bindkey -e


[[ $TERM == "urxvt" ]] && export TERM="rxvt-unicode"

### ALIASES

alias su="su -"

LS_HIDE="*.py[co]"

#  --dereference-command-line
alias ls="ls --group-directories-first --classify --color=auto --hide=\"$LS_HIDE\""

alias ll='ls -AlF'
alias la='ls -A'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

alias rm='rm -v'
alias cp='cp -v'
alias mv='mv -v'
alias ln='ln -v'

alias du='du -h'
alias df='df -h'

alias root='sudo -sE'

alias b='cd $OLDPWD'

alias cs="cryptsetup"

alias le_haxxor_1='clear && dmesg | pv -qL $[15 + (RANDOM % 10)]'
alias le_haxxor_2='clear && hexdump -C /dev/urandom | grep "1e 4c"'

alias YOLO="pacman -Syu --force"

alias such="git"
alias very="git"
alias much="git"
alias wow="git status"

alias v="vim"
alias g="grep"


# rebase the current branch onto WTF ARE YOU DOING YOU ARE DRUNNK TO GO BED
##alias rebase="git rebase -i $(git branch --contains HEAD | grep -v '\*.*' | head -1)"


### FUNCTIONS

slideshow() {
    delay=$1
    [[ -z "$delay" ]] && { echo "wrong usage" ; return 1 ; }
    shift
    [[ -z "$@" ]] && { echo "wrong usage" ; return 1 ; }
    feh --auto-zoom \
        --randomize \
        --recursive \
        --scale-down \
        --image-bg black \
        --draw-filename \
        --slideshow-delay=$delay \
        "$@"
}

function cd() {
    builtin cd $* && ls
}

function mount() {
    if [[ $# == 0 ]] ; then
        /usr/bin/env mount | column -t
    else
        /usr/bin/env mount $*
    fi
}

ff() {
	find . -type f -iname "*"$*"*" ;
}

ffcs() {
	find . -type f -name "*"$*"*" ;
}

extract()  # Handy Extract Program.
{
	if [ -f $1 ] ; then
		case $1 in
			*.tar.bz2	)	tar xvjf $1 	;;
			*.tar.gz	)	tar xvzf $1 	;;
			*.bz2		)	bunzip2 $1  	;;
			*.rar		)	unrar x $1  	;;
			*.gz		)	gunzip $1   	;;
			*.tar		)	tar xvf $1  	;;
			*.tbz2		)	tar xvjf $1 	;;
			*.tgz		)	tar xvzf $1		;;
			*.zip		)	unzip $1		;;
			*.Z			)	uncompress $1	;;
			*.7z		)	7z x $1 		;;
			*)   echo "$1 cannot be extracted via extract()" ;;
		esac
	else
		echo "$1 is not a valid file"
	fi
}

ruler() {
	for s in '....^....|' '1234567890'; do
		w=${#s}
		str=$(for (( i=1; $i<=$(( ($COLUMNS + $w) / $w )) ; i=$i+1 )); do echo -n $s; done )
		str=$(echo $str | cut -c -$COLUMNS)
		echo $str
	done
}

addext() {
    [[ -z "$1" ]] || [[ -z "$2" ]] && { echo "Usage: $0 <file> <extension>" ; return }
    mv "$1" "$1$2"

}

ckwww() {
	ping -c 3 www.google.com
}

topcmds() {
	history | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -nr | head
}

fnottype() {
	find . -maxdepth 1 ! -type $1
}

# simple calculator
c () {
    echo "$*" | bc -l
}

function http() {
    curl http://httpcode.info/$1
}
