Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jakob Theme #421

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions modules/prompt/functions/prompt_jakob_setup
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#
# A simple theme that displays relevant, contextual information.
# Modified sorin theme with pwd on the right instead of left and less arrows.
# Colors inspired by wezm+.theme from oh-my-zsh.
#
# Authors:
# Sorin Ionescu <[email protected]>
# Jakob Hetzelein <[email protected]>
#
# Screenshots:
# solarized theme (xfce4-terminal): http://i.imgur.com/0DRzliX.png
# tango theme (xfce4-terminal): http://i.imgur.com/9rd8SQe.png
#

# Load dependencies.
pmodload 'helper'

function prompt_jakob_pwd {
local pwd="${PWD/#$HOME/~}"

if [[ "$pwd" == (#m)[/~] ]]; then
_prompt_jakob_pwd="$MATCH"
unset MATCH
else
_prompt_jakob_pwd="${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}/${pwd:t}"
fi
}

function prompt_jakob_precmd {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS

# Format PWD.
prompt_jakob_pwd

# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
}

function prompt_jakob_setup {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(cr percent subst)

# Load required functions.
autoload -Uz add-zsh-hook

# Add hook for calling git-info before each command.
add-zsh-hook precmd prompt_jakob_precmd

zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b'
zstyle ':prezto:module:editor:info:keymap:primary' format ' %B%F%F{red}❯%f%b'
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format ' %F{red}♺%f'
zstyle ':prezto:module:editor:info:keymap:alternate' format ' %B%F{red}❮%f%b'
zstyle ':prezto:module:git:info:action' format ':%%B%F{yellow}%s%f%%b'
zstyle ':prezto:module:git:info:added' format ' %%B%F{green}✚%f%%b'
zstyle ':prezto:module:git:info:ahead' format ' %%B%F{yellow}⬆%f%%b'
zstyle ':prezto:module:git:info:behind' format ' %%B%F{yellow}⬇%f%%b'
zstyle ':prezto:module:git:info:branch' format '%F{blue}%b%f'
zstyle ':prezto:module:git:info:commit' format '%F{green}%.7c%f'
zstyle ':prezto:module:git:info:deleted' format ' %%B%F{red}✖%f%%b'
zstyle ':prezto:module:git:info:modified' format ' %%B%F{blue}✱%f%%b'
zstyle ':prezto:module:git:info:position' format '%F{red}%p%f'
zstyle ':prezto:module:git:info:renamed' format ' %%B%F{magenta}➜%f%%b'
zstyle ':prezto:module:git:info:stashed' format ' %%B%F{cyan}✭%f%%b'
zstyle ':prezto:module:git:info:unmerged' format ' %%B%F{yellow}═%f%%b'
zstyle ':prezto:module:git:info:untracked' format ' %%B%F{white}◼%f%%b'
zstyle ':prezto:module:git:info:keys' format \
'prompt' ' $(coalesce "%b" "%p" "%c")%s' \
'rprompt' '%A%B%S%a%d%m%r%U%u'

# Define prompts.
PROMPT='%B%F{yellow}%n%f%b${git_info:+${(e)git_info[prompt]}}%(!. %B%F{red}#%f%b.)${editor_info[keymap]} '
RPROMPT='%f${editor_info[overwrite]}%(?:: %F{red}⏎%f)${VIM:+" %B%F{green}V%f%b"}${git_info[rprompt]}%F{green} ${_prompt_jakob_pwd}'
SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? '
}

prompt_jakob_setup "$@"