Add custom style pack
This commit is contained in:
@@ -89,9 +89,9 @@ _ps1_season() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Style selection (aurora/neon/forge/circuit/mono/git/hawolex)
|
||||
# PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex
|
||||
# PS1_STYLE_PACK=standard|contest|holiday
|
||||
# Style selection (aurora/neon/forge/circuit/mono/git/hawolex + custom pack)
|
||||
# PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex|radar|synthwave|noir|topo|glitch|arcticfire|acidlime
|
||||
# PS1_STYLE_PACK=standard|contest|holiday|custom
|
||||
# PS1_CONTEST_LAYOUT=day-time-user|user-time|time-user|day-time
|
||||
# PS1_HOLIDAY=christmas|easter|halloween|valentine|thanksgiving|newyear
|
||||
# PS1_GIT=0|1
|
||||
@@ -167,6 +167,50 @@ _ps1_git_line_tail() {
|
||||
printf " "
|
||||
}
|
||||
|
||||
_ps1_context_badge() {
|
||||
local parts=()
|
||||
if [[ -n "${SSH_CONNECTION:-}" ]]; then
|
||||
parts+=("ssh")
|
||||
fi
|
||||
if [[ -f /.dockerenv || -f /run/.containerenv ]]; then
|
||||
parts+=("ctr")
|
||||
fi
|
||||
if command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
parts+=("git")
|
||||
fi
|
||||
if ((${#parts[@]} == 0)); then
|
||||
printf ""
|
||||
return
|
||||
fi
|
||||
printf "[%s] " "$(IFS=:; echo "${parts[*]}")"
|
||||
}
|
||||
|
||||
_ps1_glitch_glyph() {
|
||||
local glyphs=( "≣" "∿" "⌁" "⋯" "⋆" "≡" )
|
||||
local idx=$((10#$(date +%S) % ${#glyphs[@]}))
|
||||
printf "%s" "${glyphs[$idx]}"
|
||||
}
|
||||
|
||||
_ps1_path_topo() {
|
||||
local p="${__PS1_PATH}"
|
||||
local colors=(109 110 111 110)
|
||||
local out=""
|
||||
local idx=0
|
||||
local IFS='/'
|
||||
read -ra parts <<< "$p"
|
||||
for part in "${parts[@]}"; do
|
||||
if [[ -z "$part" ]]; then
|
||||
out+="/"
|
||||
continue
|
||||
fi
|
||||
local c="${colors[$((idx % ${#colors[@]}))]}"
|
||||
out+="\[\e[38;5;${c}m\]${part}\[\e[0m\]/"
|
||||
((idx++))
|
||||
done
|
||||
out="${out%/}"
|
||||
printf "%s" "$out"
|
||||
}
|
||||
|
||||
# ---- Load Git prompt helper (best effort) ----
|
||||
__try_source_git_prompt() {
|
||||
local candidates=(
|
||||
@@ -704,6 +748,103 @@ ${H_LEFT_FG}${H_LEFT}${RST}${H_Z1_BG}${H_Z1_FG} ${L1} ${RST}${H_Z1_BG}${H_Z2_BG}
|
||||
${H_Z2_BG}${H_Z2_FG} ${HOST_PART}${PATH_SEP}${H_PATH_FG}${PATH_PART}${END_PAD}${RST}${H_RIGHT_FG}${H_RIGHT}${RST}\
|
||||
\n${H_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||
;;
|
||||
radar)
|
||||
local R_FRAME="\[\e[38;5;22m\]"
|
||||
local R_MAIN="\[\e[38;5;46m\]"
|
||||
local R_DIM="\[\e[38;5;28m\]"
|
||||
local R_PATH="\[\e[38;5;120m\]"
|
||||
PS1="\
|
||||
${R_FRAME}╭─${RST}${R_MAIN}⟦\\u \\A⟧ ${R_DIM}@\\h ${R_PATH}${__PS1_PATH}${RST}\
|
||||
\n${R_FRAME}╰─${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||
;;
|
||||
synthwave)
|
||||
local SW_FRAME="\[\e[38;5;201m\]"
|
||||
local SW1_BG="\[\e[48;5;198m\]"
|
||||
local SW1_FG="\[\e[38;5;255m\]"
|
||||
local SW2_BG="\[\e[48;5;45m\]"
|
||||
local SW2_FG="\[\e[38;5;16m\]"
|
||||
local SW3_BG="\[\e[48;5;208m\]"
|
||||
local SW3_FG="\[\e[38;5;16m\]"
|
||||
local SW_LEFT="${left}"
|
||||
local SW_RIGHT="${right}"
|
||||
local SW_SEP="${sep}"
|
||||
local SW_LEFT_FG=""
|
||||
local SW_RIGHT_FG=""
|
||||
if [[ "$__PS1_USE_NF" -eq 1 ]]; then
|
||||
SW_LEFT=""
|
||||
SW_RIGHT=""
|
||||
SW_SEP=""
|
||||
SW_LEFT_FG="\[\e[38;5;198m\]"
|
||||
SW_RIGHT_FG="\[\e[38;5;208m\]"
|
||||
fi
|
||||
local SW_SEP12="\[\e[38;5;45m\]\[\e[48;5;198m\]${SW_SEP}${RST}"
|
||||
local SW_SEP23="\[\e[38;5;208m\]\[\e[48;5;45m\]${SW_SEP}${RST}"
|
||||
PS1="\
|
||||
${SW_FRAME}╭─${RST}\
|
||||
${SW_LEFT_FG}${SW_LEFT}${RST}${SW1_BG}${SW1_FG} ${L1} ${RST}${SW_SEP12}${SW2_BG}${SW2_FG} ${L_HOST} ${RST}${SW_SEP23}${SW3_BG}${SW3_FG} ${__PS1_PATH}${END_PAD}${RST}${SW_RIGHT_FG}${SW_RIGHT}${RST}\
|
||||
\n${SW_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||
;;
|
||||
noir)
|
||||
local N_FRAME="\[\e[38;5;236m\]"
|
||||
local N_MAIN="\[\e[38;5;250m\]"
|
||||
local N_DIM="\[\e[38;5;242m\]"
|
||||
local N_PATH="\[\e[38;5;160m\]"
|
||||
PS1="\
|
||||
${N_FRAME}╭─${RST}${N_MAIN}${L1}${RST} ${N_DIM}${L_HOST}${RST} ${N_PATH}${__PS1_PATH}${RST}\
|
||||
\n${N_FRAME}╰─${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||
;;
|
||||
topo)
|
||||
local T_FRAME="\[\e[38;5;24m\]"
|
||||
local T_MAIN="\[\e[38;5;248m\]"
|
||||
PS1="\
|
||||
${T_FRAME}╭─${RST}${T_MAIN}${L1}${RST} ${T_FRAME}${L_HOST}${RST} $(_ps1_path_topo)${END_PAD}${RST}\
|
||||
\n${T_FRAME}╰─${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||
;;
|
||||
glitch)
|
||||
local G_FRAME="\[\e[38;5;129m\]"
|
||||
local G_MAIN="\[\e[38;5;118m\]"
|
||||
local G_DIM="\[\e[38;5;60m\]"
|
||||
local G_SEP="$(_ps1_glitch_glyph)"
|
||||
PS1="\
|
||||
${G_FRAME}╭─${RST}${G_MAIN}${L1}${RST} ${G_DIM}${G_SEP}${RST} ${G_MAIN}${L_HOST} ${RST}${G_DIM}${G_SEP}${RST} ${G_MAIN}${__PS1_PATH}${RST}\
|
||||
\n${G_FRAME}╰─${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||
;;
|
||||
arcticfire)
|
||||
local AF_FRAME="\[\e[38;5;25m\]"
|
||||
local AF1_BG="\[\e[48;5;24m\]"
|
||||
local AF1_FG="\[\e[38;5;255m\]"
|
||||
local AF2_BG="\[\e[48;5;31m\]"
|
||||
local AF2_FG="\[\e[38;5;255m\]"
|
||||
local AF3_BG="\[\e[48;5;208m\]"
|
||||
local AF3_FG="\[\e[38;5;16m\]"
|
||||
local AF_LEFT="${left}"
|
||||
local AF_RIGHT="${right}"
|
||||
local AF_SEP="${sep}"
|
||||
local AF_LEFT_FG=""
|
||||
local AF_RIGHT_FG=""
|
||||
if [[ "$__PS1_USE_NF" -eq 1 ]]; then
|
||||
AF_LEFT=""
|
||||
AF_RIGHT=""
|
||||
AF_SEP=""
|
||||
AF_LEFT_FG="\[\e[38;5;24m\]"
|
||||
AF_RIGHT_FG="\[\e[38;5;208m\]"
|
||||
fi
|
||||
local AF_SEP12="\[\e[38;5;31m\]\[\e[48;5;24m\]${AF_SEP}${RST}"
|
||||
local AF_SEP23="\[\e[38;5;208m\]\[\e[48;5;31m\]${AF_SEP}${RST}"
|
||||
PS1="\
|
||||
${AF_FRAME}╭─${RST}\
|
||||
${AF_LEFT_FG}${AF_LEFT}${RST}${AF1_BG}${AF1_FG} ${L1} ${RST}${AF_SEP12}${AF2_BG}${AF2_FG} ${L_HOST} ${RST}${AF_SEP23}${AF3_BG}${AF3_FG} ${__PS1_PATH}${END_PAD}${RST}${AF_RIGHT_FG}${AF_RIGHT}${RST}\
|
||||
\n${AF_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||
;;
|
||||
acidlime)
|
||||
local AL_FRAME="\[\e[38;5;46m\]"
|
||||
local AL_MAIN="\[\e[38;5;46m\]"
|
||||
local AL_DIM="\[\e[38;5;40m\]"
|
||||
local AL_PATH="\[\e[38;5;118m\]"
|
||||
PS1="\
|
||||
${AL_FRAME}╭─${RST}${AL_MAIN}${L1}${RST} ${AL_DIM}${L_HOST}${RST} ${AL_PATH}${__PS1_PATH}${RST}\
|
||||
\n${AL_FRAME}╰─${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||
;;
|
||||
*)
|
||||
# aurora (default)
|
||||
local A_LEFT="${left}"
|
||||
|
||||
Reference in New Issue
Block a user