diff options
| -rw-r--r-- | lib/aliases.zsh | 3 | ||||
| -rw-r--r-- | lib/directories.zsh | 5 | ||||
| -rw-r--r-- | lib/git.zsh | 19 | ||||
| -rw-r--r-- | plugins/archlinux/archlinux.plugin.zsh | 20 | ||||
| -rw-r--r-- | plugins/cap/cap.plugin.zsh | 41 | ||||
| -rw-r--r-- | plugins/capistrano/_capistrano | 10 | ||||
| -rw-r--r-- | plugins/command-not-found/command-not-found.plugin.zsh | 2 | ||||
| -rw-r--r-- | templates/zshrc.zsh-template | 6 | ||||
| -rw-r--r-- | themes/intheloop.zsh-theme | 24 | 
9 files changed, 77 insertions, 53 deletions
| diff --git a/lib/aliases.zsh b/lib/aliases.zsh index 0555be264..14f6ad289 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -16,8 +16,9 @@ alias history='fc -l 1'  # List direcory contents  alias lsa='ls -lah' -alias l='ls -la' +alias l='ls -lA1'  alias ll='ls -l' +alias la='ls -lA'  alias sl=ls # often screw this up  alias afind='ack-grep -il' diff --git a/lib/directories.zsh b/lib/directories.zsh index a787db9eb..e445eb84c 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -37,8 +37,3 @@ cd () {  alias md='mkdir -p'  alias rd=rmdir  alias d='dirs -v | head -10' - -# mkdir & cd to it -function mcd() {  -  mkdir -p "$1" && cd "$1";  -} diff --git a/lib/git.zsh b/lib/git.zsh index fb4ad8ca6..258b1df8f 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -18,6 +18,25 @@ parse_git_dirty() {    fi  } +# get the difference between the local and remote branches +git_remote_status() { +    remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} +    if [[ -n ${remote} ]] ; then +        ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) +        behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) + +        if [ $ahead -eq 0 ] && [ $behind -gt 0 ] +        then +            echo "$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" +        elif [ $ahead -gt 0 ] && [ $behind -eq 0 ] +        then +            echo "$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" +        elif [ $ahead -gt 0 ] && [ $behind -gt 0 ] +        then +            echo "$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" +        fi +    fi +}  # Checks if there are commits ahead from remote  function git_prompt_ahead() { diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 294dc5354..ae92a0b4c 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -11,7 +11,7 @@ if [[ -x `which yaourt` ]]; then    alias yaupg='yaourt -Syu'        # Synchronize with repositories before upgrading packages that are out of date on the local system.    alias yasu='yaourt --sucre'      # Same as yaupg, but without confirmation    alias yain='yaourt -S'           # Install specific package(s) from the repositories -  alias yains='yaourt -U'          # Install specific package not from the repositories but from a file  +  alias yains='yaourt -U'          # Install specific package not from the repositories but from a file    alias yare='yaourt -R'           # Remove the specified package(s), retaining its configuration(s) and required dependencies    alias yarem='yaourt -Rns'        # Remove the specified package(s), its configuration(s) and unneeded dependencies    alias yarep='yaourt -Si'         # Display information about a given package in the repositories @@ -35,7 +35,7 @@ fi  # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips  alias pacupg='sudo pacman -Syu'        # Synchronize with repositories before upgrading packages that are out of date on the local system.  alias pacin='sudo pacman -S'           # Install specific package(s) from the repositories -alias pacins='sudo pacman -U'          # Install specific package not from the repositories but from a file  +alias pacins='sudo pacman -U'          # Install specific package not from the repositories but from a file  alias pacre='sudo pacman -R'           # Remove the specified package(s), retaining its configuration(s) and required dependencies  alias pacrem='sudo pacman -Rns'        # Remove the specified package(s), its configuration(s) and unneeded dependencies  alias pacrep='pacman -Si'              # Display information about a given package in the repositories @@ -75,3 +75,19 @@ pacdisowned() {    comm -23 "$fs" "$db"  } + +pacmanallkeys() { +  # Get all keys for developers and trusted users +  curl https://www.archlinux.org/{developers,trustedusers}/ | +  awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' | +  xargs sudo pacman-key --recv-keys +} + +pacmansignkeys() { +  for key in $*; do +    sudo pacman-key --recv-keys $key +    sudo pacman-key --lsign-key $key +    printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \ +      --no-permission-warning --command-fd 0 --edit-key $key +  done +} diff --git a/plugins/cap/cap.plugin.zsh b/plugins/cap/cap.plugin.zsh deleted file mode 100644 index d22d10401..000000000 --- a/plugins/cap/cap.plugin.zsh +++ /dev/null @@ -1,41 +0,0 @@ -stat -f%m . > /dev/null 2>&1 -if [ "$?" = 0 ]; then -  stat_cmd=(stat -f%m) -else -  stat_cmd=(stat -L --format=%y) -fi - -# Cache filename -_cap_show_undescribed_tasks=0 - -# Cache filename -_cap_task_cache_file='.cap_task_cache' - -_cap_get_task_list () { -  if [ ${_cap_show_undescribed_tasks} -eq 0 ]; then -    cap -T | grep '^cap' | cut -d " " -f 2 -  else -    cap -vT | grep '^cap' | cut -d " " -f 2 -  fi -} - -_cap_does_task_list_need_generating () { - -  if [ ! -f ${_cap_task_cache_file} ]; then return 0; -  else -    accurate=$($stat_cmd $_cap_task_cache_file) -    changed=$($stat_cmd config/deploy.rb) -    return $(expr $accurate '>=' $changed) -  fi -} - -function _cap () { -  if [ -f config/deploy.rb ]; then -    if _cap_does_task_list_need_generating; then -      _cap_get_task_list > ${_cap_task_cache_file} -    fi -    compadd `cat ${_cap_task_cache_file}` -  fi -} - -compdef _cap cap diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano new file mode 100644 index 000000000..cf6b50c7f --- /dev/null +++ b/plugins/capistrano/_capistrano @@ -0,0 +1,10 @@ +#compdef cap +#autoload + +if [ -f config/deploy.rb ]; then +  if [[ ! -f .cap_tasks~ || config/deploy.rb -nt .cap_tasks~ ]]; then +    echo "\nGenerating .cap_tasks~..." > /dev/stderr +    cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ +  fi +  compadd `cat .cap_tasks~` +fi diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index 5ab03d5a9..567da1b45 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -2,4 +2,4 @@  # as seen in http://www.porcheron.info/command-not-found-for-zsh/  # this is installed in Ubuntu -source /etc/zsh_command_not_found +[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 758fc26b8..2ea9934af 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -14,11 +14,11 @@ ZSH_THEME="robbyrussell"  # Set to this to use case-sensitive completion  # CASE_SENSITIVE="true" -# Comment this out to disable weekly auto-update checks +# Comment this out to disable bi-weekly auto-update checks  # DISABLE_AUTO_UPDATE="true" -# Change this value to set how frequently ZSH updates¬ -export UPDATE_ZSH_DAYS=13 +# Uncomment to change how many often would you like to wait before auto-updates occur? (in days) +# export UPDATE_ZSH_DAYS=13  # Uncomment following line if you want to disable colors in ls  # DISABLE_LS_COLORS="true" diff --git a/themes/intheloop.zsh-theme b/themes/intheloop.zsh-theme new file mode 100644 index 000000000..85b4a4d95 --- /dev/null +++ b/themes/intheloop.zsh-theme @@ -0,0 +1,24 @@ +# ZSH theme by James Smith (http://loopj.com) +# A multiline prompt with username, hostname, full path, return status, git branch, git dirty status, git remote status + +local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" + +local host_color="green" +if [ -n "$SSH_CLIENT" ]; then +  local host_color="red" +fi + +PROMPT=' +%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[${host_color}]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status) +%{$fg_bold[cyan]%}❯%{$reset_color%} ' + + +RPROMPT='${return_status}%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[grey]%}(%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[grey]%}) %{$fg[yellow]%}⚡%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[grey]%})" +ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="%{$fg_bold[magenta]%}↓%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="%{$fg_bold[magenta]%}↑%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="%{$fg_bold[magenta]%}↕%{$reset_color%}"
\ No newline at end of file | 
