Browse Source

Add initial zsh configuration

master
Noah Petherbridge 5 years ago
parent
commit
7a19f4cebd
3 changed files with 117 additions and 0 deletions
  1. +3
    -0
      .gitmodules
  2. +113
    -0
      home/.zshrc
  3. +1
    -0
      zsh/zgen

+ 3
- 0
.gitmodules View File

@@ -28,3 +28,6 @@
[submodule "home/.vim/bundle/editorconfig-vim"]
path = home/.vim/bundle/editorconfig-vim
url = https://github.com/editorconfig/editorconfig-vim
[submodule "zsh/zgen"]
path = zsh/zgen
url = https://github.com/tarjoilija/zgen

+ 113
- 0
home/.zshrc View File

@@ -0,0 +1,113 @@
###
# .zshrc
#
# Kirsle's Global ZSH Configuration
# Updated: 2015-07-07
###

export LANG=en_US.UTF-8 # Unicode
setopt prompt_subst # Allow for dynamic prompts
autoload -U colors && colors # Get color aliases

# 256 colors
[[ "$TERM" == "xterm" ]] && export TERM=xterm-256color

# Load color aliases
setopt prompt_subst
autoload -U colors && colors

# Normalize the PATH
export PATH="/usr/sbin:/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:${HOME}/bin:${HOME}/go/bin:${HOME}/android/sdk/platform-tools"
export EDITOR="/usr/bin/vim"

# Virtualenv
export WORKON_HOME=~/.virtualenv

# Reload zshrc
alias rezsh="source ${HOME}/.zshrc"

# Allow overriding hostname in the prompt from a local config
export PROMPT_HOSTNAME="%m"

# Source local (system specific) configurations
if [[ -f "${HOME}/.zshrc-local" ]]; then
source "${HOME}/.zshrc-local"
fi

###
# Base shell prompt.
###

# I slowly build the prompt up over multiple places and store it in
# in $base_prompt, so I can modify it before exporting it (for example,
# so the git branch appears before the % at the end of the prompt).

# For the color palette, see: http://www.pixelbeat.org/docs/terminal_colours/
# Use light shades of blue and pink.
local blue="%F{39}"
local pink="%F{213}"
local orange="%F{208}"
local lime="%F{46}"
local cyan="%F{51}"
local base_prompt="%{$blue%}[%{$pink%}%n%{$blue%}@%{$pink%}${PROMPT_HOSTNAME} %{$lime%}%1~"

###
# Include git branch in the prompt
###

git_branch() {
local res=`git branch 2>/dev/null | grep -v '^[^*]' | perl -pe 's/^\*\s+//g'`
if [[ "$res" != "" ]]; then
local res=" ($res)"
fi
echo $res
return $res
}

local git_prompt='%{$cyan%}$(git_branch)%{$reset_color%}'
local base_prompt="${base_prompt}${git_prompt}"

# End the base prompt
local base_prompt="${base_prompt}%{$blue%}]%# %{%f%}"

###############################################################################
# zsh plugins #
###############################################################################

# Load zgen (plugin manager)
source "${HOME}/.dotfiles/zsh/zgen/zgen.zsh"

# Initialize zgen plugins
if ! zgen saved; then
echo "Creating a zgen save"

# Load plugins
zgen oh-my-zsh plugins/virtualenv
zgen oh-my-zsh plugins/virtualenvwrapper
zgen load jimmijj/zsh-syntax-highlighting
zgen load tarruda/zsh-autosuggestions # depends on syntax-highlighting

# Save all to the init script
zgen save
fi

###
# Configure plugin: virtualenvwrapper
###

# Virtualenv prompt. The dynamic part (name of the virtualenv) needs to
# recompute each time so we separate it out into a single-quoted variable.
# See: http://stackoverflow.com/questions/11877551/zsh-not-re-computing-my-shell-prompt
export ZSH_THEME_VIRTUALENV_PREFIX="("
export ZSH_THEME_VIRTUALENV_SUFFIX=")"
local virtualenv_prompt='%{$orange%}$(virtualenv_prompt_info)%{$reset_color%}'
local base_prompt="${virtualenv_prompt}${base_prompt}"

###
# Configure plugin: zsh-autosuggestions
###
export AUTOSUGGESTION_HIGHLIGHT_COLOR="fg=2"
export AUTOSUGGESTION_ACCEPT_RIGHT_ARROW=1

# Finalize and export the prompt
export PROMPT=$base_prompt

+ 1
- 0
zsh/zgen

@@ -0,0 +1 @@
Subproject commit 111f9e3fcc1c3d4e261d458cb6d65c5a95ec2f1c

Loading…
Cancel
Save