diff --git a/themes/powerline/powerline.base.bash b/themes/powerline/powerline.base.bash index 3abeda8d..c60b45e0 100644 --- a/themes/powerline/powerline.base.bash +++ b/themes/powerline/powerline.base.bash @@ -10,16 +10,14 @@ function set_color { } function __powerline_user_info_prompt { - local user_info="" + local user_info=${USER} local color=${USER_INFO_THEME_PROMPT_COLOR} - if sudo -n uptime 2>&1 | grep -q "load"; then - color=${USER_INFO_THEME_PROMPT_COLOR_SUDO} - fi case "${POWERLINE_PROMPT_USER_INFO_MODE}" in "sudo") - if [[ "${color}" == "${USER_INFO_THEME_PROMPT_COLOR_SUDO}" ]]; then - user_info="!" + if sudo -n uptime 2>&1 | grep -q "load"; then + color=${USER_INFO_THEME_PROMPT_COLOR_SUDO} + user_info=${USER_INFO_SUDO_CHAR}${USER} fi ;; *) @@ -85,6 +83,10 @@ function __powerline_cwd_prompt { echo "$(pwd | sed "s|^${HOME}|~|")|${CWD_THEME_PROMPT_COLOR}" } +function __powerline_hostname_prompt { + echo "$(hostname -s)|${HOST_THEME_PROMPT_COLOR}" +} + function __powerline_clock_prompt { echo "$(date +"${THEME_CLOCK_FORMAT}")|${CLOCK_THEME_PROMPT_COLOR}" } @@ -141,11 +143,17 @@ function __powerline_prompt_command { SEGMENTS_AT_LEFT=0 LAST_SEGMENT_COLOR="" + + if [[ -n "${POWERLINE_PROMPT_DISTRO_LOGO}" ]]; then + LEFT_PROMPT+="$(set_color ${PROMPT_DISTRO_LOGO_COLOR} ${PROMPT_DISTRO_LOGO_COLORBG})${PROMPT_DISTRO_LOGO}" + fi + ## left prompt ## for segment in $POWERLINE_PROMPT; do local info="$(__powerline_${segment}_prompt)" [[ -n "${info}" ]] && __powerline_left_segment "${info}" done + [[ "${last_status}" -ne 0 ]] && __powerline_left_segment $(__powerline_last_status_prompt ${last_status}) [[ -n "${LEFT_PROMPT}" ]] && LEFT_PROMPT+="$(set_color ${LAST_SEGMENT_COLOR} -)${separator_char}${normal}" @@ -156,3 +164,4 @@ function __powerline_prompt_command { LEFT_PROMPT \ SEGMENTS_AT_LEFT } + diff --git a/themes/redline/README.md b/themes/redline/README.md index 2ad8b451..0705612e 100644 --- a/themes/redline/README.md +++ b/themes/redline/README.md @@ -2,7 +2,10 @@ changed up the powerline base a little. -it plays nicest with this font: [DroidSansMonoForPowerline](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/DroidSansMono) +It plays nicest with this font: [DroidSansMonoForPowerline](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/DroidSansMono) + +Read the [powerline theme documentation](https://github.com/Bash-it/bash-it/blob/master/themes/powerline/README.md) + ## added * hostname @@ -37,4 +40,4 @@ export POWERLINE_PROMPT="python_venv user_info hostname cwd scm" export POWERLINE_PROMPT_DISTRO_LOGO="yes" ``` -Read the [powerline theme documentation](https://github.com/Bash-it/bash-it/blob/master/themes/powerline/README.md) +![screenshot](screenshot.png?raw=true) diff --git a/themes/redline/redline.base.bash b/themes/redline/redline.base.bash deleted file mode 100644 index 3cca767f..00000000 --- a/themes/redline/redline.base.bash +++ /dev/null @@ -1,166 +0,0 @@ -function set_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_user_info_prompt { - local user_info=${USER} - local color=${USER_INFO_THEME_PROMPT_COLOR} - - case "${POWERLINE_PROMPT_USER_INFO_MODE}" in - "sudo") - if sudo -n uptime 2>&1 | grep -q "load"; then - color=${USER_INFO_THEME_PROMPT_COLOR_SUDO} - user_info=${USER_INFO_SUDO_CHAR}${USER} - fi - ;; - *) - if [[ -n "${SSH_CLIENT}" ]]; then - user_info="${USER_INFO_SSH_CHAR}${USER}@${HOSTNAME}" - else - user_info="${USER}" - fi - ;; - esac - [[ -n "${user_info}" ]] && echo "${user_info}|${color}" -} - -function __powerline_ruby_prompt { - local ruby_version="" - - if command_exists rvm; then - ruby_version="$(rvm_version_prompt)" - elif command_exists rbenv; then - ruby_version=$(rbenv_version_prompt) - fi - - [[ -n "${ruby_version}" ]] && echo "${RUBY_CHAR}${ruby_version}|${RUBY_THEME_PROMPT_COLOR}" -} - -function __powerline_python_venv_prompt { - local python_venv="" - - if [[ -n "${CONDA_DEFAULT_ENV}" ]]; then - python_venv="${CONDA_DEFAULT_ENV}" - PYTHON_VENV_CHAR=${CONDA_PYTHON_VENV_CHAR} - elif [[ -n "${VIRTUAL_ENV}" ]]; then - python_venv=$(basename "${VIRTUAL_ENV}") - fi - - [[ -n "${python_venv}" ]] && echo "${PYTHON_VENV_CHAR}${python_venv}|${PYTHON_VENV_THEME_PROMPT_COLOR}" -} - -function __powerline_scm_prompt { - local color="" - local scm_prompt="" - - scm_prompt_vars - - if [[ "${SCM_NONE_CHAR}" != "${SCM_CHAR}" ]]; then - if [[ "${SCM_DIRTY}" -eq 3 ]]; then - color=${SCM_THEME_PROMPT_STAGED_COLOR} - elif [[ "${SCM_DIRTY}" -eq 2 ]]; then - color=${SCM_THEME_PROMPT_UNSTAGED_COLOR} - elif [[ "${SCM_DIRTY}" -eq 1 ]]; then - color=${SCM_THEME_PROMPT_DIRTY_COLOR} - else - color=${SCM_THEME_PROMPT_CLEAN_COLOR} - fi - if [[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]]; then - scm_prompt+="${SCM_CHAR}${SCM_BRANCH}${SCM_STATE}" - fi - echo "${scm_prompt}${scm}|${color}" - fi -} - -function __powerline_cwd_prompt { - echo "$(pwd | sed "s|^${HOME}|~|")|${CWD_THEME_PROMPT_COLOR}" -} - -function __powerline_hostname_prompt { - echo "$(hostname -s)|${HOST_THEME_PROMPT_COLOR}" -} - -function __powerline_clock_prompt { - echo "$(date +"${THEME_CLOCK_FORMAT}")|${CLOCK_THEME_PROMPT_COLOR}" -} - -function __powerline_battery_prompt { - local color="" - local battery_status="$(battery_percentage 2> /dev/null)" - - if [[ -z "${battery_status}" ]] || [[ "${battery_status}" = "-1" ]] || [[ "${battery_status}" = "no" ]]; then - true - else - if [[ "$((10#${battery_status}))" -le 5 ]]; then - color="${BATTERY_STATUS_THEME_PROMPT_CRITICAL_COLOR}" - elif [[ "$((10#${battery_status}))" -le 25 ]]; then - color="${BATTERY_STATUS_THEME_PROMPT_LOW_COLOR}" - else - color="${BATTERY_STATUS_THEME_PROMPT_GOOD_COLOR}" - fi - ac_adapter_connected && battery_status="${BATTERY_AC_CHAR}${battery_status}" - echo "${battery_status}%|${color}" - fi -} - -function __powerline_in_vim_prompt { - if [ -n "$VIMRUNTIME" ]; then - echo "${IN_VIM_THEME_PROMPT_TEXT}|${IN_VIM_THEME_PROMPT_COLOR}" - fi -} - -function __powerline_left_segment { - local OLD_IFS="${IFS}"; IFS="|" - local params=( $1 ) - IFS="${OLD_IFS}" - local separator_char="${POWERLINE_LEFT_SEPARATOR}" - local separator="" - - if [[ "${SEGMENTS_AT_LEFT}" -gt 0 ]]; then - separator="$(set_color ${LAST_SEGMENT_COLOR} ${params[1]})${separator_char}${normal}" - fi - LEFT_PROMPT+="${separator}$(set_color - ${params[1]}) ${params[0]} ${normal}" - LAST_SEGMENT_COLOR=${params[1]} - (( SEGMENTS_AT_LEFT += 1 )) -} - -function __powerline_last_status_prompt { - [[ "$1" -ne 0 ]] && echo "${1}|${LAST_STATUS_THEME_PROMPT_COLOR}" -} - -function __powerline_prompt_command { - local last_status="$?" ## always the first - local separator_char="${POWERLINE_PROMPT_CHAR}" - - LEFT_PROMPT="" - SEGMENTS_AT_LEFT=0 - LAST_SEGMENT_COLOR="" - - - if [[ -n "${POWERLINE_PROMPT_DISTRO_LOGO}" ]]; then - LEFT_PROMPT+="$(set_color ${PROMPT_DISTRO_LOGO_COLOR} ${PROMPT_DISTRO_LOGO_COLORBG})${PROMPT_DISTRO_LOGO}" - fi - - ## left prompt ## - for segment in $POWERLINE_PROMPT; do - local info="$(__powerline_${segment}_prompt)" - [[ -n "${info}" ]] && __powerline_left_segment "${info}" - done - - [[ "${last_status}" -ne 0 ]] && __powerline_left_segment $(__powerline_last_status_prompt ${last_status}) - [[ -n "${LEFT_PROMPT}" ]] && LEFT_PROMPT+="$(set_color ${LAST_SEGMENT_COLOR} -)${separator_char}${normal}" - - PS1="${LEFT_PROMPT} " - - ## cleanup ## - unset LAST_SEGMENT_COLOR \ - LEFT_PROMPT \ - SEGMENTS_AT_LEFT -} diff --git a/themes/redline/redline.theme.bash b/themes/redline/redline.theme.bash index e45258e4..36e012fc 100644 --- a/themes/redline/redline.theme.bash +++ b/themes/redline/redline.theme.bash @@ -1,6 +1,6 @@ #!/usr/bin/env bash -. "$BASH_IT/themes/redline/redline.base.bash" +. "$BASH_IT/themes/powerline/powerline.base.bash" PROMPT_DISTRO_LOGO=" " PROMPT_DISTRO_LOGO_COLOR=15 diff --git a/themes/redline/screenshot.png b/themes/redline/screenshot.png new file mode 100644 index 00000000..ba9df717 Binary files /dev/null and b/themes/redline/screenshot.png differ