summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2015-08-04 16:10:18 +0200
committerTharre <tharre3@gmail.com>2016-10-07 20:13:35 +0000
commit7f4d325414fa4f49669951e25141e0c456817540 (patch)
treee988844b0a32193e50500a221d4cd703064a2cbe /shell
parent8c7a495fc164f358daaf8688dd22ac63ccc31e7c (diff)
downloaddotfiles-7f4d325414fa4f49669951e25141e0c456817540.tar.gz
dotfiles-7f4d325414fa4f49669951e25141e0c456817540.tar.xz
dotfiles-7f4d325414fa4f49669951e25141e0c456817540.zip
zsh: config overhaul
Diffstat (limited to 'shell')
-rw-r--r--shell/_zshrc241
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