mirror of
https://github.com/ohmybash/oh-my-bash.git
synced 2024-05-11 05:55:37 +00:00
Merge pull request #510 from GiulianoWF/master
themes/powerline: Add hex color capacity and user info text color
This commit is contained in:
@@ -7,6 +7,7 @@ POWERLINE_LEFT_SEPARATOR=${POWERLINE_LEFT_SEPARATOR:=""}
|
||||
|
||||
USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:=" "}
|
||||
USER_INFO_THEME_PROMPT_COLOR=45
|
||||
USER_INFO_THEME_PROMPT_SECONDARY_COLOR="-"
|
||||
USER_INFO_THEME_PROMPT_COLOR_SUDO=1
|
||||
|
||||
PYTHON_VENV_CHAR=${POWERLINE_PYTHON_VENV_CHAR:="❲p❳ "}
|
||||
|
||||
@@ -13,6 +13,7 @@ function __powerline_right_segment {
|
||||
local separator_char="${POWERLINE_RIGHT_SEPARATOR}"
|
||||
local padding=2
|
||||
local separator_color=""
|
||||
local text_color=${params[2]:-"-"}
|
||||
|
||||
if [[ "${SEGMENTS_AT_RIGHT}" -eq 0 ]]; then
|
||||
separator_color="$(set_color ${params[1]} -)"
|
||||
@@ -20,7 +21,7 @@ function __powerline_right_segment {
|
||||
separator_color="$(set_color ${params[1]} ${LAST_SEGMENT_COLOR})"
|
||||
(( padding += 1 ))
|
||||
fi
|
||||
RIGHT_PROMPT+="${separator_color}${separator_char}${_omb_prompt_normal}$(set_color - ${params[1]}) ${params[0]} ${_omb_prompt_normal}$(set_color - ${COLOR})${_omb_prompt_normal}"
|
||||
RIGHT_PROMPT+="${separator_color}${separator_char}${_omb_prompt_normal}$(set_color ${text_color} ${params[1]}) ${params[0]} ${_omb_prompt_normal}$(set_color - ${COLOR})${_omb_prompt_normal}"
|
||||
RIGHT_PROMPT_LENGTH=$(( ${#params[0]} + RIGHT_PROMPT_LENGTH + padding ))
|
||||
LAST_SEGMENT_COLOR="${params[1]}"
|
||||
(( SEGMENTS_AT_RIGHT += 1 ))
|
||||
|
||||
@@ -8,6 +8,7 @@ POWERLINE_RIGHT_SEPARATOR=${POWERLINE_RIGHT_SEPARATOR:=""}
|
||||
|
||||
USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:=" "}
|
||||
USER_INFO_THEME_PROMPT_COLOR=32
|
||||
USER_INFO_THEME_PROMPT_SECONDARY_COLOR="-"
|
||||
USER_INFO_THEME_PROMPT_COLOR_SUDO=202
|
||||
|
||||
PYTHON_VENV_CHAR=${POWERLINE_PYTHON_VENV_CHAR:="❲p❳ "}
|
||||
|
||||
@@ -8,10 +8,11 @@ function __powerline_left_segment {
|
||||
IFS="${OLD_IFS}"
|
||||
local separator_char=""
|
||||
local separator=""
|
||||
local background_color=${params[2]:-"-"}
|
||||
|
||||
if [[ "${SEGMENTS_AT_LEFT}" -gt 0 ]]; then
|
||||
separator="${separator_char}"
|
||||
fi
|
||||
LEFT_PROMPT+="${separator}$(set_color ${params[1]} -) ${params[0]} ${_omb_prompt_normal}"
|
||||
LEFT_PROMPT+="${separator}$(set_color ${params[1]} ${background_color}) ${params[0]} ${_omb_prompt_normal}"
|
||||
(( SEGMENTS_AT_LEFT += 1 ))
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ POWERLINE_LEFT_SEPARATOR=${POWERLINE_LEFT_SEPARATOR:=""}
|
||||
|
||||
USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:=" "}
|
||||
USER_INFO_THEME_PROMPT_COLOR=240
|
||||
USER_INFO_THEME_PROMPT_SECONDARY_COLOR="-"
|
||||
USER_INFO_THEME_PROMPT_COLOR_SUDO=202
|
||||
|
||||
PYTHON_VENV_CHAR=${POWERLINE_PYTHON_VENV_CHAR:="❲p❳ "}
|
||||
|
||||
@@ -6,8 +6,9 @@ function __powerline_left_segment {
|
||||
local OLD_IFS="${IFS}"; IFS="|"
|
||||
local params=( $1 )
|
||||
IFS="${OLD_IFS}"
|
||||
local text_color=${params[2]:-"-"}
|
||||
|
||||
LEFT_PROMPT+="${separator}$(set_color - ${params[1]}) ${params[0]} ${_omb_prompt_normal}"
|
||||
LEFT_PROMPT+="${separator}$(set_color ${text_color} ${params[1]}) ${params[0]} ${_omb_prompt_normal}"
|
||||
LAST_SEGMENT_COLOR=${params[1]}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ source "$OSH/themes/powerline-plain/powerline-plain.base.sh"
|
||||
|
||||
USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:="⌁ "}
|
||||
USER_INFO_THEME_PROMPT_COLOR=32
|
||||
USER_INFO_THEME_PROMPT_SECONDARY_COLOR="-"
|
||||
USER_INFO_THEME_PROMPT_COLOR_SUDO=202
|
||||
|
||||
PYTHON_VENV_CHAR=${POWERLINE_PYTHON_VENV_CHAR:="ⓔ "}
|
||||
|
||||
@@ -3,20 +3,51 @@
|
||||
# Define this here so it can be used by all of the Powerline themes
|
||||
THEME_CHECK_SUDO=${THEME_CHECK_SUDO:=false}
|
||||
|
||||
function _omb_theme_powerline_hex_to_rgb {
|
||||
local hex_color="$1"
|
||||
local r g b
|
||||
|
||||
r=$((16#${hex_color:1:2}))
|
||||
g=$((16#${hex_color:3:2}))
|
||||
b=$((16#${hex_color:5:2}))
|
||||
|
||||
REPLY="${r};${g};${b}"
|
||||
}
|
||||
|
||||
function set_color {
|
||||
local fg="" bg=""
|
||||
|
||||
if [[ "${1}" != "-" ]]; then
|
||||
fg="38;5;${1}"
|
||||
if [[ ${1} =~ ^[0-9]+$ ]]; then
|
||||
fg="38;5;${1}" # ANSI 256-color code
|
||||
elif [[ ${1} =~ ^[0-9]{1,3}(\;[0-9]{1,3}){2}$ ]]; then
|
||||
fg="38;2;${1}" # RGB color code
|
||||
elif [[ ${1} =~ ^#[0-9A-Fa-f]{6}$ ]]; then
|
||||
local REPLY
|
||||
_omb_theme_powerline_hex_to_rgb "${1}"
|
||||
fg="38;2;${REPLY}" # Hex color code converted to RGB
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${2}" != "-" ]]; then
|
||||
bg="48;5;${2}"
|
||||
[[ -n "${fg}" ]] && bg=";${bg}"
|
||||
if [[ ${2} =~ ^[0-9]+$ ]]; then
|
||||
bg="48;5;${2}" # ANSI 256-color code
|
||||
elif [[ ${2} =~ ^[0-9]{1,3}(\;[0-9]{1,3}){2}$ ]]; then
|
||||
bg="48;2;${2}" # RGB color code
|
||||
elif [[ ${2} =~ ^#[0-9A-Fa-f]{6}$ ]]; then
|
||||
local REPLY
|
||||
_omb_theme_powerline_hex_to_rgb "${2}"
|
||||
bg="48;2;${REPLY}" # Hex color code converted to RGB
|
||||
fi
|
||||
fi
|
||||
echo -e "\[\033[${fg}${bg}m\]"
|
||||
|
||||
echo -e "\[\033[${fg}${fg:+${bg:+;}}${bg}m\]"
|
||||
}
|
||||
|
||||
function __powerline_user_info_prompt {
|
||||
local user_info=""
|
||||
local color=${USER_INFO_THEME_PROMPT_COLOR}
|
||||
local secondary_color="${USER_INFO_THEME_PROMPT_SECONDARY_COLOR}"
|
||||
|
||||
if [[ "${THEME_CHECK_SUDO}" = true ]]; then
|
||||
# check whether sudo is active for no-password executions
|
||||
@@ -38,7 +69,7 @@ function __powerline_user_info_prompt {
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
[[ -n "${user_info}" ]] && echo "${user_info}|${color}"
|
||||
[[ -n "${user_info}" ]] && echo "${user_info}|${color}|${secondary_color}"
|
||||
}
|
||||
|
||||
function __powerline_ruby_prompt {
|
||||
@@ -128,11 +159,13 @@ function __powerline_left_segment {
|
||||
IFS="${OLD_IFS}"
|
||||
local separator_char="${POWERLINE_LEFT_SEPARATOR}"
|
||||
local separator=""
|
||||
local text_color=${params[2]:-"-"}
|
||||
|
||||
if [[ "${SEGMENTS_AT_LEFT}" -gt 0 ]]; then
|
||||
separator="$(set_color ${LAST_SEGMENT_COLOR} ${params[1]})${separator_char}${_omb_prompt_normal}"
|
||||
fi
|
||||
LEFT_PROMPT+="${separator}$(set_color - ${params[1]}) ${params[0]} ${_omb_prompt_normal}"
|
||||
|
||||
LEFT_PROMPT+="${separator}$(set_color ${text_color} ${params[1]}) ${params[0]} ${_omb_prompt_normal}"
|
||||
LAST_SEGMENT_COLOR=${params[1]}
|
||||
(( SEGMENTS_AT_LEFT += 1 ))
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ POWERLINE_LEFT_SEPARATOR=${POWERLINE_LEFT_SEPARATOR:=""}
|
||||
|
||||
USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:=" "}
|
||||
USER_INFO_THEME_PROMPT_COLOR=32
|
||||
USER_INFO_THEME_PROMPT_SECONDARY_COLOR="-"
|
||||
USER_INFO_THEME_PROMPT_COLOR_SUDO=202
|
||||
|
||||
PYTHON_VENV_CHAR=${POWERLINE_PYTHON_VENV_CHAR:="❲p❳ "}
|
||||
|
||||
Reference in New Issue
Block a user