# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh

# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="custom"

# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git)

source $ZSH/oh-my-zsh.sh

## functions
function noproxy {
	unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY ftp_proxy FTP_PROXY no_proxy

	# change dconf
	dconf reset -f /system/proxy/

	proxy_update
}

	function setproxy {
	base_proxy="proxy.domain.com"
	base_proxy_port=8080

	dconf_proxy="'$base_proxy'"
	env_proxy="http://$base_proxy:$base_proxy_port"

	http_proxy=$env_proxy
	HTTP_PROXY=$env_proxy
	https_proxy=$env_proxy
	HTTPS_PROXY=$env_proxy
	ftp_proxy=$env_proxy
	FTP_PROXY=$env_proxy
	no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
	export http_proxy https_proxy HTTP_PROXY HTTPS_PROXY ftp_proxy FTP_PROXY no_proxy

	# change dconf
	dconf write /system/proxy/mode "'manual'"
	dconf write /system/proxy/ignore-hosts "['localhost', '127.0.0.0/8', '10.0.0.0/8', '192.168.0.0/16', '172.16.0.0/12']"
	dconf write /system/proxy/http/enabled true
	dconf write /system/proxy/http/host "$dconf_proxy"
	dconf write /system/proxy/http/port "$base_proxy_port"
	dconf write /system/proxy/https/host "$dconf_proxy"
	dconf write /system/proxy/https/port "$base_proxy_port"
	dconf write /system/proxy/ftp/host "$dconf_proxy"
	dconf write /system/proxy/ftp/port "$base_proxy_port"

	proxy_update
	}

# restart/reload applications for proxy settings to take effect
function proxy_update {
	killall -q dropbox
	dropbox-cli start
}

# set lid closing action to sleep
function set_closing_sleep {
	get_closing_action
	if [ $? -eq 0 ]; then
		head -n -2 /etc/systemd/logind.conf | sudo tee /etc/systemd/logind.conf > /dev/null
		echo "Closing action set to sleep if lid is closed."
		sudo systemctl restart systemd-logind.service
	else
		echo "Already set to sleep if lid is closed."
fi
}

# set lid closing action to nothing
function set_closing_nothing {
	get_closing_action
	if [ $? -eq 1 ]; then
		cat <<'EOF' | sudo tee -a /etc/systemd/logind.conf > /dev/null
#custom
HandleLidSwitch=ignore
EOF
	echo "Closing action set to _not_ sleep if lid is closed."
	sudo systemctl restart systemd-logind.service
	else
		echo "Already set to _not_ sleep if lid is closed."
	fi
}

# 0 is nothing, 1 is sleep
function get_closing_action {
	grep -q '#custom' /etc/systemd/logind.conf
	return $?
}

function toggle_laptop_closing_action {
	get_closing_action
	if [ $? -eq 1 ]; then
		set_closing_nothing
	else
		set_closing_sleep
	fi
}

function update_and_sleep {
	get_closing_action
	save=$?
	set_closing_nothing
	yaourt -Syu --noconfirm

	[ $save -eq 1 ] && set_closing_sleep

	systemctl suspend
}

function 256color_test {
	( x=`tput op` y=`printf %$((${COLUMNS}-6))s`;
	for i in {0..256};
		do
		o=00$i;
		echo -e ${o:${#o}-3:3} `tput setaf $i;tput setab $i`${y// /=}$x;
	done )
}

## PATH
export PATH=$PATH:~/.cabal/bin
export PATH=$PATH:$HOME/.gem/ruby/2.2.0/bin
export PATH=$PATH:$HOME/bin

## alias

alias xclip="xclip -selection c"
alias open="xdg-open"

## env
export EDITOR=vim

# force 256 color mode
if [ -n "$TMUX" ]; then
	export TERM=screen-256color
else
	export TERM=xterm-256color
fi

# use gpg-agent as ssh-agent
gpg-connect-agent /bye > /dev/null 2>&1
export SSH_AUTH_SOCK="$HOME/.gnupg/S.gpg-agent.ssh"

## zsh options

bindkey -M viins ' ' magic-space
setopt EXTENDED_GLOB
HISTSIZE=100000000

## startup
if type "archey" > /dev/null; then
	archey # nice system information and arch logo
fi

[ -e ~/TODO ] && cat ~/TODO