# 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