summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/aliases.zsh3
-rw-r--r--lib/directories.zsh5
-rw-r--r--lib/git.zsh19
-rw-r--r--plugins/archlinux/archlinux.plugin.zsh20
-rw-r--r--plugins/cap/cap.plugin.zsh41
-rw-r--r--plugins/capistrano/_capistrano10
-rw-r--r--plugins/command-not-found/command-not-found.plugin.zsh2
-rw-r--r--templates/zshrc.zsh-template6
-rw-r--r--themes/intheloop.zsh-theme24
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