Last active
April 30, 2018 05:37
-
-
Save 5310/04d2fe2bdac1d12c1fe5 to your computer and use it in GitHub Desktop.
Powerline Naked Newline – This is a simple edit of the Powerline Naked theme for Bash It which adds some whitespace and linebreak for the prompt #dotfile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
THEME_PROMPT_SEPARATOR="" | |
THEME_PROMPT_SEPARATOR="›" # tty-safe | |
THEME_PROMPT_TERMINAL=" » " | |
SHELL_SSH_CHAR=" " | |
SHELL_SSH_CHAR="[ssh] " # tty-safe | |
SHELL_THEME_PROMPT_COLOR=32 | |
SHELL_SSH_THEME_PROMPT_COLOR=208 | |
VIRTUALENV_CHAR="ⓔ " | |
VIRTUALENV_CHAR="[virt] " # tty-safe | |
VIRTUALENV_THEME_PROMPT_COLOR=35 | |
SCM_NONE_CHAR="" | |
SCM_GIT_CHAR=" " | |
SCM_GIT_CHAR="[git] " # tty-safe | |
SCM_THEME_PROMPT_CLEAN="" | |
SCM_THEME_PROMPT_DIRTY="" | |
SCM_THEME_PROMPT_COLOR=238 | |
SCM_THEME_PROMPT_CLEAN_COLOR=231 | |
SCM_THEME_PROMPT_DIRTY_COLOR=196 | |
SCM_THEME_PROMPT_STAGED_COLOR=220 | |
SCM_THEME_PROMPT_UNSTAGED_COLOR=166 | |
CWD_THEME_PROMPT_COLOR=240 | |
LAST_STATUS_THEME_PROMPT_COLOR=124 | |
function set_rgb_color { | |
if [[ "${1}" != "-" ]]; then | |
fg="38;5;${1}" | |
fi | |
if [[ "${2}" != "-" ]]; then | |
bg="48;5;${2}" | |
[[ -n "${fg}" ]] && bg=";${bg}" | |
fi | |
echo -e "\[\033[${fg}${bg}m\]" | |
} | |
function powerline_shell_prompt { | |
if [[ -n "${SSH_CLIENT}" ]]; then | |
SHELL_PROMPT="${bold_white}${SHELL_SSH_CHAR}\u@\h ${normal}" | |
else | |
SHELL_PROMPT="${bold_white}\u ${normal}" | |
fi | |
} | |
function powerline_virtualenv_prompt { | |
local environ="" | |
if [[ -n "$CONDA_DEFAULT_ENV" ]]; then | |
environ="conda: $CONDA_DEFAULT_ENV" | |
elif [[ -n "$VIRTUAL_ENV" ]]; then | |
environ=$(basename "$VIRTUAL_ENV") | |
fi | |
if [[ -n "$environ" ]]; then | |
VIRTUALENV_PROMPT="${THEME_PROMPT_SEPARATOR}$(set_rgb_color ${VIRTUALENV_THEME_PROMPT_COLOR} -) ${VIRTUALENV_CHAR}$environ ${normal}" | |
else | |
VIRTUALENV_PROMPT="" | |
fi | |
} | |
function powerline_scm_prompt { | |
scm_prompt_vars | |
if [[ "${SCM_NONE_CHAR}" != "${SCM_CHAR}" ]]; then | |
if [[ "${SCM_DIRTY}" -eq 3 ]]; then | |
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_STAGED_COLOR} -)" | |
elif [[ "${SCM_DIRTY}" -eq 2 ]]; then | |
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_UNSTAGED_COLOR} -)" | |
elif [[ "${SCM_DIRTY}" -eq 1 ]]; then | |
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_DIRTY_COLOR} -)" | |
else | |
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_CLEAN_COLOR} -)" | |
fi | |
if [[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]]; then | |
SCM_PROMPT+=" ${SCM_CHAR}${SCM_BRANCH}${SCM_STATE} " | |
fi | |
SCM_PROMPT="${THEME_PROMPT_SEPARATOR}${SCM_PROMPT}${normal}" | |
else | |
SCM_PROMPT="" | |
fi | |
} | |
function powerline_cwd_prompt { | |
CWD_PROMPT="${THEME_PROMPT_SEPARATOR} \w " | |
} | |
function powerline_last_status_prompt { | |
if [[ "$1" -eq 0 ]]; then | |
LAST_STATUS_PROMPT="\n${THEME_PROMPT_TERMINAL}" | |
else | |
LAST_STATUS_PROMPT="${THEME_PROMPT_SEPARATOR}$(set_rgb_color ${LAST_STATUS_THEME_PROMPT_COLOR} -) ${LAST_STATUS} ${normal}\n ${THEME_PROMPT_TERMINAL}" | |
fi | |
} | |
function powerline_prompt_command() { | |
local LAST_STATUS="$?" | |
powerline_shell_prompt | |
powerline_virtualenv_prompt | |
powerline_scm_prompt | |
powerline_cwd_prompt | |
powerline_last_status_prompt LAST_STATUS | |
PS1="\n${SHELL_PROMPT}${VIRTUALENV_PROMPT}${SCM_PROMPT}${CWD_PROMPT}${LAST_STATUS_PROMPT} ${bold_white}" | |
} | |
PROMPT_COMMAND=powerline_prompt_command | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment