mirror of
https://github.com/ohmybash/oh-my-bash.git
synced 2024-05-11 05:55:37 +00:00
"lib" has used the variables "red", "green", "yellow", "blue", and "purple" for outputting logs to stdout/stderr. On the other hand, "themes" has used the same variables for including escape sequences in PS1. These two sets of variables have different values, i.e., the latter is enclosed by '\[' and '\]' and contains escaped '\e', which means that there have been variable conflicts. In this commit, more specific variables are used in these places to resolve the conflicts.
44 lines
1.7 KiB
Bash
44 lines
1.7 KiB
Bash
#! bash oh-my-bash.module
|
|
# This is combination of works from two different people which I combined for my requirement.
|
|
# Original PS1 was from reddit user /u/Allevil669 which I found in thread: https://www.reddit.com/r/linux/comments/1z33lj/linux_users_whats_your_favourite_bash_prompt/
|
|
# I used that PS1 to the bash-it theme 'morris', and customized it to my liking. All credits to /u/Allevil669 and morris.
|
|
#
|
|
# prompt theming
|
|
|
|
_omb_module_require plugin:battery
|
|
|
|
function _omb_theme_PROMPT_COMMAND() {
|
|
local status=$?
|
|
|
|
# added TITLEBAR for updating the tab and window titles with the pwd
|
|
local TITLEBAR
|
|
case $TERM in
|
|
xterm* | screen)
|
|
TITLEBAR=$'\1\e]0;'$USER@${HOSTNAME%%.*}:${PWD/#$HOME/~}$'\e\\\2' ;;
|
|
*)
|
|
TITLEBAR= ;;
|
|
esac
|
|
|
|
local SC
|
|
if ((status == 0)); then
|
|
SC="$_omb_prompt_cyan-$_omb_prompt_bold_green(${_omb_prompt_green}^_^$_omb_prompt_bold_green)";
|
|
else
|
|
SC="$_omb_prompt_cyan-$_omb_prompt_bold_green(${_omb_prompt_red}T_T$_omb_prompt_bold_green)";
|
|
fi
|
|
|
|
local BC=$(battery_percentage)
|
|
[[ $BC == no && $BC == -1 ]] && BC=
|
|
BC=${BC:+${_omb_prompt_cyan}-${_omb_prompt_green}($BC%)}
|
|
|
|
PS1=$TITLEBAR"\n${_omb_prompt_cyan}┌─${_omb_prompt_bold_white}[\u@\h]${_omb_prompt_cyan}─${_omb_prompt_bold_yellow}(\w)$(scm_prompt_info)\n${_omb_prompt_cyan}└─${_omb_prompt_bold_green}[\A]$SC$BC${_omb_prompt_cyan}-${_omb_prompt_bold_cyan}[${_omb_prompt_green}${_omb_prompt_bold_green}\$${_omb_prompt_bold_cyan}]${_omb_prompt_green} "
|
|
}
|
|
|
|
# scm theming
|
|
SCM_THEME_PROMPT_DIRTY=" ${_omb_prompt_red}✗"
|
|
SCM_THEME_PROMPT_CLEAN=" ${_omb_prompt_bold_green}✓"
|
|
SCM_THEME_PROMPT_PREFIX="${_omb_prompt_bold_cyan}("
|
|
SCM_THEME_PROMPT_SUFFIX="${_omb_prompt_bold_cyan})${_omb_prompt_reset_color}"
|
|
|
|
|
|
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND
|