From 56560fd597f94dfe6fe5fa79648398ab29d05775 Mon Sep 17 00:00:00 2001 From: xero Date: Mon, 14 Jul 2014 13:23:05 -0400 Subject: updated repo to manage dotfiles via gnu stow, the symlink farm manager. happy birthday commit! :birthday: :sparkles: --- zsh/.zsh/colored-man-pages.zsh | 8 ++ zsh/.zsh/functions/chpwd_update_git_vars | 1 + zsh/.zsh/functions/precmd_update_git_vars | 4 + zsh/.zsh/functions/preexec_update_git_vars | 5 + zsh/.zsh/functions/prompt_git_info | 21 ++++ zsh/.zsh/functions/update_current_git_vars | 31 ++++++ zsh/.zshrc | 168 +++++++++++++++++++++++++++++ 7 files changed, 238 insertions(+) create mode 100644 zsh/.zsh/colored-man-pages.zsh create mode 100644 zsh/.zsh/functions/chpwd_update_git_vars create mode 100644 zsh/.zsh/functions/precmd_update_git_vars create mode 100644 zsh/.zsh/functions/preexec_update_git_vars create mode 100644 zsh/.zsh/functions/prompt_git_info create mode 100644 zsh/.zsh/functions/update_current_git_vars create mode 100644 zsh/.zshrc (limited to 'zsh') diff --git a/zsh/.zsh/colored-man-pages.zsh b/zsh/.zsh/colored-man-pages.zsh new file mode 100644 index 0000000..6854d97 --- /dev/null +++ b/zsh/.zsh/colored-man-pages.zsh @@ -0,0 +1,8 @@ +#█▓▒░ source: https://github.com/imkira/dotfiles/blob/master/.zsh/colored-man-pages.zsh +export LESS_TERMCAP_mb=$'\E[01;31m' +export LESS_TERMCAP_md=$'\E[01;38;5;74m' +export LESS_TERMCAP_me=$'\E[0m' +export LESS_TERMCAP_se=$'\E[0m' +export LESS_TERMCAP_so=$'\E[38;33;246m' +export LESS_TERMCAP_ue=$'\E[0m' +export LESS_TERMCAP_us=$'\E[04;38;5;146m' diff --git a/zsh/.zsh/functions/chpwd_update_git_vars b/zsh/.zsh/functions/chpwd_update_git_vars new file mode 100644 index 0000000..2cc7ffa --- /dev/null +++ b/zsh/.zsh/functions/chpwd_update_git_vars @@ -0,0 +1 @@ +update_current_git_vars \ No newline at end of file diff --git a/zsh/.zsh/functions/precmd_update_git_vars b/zsh/.zsh/functions/precmd_update_git_vars new file mode 100644 index 0000000..7fa32df --- /dev/null +++ b/zsh/.zsh/functions/precmd_update_git_vars @@ -0,0 +1,4 @@ +if [ -n "$__EXECUTED_GIT_COMMAND" ]; then + update_current_git_vars + unset __EXECUTED_GIT_COMMAND +fi \ No newline at end of file diff --git a/zsh/.zsh/functions/preexec_update_git_vars b/zsh/.zsh/functions/preexec_update_git_vars new file mode 100644 index 0000000..998de21 --- /dev/null +++ b/zsh/.zsh/functions/preexec_update_git_vars @@ -0,0 +1,5 @@ +case "$1" in + git*) + __EXECUTED_GIT_COMMAND=1 + ;; +esac \ No newline at end of file diff --git a/zsh/.zsh/functions/prompt_git_info b/zsh/.zsh/functions/prompt_git_info new file mode 100644 index 0000000..d492ac8 --- /dev/null +++ b/zsh/.zsh/functions/prompt_git_info @@ -0,0 +1,21 @@ +if [ -n "$__CURRENT_GIT_BRANCH" ]; then + local s="%F{cyan}-[%F{white}" + s+="$__CURRENT_GIT_BRANCH" + case "$__CURRENT_GIT_BRANCH_STATUS" in + ahead) + s+="↑" + ;; + diverged) + s+="↕" + ;; + behind) + s+="↓" + ;; + esac + if [ -n "$__CURRENT_GIT_BRANCH_IS_DIRTY" ]; then + s+="⚡" + fi + s+="%F{cyan}]" + + printf "%s%s" $s +fi \ No newline at end of file diff --git a/zsh/.zsh/functions/update_current_git_vars b/zsh/.zsh/functions/update_current_git_vars new file mode 100644 index 0000000..716d984 --- /dev/null +++ b/zsh/.zsh/functions/update_current_git_vars @@ -0,0 +1,31 @@ +unset __CURRENT_GIT_BRANCH +unset __CURRENT_GIT_BRANCH_STATUS +unset __CURRENT_GIT_BRANCH_IS_DIRTY + +local st="$(git status 2>/dev/null)" +local st2="$(git log -1 --pretty=%h 2>/dev/null)" + +if [[ -n "$st" ]]; then + local -a arr + arr=(${(f)st}) + + if [[ $arr[1] =~ 'Not currently on any branch.' ]]; then + __CURRENT_GIT_BRANCH="$st2" + else + __CURRENT_GIT_BRANCH="${arr[1][(w)4]}"; + fi + + if [[ $arr[2] =~ 'Your branch is' ]]; then + if [[ $arr[2] =~ 'ahead' ]]; then + __CURRENT_GIT_BRANCH_STATUS='ahead' + elif [[ $arr[2] =~ 'diverged' ]]; then + __CURRENT_GIT_BRANCH_STATUS='diverged' + else + __CURRENT_GIT_BRANCH_STATUS='behind' + fi + fi + + if [[ ! $st =~ 'nothing to commit' ]]; then + __CURRENT_GIT_BRANCH_IS_DIRTY='1' + fi +fi \ No newline at end of file diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..f0a834c --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,168 @@ +# ██ +# ░██ +# ██████ ██████░██ ██████ █████ +# ░░░░██ ██░░░░ ░██████ ░░██░░█ ██░░░██ +# ██ ░░█████ ░██░░░██ ░██ ░ ░██ ░░ +# ██ ░░░░░██░██ ░██ ░██ ░██ ██ +# ██████ ██████ ░██ ░██░███ ░░█████ +# ░░░░░░ ░░░░░░ ░░ ░░ ░░░ ░░░░░ +# +# ▓▓▓▓▓▓▓▓▓▓ +# ░▓ author ▓ xero +# ░▓ code ▓ http://code.xero.nu/dotfiles +# ░▓ mirror ▓ http://git.io/.files +# ░▓▓▓▓▓▓▓▓▓▓ +# ░░░░░░░░░░ +# +# █▓▒░ timestamps +# HIST_STAMPS="mm/dd/yyyy" + +#█▓▒░ exports +export PATH=$HOME/bin:/usr/local/bin:$PATH +# export MANPATH="/usr/local/man:$MANPATH" + +#█▓▒░ preferred editor for local and remote sessions +if [[ -n $SSH_CONNECTION ]]; then + export EDITOR='vim' +else + export EDITOR='vim' +fi + +#█▓▒░ aliases +alias ls='ls --color=auto' +alias lsla="ls -la --color=auto" +alias "cd.."="cd ../" +alias rock="ncmpcpp" +alias mixer="alsamixer" +alias checkrootkits='sudo rkhunter --update; sudo rkhunter --propupd; sudo rkhunter --check' +alias genplaylist="cd ~/music;find . -name '*.mp3' -o -name '*.flac'|sed -e 's%^./%%g' > ~/.config/mpd/playlists/all.m3u;mpd ~/.config/mpd/mpd.conf;mpc clear;mpc load all.m3u;mpc update" +alias matrix="cmatrix -b -s" +alias pipes="bash ~/code/fun/pipes" +alias pipesx="bash ~/code/fun/pipesx" +alias rain="bash ~/code/fun/rain" +alias screenfetch="~/code/fun/screenfetch" +alias hashcompare='bash ~/code/sys/hash-compare ' +alias tempwatch="while :; do sensors; sleep 1 && clear; done;" +alias term='urxvtc -hold -e ' #used for awesomewm run menu +alias fixcursor='xsetroot -cursor_name left_ptr' +dirlist() { + ls -la "$1" && echo -e '' && tree -a "$1" +} +#█▓▒░ debian aliases +#alias sai="sudo apt-get install" +#alias apachereload='sudo /etc/init.d/apache2 restart' +#alias disks="palimpsest" +#alias invert="xcalib -i -a" +#█▓▒░ arch aliases +alias pacman="sudo pacman" +alias apachereload='sudo systemctl restart httpd.service' +alias disks="ncdu" +#█▓▒░ work aliases +alias workscreen='xrandr --output HDMI1 --left-of LVDS1 --mode 1366x768' + +#█▓▒░ ssh +export SSH_KEY_PATH="~/.ssh/id_rsa" + +#█▓▒░ keybindings +typeset -A key + +key[Home]=${terminfo[khome]} +key[End]=${terminfo[kend]} +key[Insert]=${terminfo[kich1]} +key[Delete]=${terminfo[kdch1]} +key[Up]=${terminfo[kcuu1]} +key[Down]=${terminfo[kcud1]} +key[Left]=${terminfo[kcub1]} +key[Right]=${terminfo[kcuf1]} +key[PageUp]=${terminfo[kpp]} +key[PageDown]=${terminfo[knp]} + +[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line +[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line +[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode +[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char +[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history +[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history +[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char +[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char +[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" beginning-of-buffer-or-history +[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" end-of-buffer-or-history + +if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then + function zle-line-init () { + printf '%s' "${terminfo[smkx]}" + } + function zle-line-finish () { + printf '%s' "${terminfo[rmkx]}" + } + zle -N zle-line-init + zle -N zle-line-finish +fi + + +#█▓▒░ autocompletion systems +autoload -Uz compinit +compinit + +zstyle ':completion:*' auto-description 'specify: %d' +zstyle ':completion:*' completer _expand _complete _correct _approximate +zstyle ':completion:*' format 'Completing %d' +zstyle ':completion:*' group-name '' +zstyle ':completion:*' menu select=2 eval "$(dircolors -b)" +zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} +zstyle ':completion:*' list-colors '' +zstyle ':completion:*' list-prompt %SAt %p: hit TAB for more, or the character to insert%s +zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*' +zstyle ':completion:*' menu select=long +zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s +zstyle ':completion:*' use-compctl false +zstyle ':completion:*' verbose true + +zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' +zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd' + +#█▓▒░ allow functions in the prompt +setopt PROMPT_SUBST + +#█▓▒░ autoload zsh functions +fpath=(~/.zsh/functions $fpath) +autoload -U ~/.zsh/functions/*(:t) + +#█▓▒░ enable auto-execution of functions +typeset -ga preexec_functions +typeset -ga precmd_functions +typeset -ga chpwd_functions + +#█▓▒░ append git functions needed for prompt. +preexec_functions+='preexec_update_git_vars' +precmd_functions+='precmd_update_git_vars' +chpwd_functions+='chpwd_update_git_vars' + +#█▓▒░ load configs +for config_file (~/.zsh/*.zsh) source $config_file + +#█▓▒░ history +HISTFILE=~/.zhistory +setopt APPEND_HISTORY +HISTSIZE=1200 +SAVEHIST=1000 +setopt HIST_EXPIRE_DUPS_FIRST +setopt EXTENDED_HISTORY +setopt SHARE_HISTORY + +#█▓▒░ custom prompts + +#█▓▒░dual line +PROMPT="%F{cyan}┌[%F{white}%n@%M%F{cyan}]─[%F{red}%~%F{cyan}] +%F{cyan}└─ %F{white}" +#RPROMPT="%F{cyan}[%F{white}%n@%M%F{cyan}]" + +#█▓▒░ ninja +PROMPT="%F{white} ▟▙ %F{red}%~%F{white} +▟▒%F{blue}░░░░░░░%F{white}▜▙▜████████████████████████████████▛ +▜▒%F{blue}░░░░░░░%F{white}▟▛▟▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▛ + ▜▛ + %F{white}" + +#█▓▒░ minial +PROMPT='%F{cyan}[%F{white}%~%F{cyan}]$(prompt_git_info)── -%f ' -- cgit v1.2.1