Merge pull request #1447 from davidpfarrell/compact

Adds compact support to powerline themes
pull/1474/head
Nils Winkler 2020-01-01 11:28:15 +01:00 committed by GitHub
commit cfa94e70fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 232 additions and 35 deletions

View File

@ -94,3 +94,25 @@ This can be done by setting the `POWERLINE_PADDING` variable before Bash-it is l
```bash
export POWERLINE_PADDING=3
```
### Compact Settings
You can configure various aspects of the prompt to use less whitespace. Supported variables are:
| Variable | Description
|--------------------------------------|------------
|POWERLINE_COMPACT_BEFORE_SEPARATOR | Removes the leading space before each separator
|POWERLINE_COMPACT_AFTER_SEPARATOR | Removes the trailing space after each separator
|POWERLINE_COMPACT_BEFOR_FIRST_SEGMENT | Removes the leading space on the first segment
|POWERLINE_COMPACT_AFTER_LAST_SEGMENT | Removes the trailing space on the last segment
|POWERLINE_COMPACT_PROMPT | Removes the space after the prompt character
|POWERLINE_COMPACT | Enable all Compact settings (you can still override individual settings)
The default value for all settings is `0` (disabled). Use `1` to enable.
**Multiline Mode Right Prompt**
For the purposes of the `Compact` settings, the segments within the **Right Prompt** are considered to run "right-to-left", i.e.:
* The **right-most** segment is considered to be the `"first"` segment, while the **left-most** segment is considered to be the `"last"`
* The space to the **right** of the separator character is considered to be `"before"`, while the space to the **left** is considered to be `"after"`

View File

@ -8,37 +8,55 @@ function __powerline_right_segment {
local OLD_IFS="${IFS}"; IFS="|"
local params=( $1 )
IFS="${OLD_IFS}"
local separator_char="${POWERLINE_RIGHT_SEPARATOR}"
local separator_char_soft="${POWERLINE_RIGHT_SEPARATOR_SOFT}"
local padding="${POWERLINE_PADDING}"
local separator_color=""
local padding=0
local pad_before_segment=" "
if [[ "${SEGMENTS_AT_RIGHT}" -eq 0 ]]; then
separator_char="${POWERLINE_RIGHT_END}"
separator_color="$(set_color ${params[1]} -)"
if [[ "${POWERLINE_COMPACT_AFTER_LAST_SEGMENT}" -ne 0 ]]; then
pad_before_segment=""
fi
RIGHT_PROMPT+="$(set_color ${params[1]} -)${POWERLINE_RIGHT_END}${normal}"
(( padding += 1 ))
else
if [[ "${POWERLINE_COMPACT_BEFORE_SEPARATOR}" -ne 0 ]]; then
pad_before_segment=""
fi
# Since the previous segment wasn't the last segment, add padding, if needed
#
if [[ "${POWERLINE_COMPACT_AFTER_SEPARATOR}" -eq 0 ]]; then
RIGHT_PROMPT+="$(set_color - ${LAST_SEGMENT_COLOR}) ${normal}"
(( padding += 1 ))
fi
if [[ "${LAST_SEGMENT_COLOR}" -eq "${params[1]}" ]]; then
separator_color="$(set_color - ${LAST_SEGMENT_COLOR})"
separator_char=${separator_char_soft}
RIGHT_PROMPT+="$(set_color - ${LAST_SEGMENT_COLOR})${POWERLINE_RIGHT_SEPARATOR_SOFT}${normal}"
else
separator_color="$(set_color ${params[1]} ${LAST_SEGMENT_COLOR})"
RIGHT_PROMPT+="$(set_color ${params[1]} ${LAST_SEGMENT_COLOR})${POWERLINE_RIGHT_SEPARATOR}${normal}"
fi
(( padding += 1 ))
fi
RIGHT_PROMPT+="${separator_color}${separator_char}${normal}$(set_color - ${params[1]}) ${params[0]} ${normal}$(set_color - ${COLOR})${normal}"
RIGHT_PROMPT_LENGTH=$(( ${#params[0]} + RIGHT_PROMPT_LENGTH + padding ))
RIGHT_PROMPT+="$(set_color - ${params[1]})${pad_before_segment}${params[0]}${normal}"
(( padding += ${#pad_before_segment} ))
(( padding += ${#params[0]} ))
(( RIGHT_PROMPT_LENGTH += padding ))
LAST_SEGMENT_COLOR="${params[1]}"
(( SEGMENTS_AT_RIGHT += 1 ))
}
function __powerline_right_first_segment_padding {
RIGHT_PROMPT+="$(set_color - ${LAST_SEGMENT_COLOR}) ${normal}"
(( RIGHT_PROMPT_LENGTH += 1 ))
}
function __powerline_prompt_command {
local last_status="$?" ## always the first
local separator_char="${POWERLINE_LEFT_SEPARATOR}"
local move_cursor_rightmost='\033[500C'
LEFT_PROMPT=""
RIGHT_PROMPT=""
RIGHT_PROMPT_LENGTH=0
RIGHT_PROMPT_LENGTH=${POWERLINE_PADDING}
SEGMENTS_AT_LEFT=0
SEGMENTS_AT_RIGHT=0
LAST_SEGMENT_COLOR=""
@ -48,6 +66,11 @@ function __powerline_prompt_command {
local info="$(__powerline_${segment}_prompt)"
[[ -n "${info}" ]] && __powerline_left_segment "${info}"
done
if [[ -n "${LEFT_PROMPT}" ]] && [[ "${POWERLINE_COMPACT_AFTER_LAST_SEGMENT}" -eq 0 ]]; then
__powerline_left_last_segment_padding
fi
[[ -n "${LEFT_PROMPT}" ]] && LEFT_PROMPT+="$(set_color ${LAST_SEGMENT_COLOR} -)${POWERLINE_LEFT_END}${normal}"
## right prompt ##
@ -57,12 +80,22 @@ function __powerline_prompt_command {
local info="$(__powerline_${segment}_prompt)"
[[ -n "${info}" ]] && __powerline_right_segment "${info}"
done
RIGHT_PAD=$(printf "%.s " $(seq 1 $RIGHT_PROMPT_LENGTH))
LEFT_PROMPT+="${RIGHT_PAD}${move_cursor_rightmost}"
LEFT_PROMPT+="\033[${RIGHT_PROMPT_LENGTH}D"
if [[ -n "${RIGHT_PROMPT}" ]] && [[ "${POWERLINE_COMPACT_BEFORE_FIRST_SEGMENT}" -eq 0 ]]; then
__powerline_right_first_segment_padding
fi
PS1="${LEFT_PROMPT}${RIGHT_PROMPT}\n$(__powerline_last_status_prompt ${last_status})${PROMPT_CHAR} "
RIGHT_PAD=$(printf "%.s " $(seq 1 $RIGHT_PROMPT_LENGTH))
LEFT_PROMPT+="${RIGHT_PAD}${move_cursor_rightmost}"
LEFT_PROMPT+="\033[$(( ${#RIGHT_PAD} - 1 ))D"
fi
local prompt="${PROMPT_CHAR}"
if [[ "${POWERLINE_COMPACT_PROMPT}" -eq 0 ]]; then
prompt+=" "
fi
PS1="${LEFT_PROMPT}${RIGHT_PROMPT}\n$(__powerline_last_status_prompt ${last_status})${prompt}"
## cleanup ##
unset LAST_SEGMENT_COLOR \

View File

@ -11,6 +11,13 @@ POWERLINE_LEFT_END=${POWERLINE_LEFT_END:=""}
POWERLINE_RIGHT_END=${POWERLINE_RIGHT_END:=""}
POWERLINE_PADDING=${POWERLINE_PADDING:=2}
POWERLINE_COMPACT=${POWERLINE_COMPACT:=0}
POWERLINE_COMPACT_BEFORE_SEPARATOR=${POWERLINE_COMPACT_BEFORE_SEPARATOR:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_AFTER_SEPARATOR=${POWERLINE_COMPACT_AFTER_SEPARATOR:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_BEFOR_FIRST_SEGMENT=${POWERLINE_COMPACT_BEFORE_FIRST_SEGMENT:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_AFTER_LAST_SEGMENT=${POWERLINE_COMPACT_AFTER_LAST_SEGMENT:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_PROMPT=${POWERLINE_COMPACT_PROMPT:=${POWERLINE_COMPACT}}
USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:=" "}
USER_INFO_THEME_PROMPT_COLOR=${POWERLINE_USER_INFO_COLOR:=32}
USER_INFO_THEME_PROMPT_COLOR_SUDO=${POWERLINE_USER_INFO_COLOR_SUDO:=202}

View File

@ -73,3 +73,18 @@ A variable can be defined to set the order of the prompt segments:
POWERLINE_PROMPT="user_info scm python_venv ruby cwd"
The example values above are the current default values, but if you want to remove anything from the prompt, simply remove the "string" that represents the segment from the variable.
### Compact Settings
You can configure various aspects of the prompt to use less whitespace. Supported variables are:
| Variable | Description
|--------------------------------------|------------
|POWERLINE_COMPACT_BEFORE_SEPARATOR | Removes the leading space before each separator
|POWERLINE_COMPACT_AFTER_SEPARATOR | Removes the trailing space after each separator
|POWERLINE_COMPACT_BEFOR_FIRST_SEGMENT | Removes the leading space on the first segment
|POWERLINE_COMPACT_AFTER_LAST_SEGMENT | Removes the trailing space on the last segment
|POWERLINE_COMPACT_PROMPT | Removes the space after the prompt character
|POWERLINE_COMPACT | Enable all Compact settings (you can still override individual settings)
The default value for all settings is `0` (disabled). Use `1` to enable.

View File

@ -4,13 +4,30 @@ function __powerline_left_segment {
local OLD_IFS="${IFS}"; IFS="|"
local params=( $1 )
IFS="${OLD_IFS}"
local separator_char="${POWERLINE_LEFT_SEPARATOR}"
local separator=""
local pad_before_segment=" "
if [[ "${SEGMENTS_AT_LEFT}" -gt 0 ]]; then
separator="${separator_char}"
if [[ "${SEGMENTS_AT_LEFT}" -eq 0 ]]; then
if [[ "${POWERLINE_COMPACT_BEFORE_FIRST_SEGMENT}" -ne 0 ]]; then
pad_before_segment=""
fi
LEFT_PROMPT+="${separator}$(set_color ${params[1]} -) ${params[0]} ${normal}"
else
if [[ "${POWERLINE_COMPACT_AFTER_SEPARATOR}" -ne 0 ]]; then
pad_before_segment=""
fi
# Since the previous segment wasn't the last segment, add padding, if needed
#
if [[ "${POWERLINE_COMPACT_BEFORE_SEPARATOR}" -eq 0 ]]; then
LEFT_PROMPT+=" "
fi
LEFT_PROMPT+="${POWERLINE_LEFT_SEPARATOR}"
fi
LEFT_PROMPT+="$(set_color ${params[1]} -)${pad_before_segment}${params[0]}${normal}"
LAST_SEGMENT_COLOR=${params[1]}
(( SEGMENTS_AT_LEFT += 1 ))
}
function __powerline_left_last_segment_padding {
LEFT_PROMPT+="$(set_color ${LAST_SEGMENT_COLOR} -) ${normal}"
}

View File

@ -6,6 +6,13 @@ PROMPT_CHAR=${POWERLINE_PROMPT_CHAR:=""}
POWERLINE_LEFT_SEPARATOR=${POWERLINE_LEFT_SEPARATOR:=""}
POWERLINE_LEFT_LAST_SEGMENT_PROMPT_CHAR=""
POWERLINE_COMPACT=${POWERLINE_COMPACT:=0}
POWERLINE_COMPACT_BEFORE_SEPARATOR=${POWERLINE_COMPACT_BEFORE_SEPARATOR:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_AFTER_SEPARATOR=${POWERLINE_COMPACT_AFTER_SEPARATOR:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_BEFOR_FIRST_SEGMENT=${POWERLINE_COMPACT_BEFORE_FIRST_SEGMENT:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_AFTER_LAST_SEGMENT=${POWERLINE_COMPACT_AFTER_LAST_SEGMENT:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_PROMPT=${POWERLINE_COMPACT_PROMPT:=${POWERLINE_COMPACT}}
USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:=" "}
USER_INFO_THEME_PROMPT_COLOR=${POWERLINE_USER_INFO_COLOR:=240}
USER_INFO_THEME_PROMPT_COLOR_SUDO=${POWERLINE_USER_INFO_COLOR_SUDO:=202}

View File

@ -71,3 +71,18 @@ A variable can be defined to set the order of the prompt segments:
POWERLINE_PROMPT="user_info scm python_venv ruby cwd"
The example values above are the current default values, but if you want to remove anything from the prompt, simply remove the "string" that represents the segment from the variable.
### Compact Settings
You can configure various aspects of the prompt to use less whitespace. Supported variables are:
| Variable | Description
|--------------------------------------|------------
|POWERLINE_COMPACT_BEFORE_SEPARATOR | Removes the leading space before each separator
|POWERLINE_COMPACT_AFTER_SEPARATOR | Removes the trailing space after each separator
|POWERLINE_COMPACT_BEFOR_FIRST_SEGMENT | Removes the leading space on the first segment
|POWERLINE_COMPACT_AFTER_LAST_SEGMENT | Removes the trailing space on the last segment
|POWERLINE_COMPACT_PROMPT | Removes the space after the prompt character
|POWERLINE_COMPACT | Enable all Compact settings (you can still override individual settings)
The default value for all settings is `0` (disabled). Use `1` to enable.

View File

@ -4,15 +4,34 @@ function __powerline_left_segment {
local OLD_IFS="${IFS}"; IFS="|"
local params=( $1 )
IFS="${OLD_IFS}"
local pad_before_segment=" "
LEFT_PROMPT+="${separator}$(set_color - ${params[1]}) ${params[0]} ${normal}"
if [[ "${SEGMENTS_AT_LEFT}" -eq 0 ]]; then
if [[ "${POWERLINE_COMPACT_BEFORE_FIRST_SEGMENT}" -ne 0 ]]; then
pad_before_segment=""
fi
else
if [[ "${POWERLINE_COMPACT_AFTER_SEPARATOR}" -ne 0 ]]; then
pad_before_segment=""
fi
# Since the previous segment wasn't the last segment, add padding, if needed
#
if [[ "${POWERLINE_COMPACT_BEFORE_SEPARATOR}" -eq 0 ]]; then
LEFT_PROMPT+="$(set_color - ${LAST_SEGMENT_COLOR}) ${normal}"
fi
fi
LEFT_PROMPT+="$(set_color - ${params[1]})${pad_before_segment}${params[0]}${normal}"
LAST_SEGMENT_COLOR=${params[1]}
(( SEGMENTS_AT_LEFT += 1 ))
}
function __powerline_prompt_command {
local last_status="$?" ## always the first
LEFT_PROMPT=""
SEGMENTS_AT_LEFT=0
LAST_SEGMENT_COLOR=""
_save-and-reload-history "${HISTORY_AUTOSAVE:-0}"
@ -21,11 +40,21 @@ function __powerline_prompt_command {
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} -) ${normal}"
PS1="${LEFT_PROMPT} "
[[ "${last_status}" -ne 0 ]] && __powerline_left_segment $(__powerline_last_status_prompt ${last_status})
if [[ -n "${LEFT_PROMPT}" ]] && [[ "${POWERLINE_COMPACT_AFTER_LAST_SEGMENT}" -eq 0 ]]; then
__powerline_left_last_segment_padding
fi
if [[ "${POWERLINE_COMPACT_PROMPT}" -eq 0 ]]; then
LEFT_PROMPT+=" "
fi
PS1="${LEFT_PROMPT}"
## cleanup ##
unset LEFT_PROMPT
unset LAST_SEGMENT_COLOR \
LEFT_PROMPT \
SEGMENTS_AT_LEFT
}

View File

@ -6,6 +6,13 @@ USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:="⌁ "}
USER_INFO_THEME_PROMPT_COLOR=${POWERLINE_USER_INFO_COLOR:=32}
USER_INFO_THEME_PROMPT_COLOR_SUDO=${POWERLINE_USER_INFO_COLOR_SUDO:=202}
POWERLINE_COMPACT=${POWERLINE_COMPACT:=0}
POWERLINE_COMPACT_BEFORE_SEPARATOR=${POWERLINE_COMPACT_BEFORE_SEPARATOR:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_AFTER_SEPARATOR=${POWERLINE_COMPACT_AFTER_SEPARATOR:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_BEFOR_FIRST_SEGMENT=${POWERLINE_COMPACT_BEFORE_FIRST_SEGMENT:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_AFTER_LAST_SEGMENT=${POWERLINE_COMPACT_AFTER_LAST_SEGMENT:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_PROMPT=${POWERLINE_COMPACT_PROMPT:=${POWERLINE_COMPACT}}
PYTHON_VENV_CHAR=${POWERLINE_PYTHON_VENV_CHAR:="ⓔ "}
CONDA_PYTHON_VENV_CHAR=${POWERLINE_CONDA_PYTHON_VENV_CHAR:="ⓔ "}
PYTHON_VENV_THEME_PROMPT_COLOR=${POWERLINE_PYTHON_VENV_COLOR:=35}

View File

@ -79,3 +79,18 @@ A variable can be defined to set the order of the prompt segments:
POWERLINE_PROMPT="user_info scm python_venv ruby cwd"
The example values above are the current default values, but if you want to remove anything from the prompt, simply remove the "string" that represents the segment from the variable.
### Compact Settings
You can configure various aspects of the prompt to use less whitespace. Supported variables are:
| Variable | Description
|--------------------------------------|------------
|POWERLINE_COMPACT_BEFORE_SEPARATOR | Removes the leading space before each separator
|POWERLINE_COMPACT_AFTER_SEPARATOR | Removes the trailing space after each separator
|POWERLINE_COMPACT_BEFOR_FIRST_SEGMENT | Removes the leading space on the first segment
|POWERLINE_COMPACT_AFTER_LAST_SEGMENT | Removes the trailing space on the last segment
|POWERLINE_COMPACT_PROMPT | Removes the space after the prompt character
|POWERLINE_COMPACT | Enable all Compact settings (you can still override individual settings)
The default value for all settings is `0` (disabled). Use `1` to enable.

View File

@ -193,22 +193,37 @@ function __powerline_left_segment {
local OLD_IFS="${IFS}"; IFS="|"
local params=( $1 )
IFS="${OLD_IFS}"
local separator_char="${POWERLINE_LEFT_SEPARATOR}"
local separator_char_soft="${POWERLINE_LEFT_SEPARATOR_SOFT}"
local separator=""
local pad_before_segment=" "
if [[ "${SEGMENTS_AT_LEFT}" -gt 0 ]]; then
if [[ "${LAST_SEGMENT_COLOR}" -eq "${params[1]}" ]]; then
separator="$(set_color - ${LAST_SEGMENT_COLOR})${separator_char_soft}${normal}"
if [[ "${SEGMENTS_AT_LEFT}" -eq 0 ]]; then
if [[ "${POWERLINE_COMPACT_BEFORE_FIRST_SEGMENT}" -ne 0 ]]; then
pad_before_segment=""
fi
else
separator="$(set_color ${LAST_SEGMENT_COLOR} ${params[1]})${separator_char}${normal}"
if [[ "${POWERLINE_COMPACT_AFTER_SEPARATOR}" -ne 0 ]]; then
pad_before_segment=""
fi
# Since the previous segment wasn't the last segment, add padding, if needed
#
if [[ "${POWERLINE_COMPACT_BEFORE_SEPARATOR}" -eq 0 ]]; then
LEFT_PROMPT+="$(set_color - ${LAST_SEGMENT_COLOR}) ${normal}"
fi
if [[ "${LAST_SEGMENT_COLOR}" -eq "${params[1]}" ]]; then
LEFT_PROMPT+="$(set_color - ${LAST_SEGMENT_COLOR})${POWERLINE_LEFT_SEPARATOR_SOFT}${normal}"
else
LEFT_PROMPT+="$(set_color ${LAST_SEGMENT_COLOR} ${params[1]})${POWERLINE_LEFT_SEPARATOR}${normal}"
fi
fi
LEFT_PROMPT+="${separator}$(set_color - ${params[1]}) ${params[0]} ${normal}"
LEFT_PROMPT+="$(set_color - ${params[1]})${pad_before_segment}${params[0]}${normal}"
LAST_SEGMENT_COLOR=${params[1]}
(( SEGMENTS_AT_LEFT += 1 ))
}
function __powerline_left_last_segment_padding {
LEFT_PROMPT+="$(set_color - ${LAST_SEGMENT_COLOR}) ${normal}"
}
function __powerline_last_status_prompt {
[[ "$1" -ne 0 ]] && echo "${1}|${LAST_STATUS_THEME_PROMPT_COLOR}"
}
@ -234,6 +249,10 @@ function __powerline_prompt_command {
[[ "${last_status}" -ne 0 ]] && __powerline_left_segment $(__powerline_last_status_prompt ${last_status})
if [[ -n "${LEFT_PROMPT}" ]] && [[ "${POWERLINE_COMPACT_AFTER_LAST_SEGMENT}" -eq 0 ]]; then
__powerline_left_last_segment_padding
fi
# By default we try to match the prompt to the adjacent segment's background color,
# but when part of the prompt exists within that segment, we instead match the foreground color.
local prompt_color="$(set_color ${LAST_SEGMENT_COLOR} -)"
@ -243,7 +262,11 @@ function __powerline_prompt_command {
fi
[[ -n "${LEFT_PROMPT}" ]] && LEFT_PROMPT+="${prompt_color}${separator_char}${normal}"
PS1="${LEFT_PROMPT} "
if [[ "${POWERLINE_COMPACT_PROMPT}" -eq 0 ]]; then
LEFT_PROMPT+=" "
fi
PS1="${LEFT_PROMPT}"
## cleanup ##
unset LAST_SEGMENT_COLOR \

View File

@ -7,6 +7,13 @@ POWERLINE_LEFT_SEPARATOR=${POWERLINE_LEFT_SEPARATOR:=""}
POWERLINE_LEFT_SEPARATOR_SOFT=${POWERLINE_LEFT_SEPARATOR_SOFT:=""}
POWERLINE_LEFT_LAST_SEGMENT_PROMPT_CHAR=${POWERLINE_LEFT_LAST_SEGMENT_PROMPT_CHAR:=""}
POWERLINE_COMPACT=${POWERLINE_COMPACT:=0}
POWERLINE_COMPACT_BEFORE_SEPARATOR=${POWERLINE_COMPACT_BEFORE_SEPARATOR:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_AFTER_SEPARATOR=${POWERLINE_COMPACT_AFTER_SEPARATOR:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_BEFOR_FIRST_SEGMENT=${POWERLINE_COMPACT_BEFORE_FIRST_SEGMENT:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_AFTER_LAST_SEGMENT=${POWERLINE_COMPACT_AFTER_LAST_SEGMENT:=${POWERLINE_COMPACT}}
POWERLINE_COMPACT_PROMPT=${POWERLINE_COMPACT_PROMPT:=${POWERLINE_COMPACT}}
USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:=" "}
USER_INFO_THEME_PROMPT_COLOR=${POWERLINE_USER_INFO_COLOR:=32}
USER_INFO_THEME_PROMPT_COLOR_SUDO=${POWERLINE_USER_INFO_COLOR_SUDO:=202}