diff options
author | Tharre <tharre3@gmail.com> | 2015-08-04 16:10:18 +0200 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2016-10-07 20:13:35 +0000 |
commit | 7f4d325414fa4f49669951e25141e0c456817540 (patch) | |
tree | e988844b0a32193e50500a221d4cd703064a2cbe /shell | |
parent | 8c7a495fc164f358daaf8688dd22ac63ccc31e7c (diff) | |
download | dotfiles-7f4d325414fa4f49669951e25141e0c456817540.tar.gz dotfiles-7f4d325414fa4f49669951e25141e0c456817540.tar.xz dotfiles-7f4d325414fa4f49669951e25141e0c456817540.zip |
zsh: config overhaul
Diffstat (limited to 'shell')
-rw-r--r-- | shell/_zshrc | 241 |
1 files changed, 132 insertions, 109 deletions
diff --git a/shell/_zshrc b/shell/_zshrc index 954027f..b15be93 100644 --- a/shell/_zshrc +++ b/shell/_zshrc @@ -1,7 +1,5 @@ -zstyle ':completion:*' menu select - -# Path to your oh-my-zsh configuration. -ZSH=$HOME/.oh-my-zsh +# 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/ @@ -9,167 +7,192 @@ ZSH=$HOME/.oh-my-zsh # time that oh-my-zsh is loaded. ZSH_THEME="robbyrussell" -# Set to this to use case-sensitive completion +# Uncomment the following line to use case-sensitive completion. # CASE_SENSITIVE="true" -# Comment this out to disable bi-weekly auto-update checks +# 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 to change how many often would you like to wait before auto-updates occur? (in days) +# Uncomment the following line to change how often to auto-update (in days). # export UPDATE_ZSH_DAYS=13 -# Uncomment following line if you want to disable colors in ls +# Uncomment the following line to disable colors in ls. # DISABLE_LS_COLORS="true" -# Uncomment following line if you want to disable autosetting terminal title. +# Uncomment the following line to disable auto-setting terminal title. # DISABLE_AUTO_TITLE="true" -# Uncomment following line if you want red dots to be displayed while waiting for completion +# 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 -# 256 color mode -if [ -n "$TMUX" ]; then - export TERM=screen-256color -else - export TERM=xterm-256color -fi - -# cabal -export PATH=$PATH:~/.cabal/bin - -# ruby -export PATH=$PATH:$HOME/.gem/ruby/2.2.0/bin - -# vim -export EDITOR=vim - -# xclip -alias xclip="xclip -selection c" - -alias open="xdg-open" - +## functions function noproxy { - unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY ftp_proxy FTP_PROXY no_proxy + unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY ftp_proxy FTP_PROXY no_proxy - # change dconf - dconf reset -f /system/proxy/ + # change dconf + dconf reset -f /system/proxy/ - proxy_update + 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 -} + 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 { - # dropbox - killall -q dropbox - dropbox-cli start + 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 + 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 + 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." + 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 $? + 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 + 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 - if [ $save -eq 1 ]; then - set_closing_sleep - fi - systemctl suspend + 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 ) + ( 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 -## run on startup +## alias -if type "archey" > /dev/null; then - archey # nice system information and arch logo +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 -if [ -e "$HOME/TODO" ]; then - cat "$HOME/TODO" +# 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 |