Add theme library and fix HawolexV2 layout

This commit is contained in:
2026-01-24 16:10:06 +00:00
parent a6b588ad8a
commit 9774c15d34
3 changed files with 268 additions and 2 deletions

View File

@@ -21,6 +21,7 @@
"macos_installer": "dotfiles/install/install-macos-user.sh", "macos_installer": "dotfiles/install/install-macos-user.sh",
"global_installer_wrapper": "dotfiles/install/install-global-ps1.sh", "global_installer_wrapper": "dotfiles/install/install-global-ps1.sh",
"readme": "README.md", "readme": "README.md",
"library": "libary.md",
"palette_image": "images/bash-pallete.png" "palette_image": "images/bash-pallete.png"
}, },
"install_behavior": { "install_behavior": {

View File

@@ -776,10 +776,34 @@ ${H_Z2_BG}${H_Z2_FG} ${HOST_PART}${PATH_SEP}${H_PATH_FG}${PATH_PART}${END_PAD}${
local HV2_SEP23="\[\e[38;5;56m\]\[\e[48;5;55m\]${HV2_SEP}${RST}" local HV2_SEP23="\[\e[38;5;56m\]\[\e[48;5;55m\]${HV2_SEP}${RST}"
local HV2_SEP34="\[\e[38;5;31m\]\[\e[48;5;56m\]${HV2_SEP}${RST}" local HV2_SEP34="\[\e[38;5;31m\]\[\e[48;5;56m\]${HV2_SEP}${RST}"
local HV2_SEP45="\[\e[38;5;30m\]\[\e[48;5;31m\]${HV2_SEP}${RST}" local HV2_SEP45="\[\e[38;5;30m\]\[\e[48;5;31m\]${HV2_SEP}${RST}"
PS1="\ local HV2_P1="" HV2_P2="" HV2_P3=""
local HV2_LAYOUT="${__PS1_CONTEST_LAYOUT:-day-time-user}"
if [[ "$__PS1_STYLE_PACK" == "contest" || "$__PS1_STYLE_PACK" == "holiday" ]]; then
case "$HV2_LAYOUT" in
user-time) HV2_P1="\\u"; HV2_P2="\\A" ;;
time-user) HV2_P1="\\A"; HV2_P2="\\u" ;;
day-time) HV2_P1="\\d"; HV2_P2="\\A" ;;
*) HV2_P1="\\d"; HV2_P2="\\A"; HV2_P3="\\u" ;;
esac
else
HV2_P1="\\d"; HV2_P2="\\A"; HV2_P3="\\u"
fi
local HV2_HOST="@\\h"
local HV2_PATH_PREFIX=""
if [[ "$__PS1_STYLE_PACK" == "contest" || "$__PS1_STYLE_PACK" == "holiday" ]]; then
HV2_PATH_PREFIX="- "
fi
if [[ -n "$HV2_P3" ]]; then
PS1="\
${PREFIX}${HV2_FRAME}╭─${RST}\ ${PREFIX}${HV2_FRAME}╭─${RST}\
${HV2_LEFT_FG}${HV2_LEFT}${RST}${HV2_1_BG}${HV2_1_FG} \\d ${RST}${HV2_SEP12}${HV2_2_BG}${HV2_2_FG} \\A ${RST}${HV2_SEP23}${HV2_3_BG}${HV2_3_FG} \\u ${RST}${HV2_SEP34}${HV2_4_BG}${HV2_4_FG} ${L_HOST} ${RST}${HV2_SEP45}${HV2_5_BG}${HV2_PATH_FG} ${__PS1_PATH}${END_PAD}${RST}${HV2_RIGHT_FG}${HV2_RIGHT}${RST}\ ${HV2_LEFT_FG}${HV2_LEFT}${RST}${HV2_1_BG}${HV2_1_FG} ${HV2_P1} ${RST}${HV2_SEP12}${HV2_2_BG}${HV2_2_FG} ${HV2_P2} ${RST}${HV2_SEP23}${HV2_3_BG}${HV2_3_FG} ${HV2_P3} ${RST}${HV2_SEP34}${HV2_4_BG}${HV2_4_FG} ${HV2_HOST} ${RST}${HV2_SEP45}${HV2_5_BG}${HV2_PATH_FG} ${HV2_PATH_PREFIX}${__PS1_PATH}${END_PAD}${RST}${HV2_RIGHT_FG}${HV2_RIGHT}${RST}\
\n${HV2_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}" \n${HV2_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
else
PS1="\
${PREFIX}${HV2_FRAME}╭─${RST}\
${HV2_LEFT_FG}${HV2_LEFT}${RST}${HV2_1_BG}${HV2_1_FG} ${HV2_P1} ${RST}${HV2_SEP12}${HV2_2_BG}${HV2_2_FG} ${HV2_P2} ${RST}${HV2_SEP23}${HV2_3_BG}${HV2_3_FG} ${HV2_HOST} ${RST}${HV2_SEP34}${HV2_4_BG}${HV2_4_FG} ${HV2_PATH_PREFIX}${__PS1_PATH}${END_PAD}${RST}${HV2_RIGHT_FG}${HV2_RIGHT}${RST}\
\n${HV2_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
fi
;; ;;
radar) radar)
local R_FRAME="\[\e[38;5;22m\]" local R_FRAME="\[\e[38;5;22m\]"

241
libary.md Normal file
View File

@@ -0,0 +1,241 @@
# Theme Library
This file lists every prompt theme, color codes, design intent, and configuration options.
## Seasonal (Aurora, Standard Pack)
Design intent: calm, readable, long-session comfort with a subtle five-step gradient
(date -> time -> user -> host -> path).
Layout: two-line powerline, host+path on line 1, status + emoji on line 2.
Winter:
```
Z1_BG=59 Z2_BG=61 Z3_BG=63 Z4_BG=38 Z5_BG=37
Z1_FG=255 Z2_FG=255
PATH_FG=152
FRAME=60
```
Spring:
```
Z1_BG=68 Z2_BG=70 Z3_BG=72 Z4_BG=121 Z5_BG=120
Z1_FG=255 Z2_FG=22
PATH_FG=28
FRAME=65
```
Summer:
```
Z1_BG=141 Z2_BG=142 Z3_BG=143 Z4_BG=214 Z5_BG=208
Z1_FG=255 Z2_FG=0
PATH_FG=0
FRAME=130
```
Autumn:
```
Z1_BG=93 Z2_BG=95 Z3_BG=97 Z4_BG=166 Z5_BG=136
Z1_FG=255 Z2_FG=255
PATH_FG=223
FRAME=95
```
## Contest Pack (style_pack=contest)
Design intent: high-contrast silhouettes, fast scanning, stage-ready presence.
Layout: configurable order for the left segment, always ends with "@host - /path".
Aurora (contest palette):
```
Z1_BG=24 Z2_BG=31
Z1_FG=255 Z2_FG=255
PATH_FG=51
FRAME=23
```
Neon:
```
Z1_BG=201 Z1_FG=255
Z2_BG=45 Z2_FG=16
PATH_FG=16
FRAME=199
```
Forge:
```
Z1_BG=94 Z1_FG=230
Z2_BG=166 Z2_FG=231
PATH_FG=224
FRAME=130
```
Circuit:
```
FG_MAIN=46
FG_DIM=22
PATH_FG=120
```
Mono:
```
FG_MAIN=250
FG_DIM=240
```
Git:
```
Z1_BG=61 Z1_FG=255
Z2_BG=37 Z2_FG=255
PATH_FG=194
FRAME=60
```
Hawolex:
```
Z1_BG=54 Z1_FG=255
Z2_BG=31 Z2_FG=255
PATH_FG=230
FRAME=24
```
HawolexV2 (gradient):
```
Z1_BG=54 Z2_BG=55 Z3_BG=56 Z4_BG=31 Z5_BG=30
Z_FG=255
PATH_FG=230
FRAME=24
```
## Holidays Pack (style_pack=holiday)
Design intent: themed color + emoji without sacrificing readability.
Layout uses contest order and ends with "@host - /path".
Christmas:
```
Z1_BG=52 Z2_BG=28
Z1_FG=255 Z2_FG=255
PATH_FG=194
FRAME=88
```
Easter:
```
Z1_BG=186 Z2_BG=150
Z1_FG=16 Z2_FG=16
PATH_FG=94
FRAME=143
```
Halloween:
```
Z1_BG=53 Z2_BG=166
Z1_FG=255 Z2_FG=16
PATH_FG=16
FRAME=89
```
Valentine:
```
Z1_BG=198 Z2_BG=205
Z1_FG=255 Z2_FG=255
PATH_FG=224
FRAME=162
```
Thanksgiving:
```
Z1_BG=94 Z2_BG=136
Z1_FG=230 Z2_FG=231
PATH_FG=223
FRAME=130
```
NewYear:
```
Z1_BG=17 Z2_BG=20
Z1_FG=255 Z2_FG=255
PATH_FG=229
FRAME=19
```
## Custom Pack (style_pack=custom)
Design intent: experimental, high-signal styles with bold contrast and distinct silhouettes.
Custom styles include a context badge when relevant (ssh, ctr, git).
Radar:
```
FRAME=22
FG_MAIN=46
FG_DIM=28
PATH_FG=120
```
Synthwave:
```
Z1_BG=198 Z1_FG=255
Z2_BG=45 Z2_FG=16
Z3_BG=208 Z3_FG=16
FRAME=201
```
Noir:
```
FG_MAIN=250
FG_DIM=242
PATH_FG=160
FRAME=236
```
Topo:
```
PATH_FG_LIST=109,110,111,110
FRAME=24
```
Glitch:
```
FG_MAIN=118
FG_DIM=60
FRAME=129
```
ArcticFire:
```
Z1_BG=24 Z1_FG=255
Z2_BG=31 Z2_FG=255
Z3_BG=208 Z3_FG=16
FRAME=25
```
AcidLime:
```
FG_MAIN=46
FG_DIM=40
PATH_FG=118
FRAME=46
```
## Configuration Options
Core:
```
PS1_STYLE_PACK=standard|contest|holiday|custom
PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex|hawolexv2|radar|synthwave|noir|topo|glitch|arcticfire|acidlime
PS1_SEASON_MODE=dynamic|static
PS1_SEASON=winter|spring|summer|autumn
PS1_CONTEST_LAYOUT=day-time-user|user-time|time-user|day-time
PS1_HOLIDAY=christmas|easter|halloween|valentine|thanksgiving|newyear
PS1_GIT=0|1
```
Overrides:
```
PS1_FORCE_NF=1 # force Nerd Font separators
PS1_FORCE_ASCII=1 # force ASCII/Unicode separators
DISABLE_GLOBAL_PS1=1 # disable prompt in current shell
~/.config/ps1/disable # disable prompt per-user
```