diff --git a/completion/available/capistrano.completion.bash b/completion/available/capistrano.completion.bash
new file mode 100644
index 0000000..a48bd4d
--- /dev/null
+++ b/completion/available/capistrano.completion.bash
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+# Bash completion support for Capistrano.
+
+export COMP_WORDBREAKS=${COMP_WORDBREAKS/\:/}
+
+_capcomplete() {
+    if [ -f Capfile ]; then
+        recent=`ls -t .cap_tasks~ Capfile **/*.cap 2> /dev/null | head -n 1`
+        if [[ $recent != '.cap_tasks~' ]]; then
+            cap --tool --tasks | cut -d " " -f 2 > .cap_tasks~
+        fi
+        COMPREPLY=($(compgen -W "`cat .cap_tasks~`" -- ${COMP_WORDS[COMP_CWORD]}))
+        return 0
+    fi
+}
+
+complete -o default -o nospace -F _capcomplete cap
diff --git a/completion/available/grunt.completion.bash b/completion/available/grunt.completion.bash
new file mode 100644
index 0000000..99a96b5
--- /dev/null
+++ b/completion/available/grunt.completion.bash
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# grunt-cli
+# http://gruntjs.com/
+#
+# Copyright (c) 2012 Tyler Kellen, contributors
+# Licensed under the MIT license.
+# https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT
+
+# Usage:
+#
+# To enable bash <tab> completion for grunt, add the following line (minus the
+# leading #, which is the bash comment character) to your ~/.bashrc file:
+#
+# eval "$(grunt --completion=bash)"
+
+# Search the current directory and all parent directories for a gruntfile.
+function _grunt_gruntfile() {
+  local curpath="$PWD"
+  while [[ "$curpath" ]]; do
+    for gruntfile in "$curpath/"{G,g}runtfile.{js,coffee}; do
+      if [[ -e "$gruntfile" ]]; then
+        echo "$gruntfile"
+        return
+      fi
+    done
+    curpath="${curpath%/*}"
+  done
+  return 1
+}
+
+# Enable bash autocompletion.
+function _grunt_completions() {
+  # The currently-being-completed word.
+  local cur="${COMP_WORDS[COMP_CWORD]}"
+  # The current gruntfile, if it exists.
+  local gruntfile="$(_grunt_gruntfile)"
+  # The current grunt version, available tasks, options, etc.
+  local gruntinfo="$(grunt --version --verbose 2>/dev/null)"
+  # Options and tasks.
+  local opts="$(echo "$gruntinfo" | awk '/Available options: / {$1=$2=""; print $0}')"
+  local compls="$(echo "$gruntinfo" | awk '/Available tasks: / {$1=$2=""; print $0}')"
+  # Only add -- or - options if the user has started typing -
+  [[ "$cur" == -* ]] && compls="$compls $opts"
+  # Tell complete what stuff to show.
+  COMPREPLY=($(compgen -W "$compls" -- "$cur"))
+}
+
+complete -o default -F _grunt_completions grunt
diff --git a/plugins/available/osx.plugin.bash b/plugins/available/osx.plugin.bash
index fde9c83..5b605ce 100644
--- a/plugins/available/osx.plugin.bash
+++ b/plugins/available/osx.plugin.bash
@@ -11,7 +11,7 @@
     end
     tell application "Terminal"
       activate
-      do script with command "cd \"$PWD\"; $*" in window 1
+      do script with command " cd \"$PWD\"; $*" in window 1
     end tell
 EOF
 }
diff --git a/themes/pure/pure.theme.bash b/themes/pure/pure.theme.bash
new file mode 100644
index 0000000..eaeb765
--- /dev/null
+++ b/themes/pure/pure.theme.bash
@@ -0,0 +1,43 @@
+# scm theming
+SCM_THEME_PROMPT_PREFIX="|"
+SCM_THEME_PROMPT_SUFFIX=""
+
+SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗${normal}"
+SCM_THEME_PROMPT_CLEAN=" ${green}✓${normal}"
+SCM_GIT_CHAR="${green}±${normal}"
+SCM_SVN_CHAR="${bold_cyan}⑆${normal}"
+SCM_HG_CHAR="${bold_red}☿${normal}"
+
+### TODO: openSUSE has already colors enabled, check if those differs from stock
+# LS colors, made with http://geoff.greer.fm/lscolors/
+# export LSCOLORS="Gxfxcxdxbxegedabagacad"
+# export LS_COLORS='no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:'
+
+scm_prompt() {
+    CHAR=$(scm_char) 
+    if [ $CHAR = $SCM_NONE_CHAR ] 
+        then 
+            return
+        else 
+            echo "[$(scm_char)$(scm_prompt_info)]"
+    fi 
+}
+
+pure_prompt() {
+    ps_host="${bold_blue}\h${normal}";
+    ps_user="${green}\u${normal}";
+    ps_user_mark="${green} $ ${normal}";
+    ps_root="${red}\u${red}";
+    ps_root="${red} # ${normal}"
+    ps_path="${yellow}\w${normal}";
+
+    # make it work
+    case $(id -u) in
+        0) PS1="$ps_root@$ps_host$(scm_prompt):$ps_path$ps_root_mark"
+            ;;
+        *) PS1="$ps_user@$ps_host$(scm_prompt):$ps_path$ps_user_mark"
+            ;;
+    esac
+}
+
+PROMPT_COMMAND=pure_prompt;
