diff --git a/.context.json b/.context.json index 1afbb55..6152e3e 100644 --- a/.context.json +++ b/.context.json @@ -21,6 +21,7 @@ "macos_installer": "dotfiles/install/install-macos-user.sh", "global_installer_wrapper": "dotfiles/install/install-global-ps1.sh", "readme": "README.md", + "library": "libary.md", "palette_image": "images/bash-pallete.png" }, "install_behavior": { diff --git a/dotfiles/ps1/ps1.sh b/dotfiles/ps1/ps1.sh index 3b251c1..60a76ab 100644 --- a/dotfiles/ps1/ps1.sh +++ b/dotfiles/ps1/ps1.sh @@ -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_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}" - 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}\ -${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}" + 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) local R_FRAME="\[\e[38;5;22m\]" diff --git a/libary.md b/libary.md new file mode 100644 index 0000000..39db2d5 --- /dev/null +++ b/libary.md @@ -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 +```