diff options
author | Tharre <tharre3@gmail.com> | 2016-10-07 20:53:06 +0000 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2016-10-16 15:23:59 +0000 |
commit | edbcca8cd2b93b8c88eb62c431d04ea832b73180 (patch) | |
tree | bac188c0ee4c1c214dd50568e70783a7ee2c3565 /.zshrc | |
parent | d4f1a0f27100ff2f4380fa4cf38b09e7f0c051f7 (diff) | |
download | dotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.tar.gz dotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.tar.xz dotfiles-edbcca8cd2b93b8c88eb62c431d04ea832b73180.zip |
Reorganise dotfiles
Diffstat (limited to '.zshrc')
-rw-r--r-- | .zshrc | 181 |
1 files changed, 181 insertions, 0 deletions
@@ -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 |