summaryrefslogtreecommitdiffstats
path: root/.zshrc
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2016-10-07 20:53:06 +0000
committerTharre <tharre3@gmail.com>2016-10-16 15:23:59 +0000
commitedbcca8cd2b93b8c88eb62c431d04ea832b73180 (patch)
treebac188c0ee4c1c214dd50568e70783a7ee2c3565 /.zshrc
parentd4f1a0f27100ff2f4380fa4cf38b09e7f0c051f7 (diff)
downloaddotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.tar.gz
dotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.tar.xz
dotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.zip
Reorganise dotfiles
Diffstat (limited to '.zshrc')
-rw-r--r--.zshrc181
1 files changed, 181 insertions, 0 deletions
diff --git a/.zshrc b/.zshrc
new file mode 100644
index 0000000..379fa0c
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1,181 @@
+# 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=~/dotfiles/zsh-custom
+
+# 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
+}
+
+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 )
+}
+
+# requires youtube-dl, mpv
+function play {
+ # Skip DASH manifest for speed purposes. This might actually disable
+ # being able to specify things like 'bestaudio' as the requested format,
+ # but try anyway.
+ # Use "$*" so that quoting the requested song isn't necessary.
+ mpv $(youtube-dl --default-search=ytsearch: \
+ --max-downloads 1 \
+ --youtube-skip-dash-manifest \
+ --format="bestaudio" \
+ -g "$*")
+}
+
+# update
+function update_dotfiles() {
+ dotfiles="$HOME/dotfiles"
+ epoch_file="$dotfiles/.updated"
+ epoch_curr=$(date +'%s')
+ [ -e "$epoch_file" ] && epoch_old=$(<"$epoch_file")
+ epoch_diff=$(($epoch_curr - ${epoch_old:-0}))
+ max_time=$((60 * 60 * 24 * 7))
+
+ if [ $(($epoch_diff / $max_time)) -ne 0 ]; then
+ echo "Updating dotfiles ..."
+
+ cd "$dotfiles"
+ git pull --rebase --stat origin master
+ echo $epoch_curr > "$epoch_file"
+ ./install.sh
+ cd -
+
+ echo "Finished."
+ fi
+}
+
+## PATH
+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
+update_dotfiles
+
+if type "archey" > /dev/null; then
+ archey # nice system information and arch logo
+fi
+
+[ -e ~/TODO ] && cat ~/TODO