From 7c4e99667c412717c8eb3d7e05143aa886af63e4 Mon Sep 17 00:00:00 2001 From: steffen Date: Sat, 24 Jan 2026 14:45:15 +0000 Subject: [PATCH] Add four-segment seasonal gradients --- .context.json | 25 ++++++++++++++------- contest-styles.json | 8 +++---- dotfiles/ps1/ps1.sh | 54 +++++++++++++++++++++++++++++++++++---------- 3 files changed, 63 insertions(+), 24 deletions(-) diff --git a/.context.json b/.context.json index 504bc99..3a4d475 100644 --- a/.context.json +++ b/.context.json @@ -95,33 +95,41 @@ }, "palettes": { "winter": { - "Z1_BG": 61, + "Z1_BG": 60, + "Z2_BG": 61, + "Z3_BG": 62, + "Z4_BG": 37, "Z1_FG": 255, - "Z2_BG": 37, "Z2_FG": 255, "PATH_FG": 194, "FRAME": 60 }, "spring": { - "Z1_BG": 71, + "Z1_BG": 70, + "Z2_BG": 71, + "Z3_BG": 72, + "Z4_BG": 120, "Z1_FG": 255, - "Z2_BG": 120, "Z2_FG": 22, "PATH_FG": 22, "FRAME": 65 }, "summer": { - "Z1_BG": 142, + "Z1_BG": 141, + "Z2_BG": 142, + "Z3_BG": 143, + "Z4_BG": 214, "Z1_FG": 255, - "Z2_BG": 214, "Z2_FG": 0, "PATH_FG": 232, "FRAME": 130 }, "autumn": { - "Z1_BG": 95, + "Z1_BG": 94, + "Z2_BG": 95, + "Z3_BG": 96, + "Z4_BG": 173, "Z1_FG": 255, - "Z2_BG": 173, "Z2_FG": 255, "PATH_FG": 223, "FRAME": 95 @@ -418,6 +426,7 @@ "prompt_structure": { "zone1": "date time user", "zone2": "host path", + "seasonal_segments": "date | time | user | host+path (subtle seasonal gradient)", "line2": "status arrow + emoji", "emoji_padding": "Two spaces after the emoji before the cursor", "path_shortening": "Keeps /home/user or /Users/user visible and shortens middle if deep.", diff --git a/contest-styles.json b/contest-styles.json index ae974ae..5a32ade 100644 --- a/contest-styles.json +++ b/contest-styles.json @@ -230,10 +230,10 @@ } ], "seasonal_palettes": { - "winter": { "Z1_BG": 61, "Z1_FG": 255, "Z2_BG": 37, "Z2_FG": 255, "PATH_FG": 194, "FRAME": 60 }, - "spring": { "Z1_BG": 71, "Z1_FG": 255, "Z2_BG": 120, "Z2_FG": 22, "PATH_FG": 22, "FRAME": 65 }, - "summer": { "Z1_BG": 142, "Z1_FG": 255, "Z2_BG": 214, "Z2_FG": 0, "PATH_FG": 232, "FRAME": 130 }, - "autumn": { "Z1_BG": 95, "Z1_FG": 255, "Z2_BG": 173, "Z2_FG": 255, "PATH_FG": 223, "FRAME": 95 } + "winter": { "Z1_BG": 60, "Z2_BG": 61, "Z3_BG": 62, "Z4_BG": 37, "Z1_FG": 255, "Z2_FG": 255, "PATH_FG": 194, "FRAME": 60 }, + "spring": { "Z1_BG": 70, "Z2_BG": 71, "Z3_BG": 72, "Z4_BG": 120, "Z1_FG": 255, "Z2_FG": 22, "PATH_FG": 22, "FRAME": 65 }, + "summer": { "Z1_BG": 141, "Z2_BG": 142, "Z3_BG": 143, "Z4_BG": 214, "Z1_FG": 255, "Z2_FG": 0, "PATH_FG": 232, "FRAME": 130 }, + "autumn": { "Z1_BG": 94, "Z2_BG": 95, "Z3_BG": 96, "Z4_BG": 173, "Z1_FG": 255, "Z2_FG": 255, "PATH_FG": 223, "FRAME": 95 } }, "notes": [ "Palette values are 256-color codes.", diff --git a/dotfiles/ps1/ps1.sh b/dotfiles/ps1/ps1.sh index cf75d25..7128447 100644 --- a/dotfiles/ps1/ps1.sh +++ b/dotfiles/ps1/ps1.sh @@ -386,8 +386,8 @@ _ps1_set_prompt() { local RST="\[\e[0m\]" # Seasonal palettes (Z1 is darker than Z2) - local Z1_BG Z1_FG Z2_BG Z2_FG PATH_FG FRAME - local Z1_BG_CODE Z2_BG_CODE + local Z1_BG Z1_FG Z2_BG Z2_FG Z3_BG Z4_BG PATH_FG FRAME + local Z1_BG_CODE Z2_BG_CODE Z3_BG_CODE Z4_BG_CODE if [[ "$__PS1_STYLE_PACK" == "contest" ]]; then Z1_BG_CODE=24 Z2_BG_CODE=31 @@ -466,6 +466,10 @@ _ps1_set_prompt() { Z1_FG="\[\e[38;5;255m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_FG="\[\e[38;5;255m\]" + Z3_BG_CODE="${Z2_BG_CODE}" + Z4_BG_CODE="${Z2_BG_CODE}" + Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]" + Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]" PATH_FG="\[\e[38;5;51m\]" FRAME="\[\e[38;5;23m\]" ;; @@ -473,43 +477,59 @@ _ps1_set_prompt() { else case "$__PS1_SEASON" in spring) - Z1_BG_CODE=71 - Z2_BG_CODE=120 + Z1_BG_CODE=70 + Z2_BG_CODE=71 + Z3_BG_CODE=72 + Z4_BG_CODE=120 Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]" Z1_FG="\[\e[38;5;255m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_FG="\[\e[38;5;22m\]" + Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]" + Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]" PATH_FG="\[\e[38;5;22m\]" FRAME="\[\e[38;5;65m\]" ;; summer) - Z1_BG_CODE=142 - Z2_BG_CODE=214 + Z1_BG_CODE=141 + Z2_BG_CODE=142 + Z3_BG_CODE=143 + Z4_BG_CODE=214 Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]" Z1_FG="\[\e[38;5;255m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_FG="\[\e[38;5;0m\]" + Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]" + Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]" PATH_FG="\[\e[38;5;232m\]" FRAME="\[\e[38;5;130m\]" ;; autumn) - Z1_BG_CODE=95 - Z2_BG_CODE=173 + Z1_BG_CODE=94 + Z2_BG_CODE=95 + Z3_BG_CODE=96 + Z4_BG_CODE=173 Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]" Z1_FG="\[\e[38;5;255m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_FG="\[\e[38;5;255m\]" + Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]" + Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]" PATH_FG="\[\e[38;5;223m\]" FRAME="\[\e[38;5;95m\]" ;; *) # winter (default) - Z1_BG_CODE=61 - Z2_BG_CODE=37 + Z1_BG_CODE=60 + Z2_BG_CODE=61 + Z3_BG_CODE=62 + Z4_BG_CODE=37 Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]" Z1_FG="\[\e[38;5;255m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_FG="\[\e[38;5;255m\]" + Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]" + Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]" PATH_FG="\[\e[38;5;194m\]" FRAME="\[\e[38;5;60m\]" ;; @@ -686,13 +706,23 @@ ${H_Z2_BG}${H_Z2_FG} ${HOST_PART}${PATH_SEP}${H_PATH_FG}${PATH_PART}${END_PAD}${ A_RIGHT="" A_SEP="" A_LEFT_FG="\[\e[38;5;${Z1_BG_CODE}m\]" - A_RIGHT_FG="\[\e[38;5;${Z2_BG_CODE}m\]" + A_RIGHT_FG="\[\e[38;5;${Z4_BG_CODE:-$Z2_BG_CODE}m\]" fi - PS1="\ + if [[ "$__PS1_STYLE_PACK" == "standard" && "$__PS1_USE_NF" -eq 1 ]]; then + local SEP12="\[\e[38;5;${Z2_BG_CODE}m\]\[\e[48;5;${Z1_BG_CODE}m\]${A_SEP}${RST}" + local SEP23="\[\e[38;5;${Z3_BG_CODE}m\]\[\e[48;5;${Z2_BG_CODE}m\]${A_SEP}${RST}" + local SEP34="\[\e[38;5;${Z4_BG_CODE}m\]\[\e[48;5;${Z3_BG_CODE}m\]${A_SEP}${RST}" + PS1="\ +${PREFIX}${FRAME}╭─${RST}\ +${A_LEFT_FG}${A_LEFT}${RST}${Z1_BG}${Z1_FG} \\d ${RST}${SEP12}${Z2_BG}${Z1_FG} \\A ${RST}${SEP23}${Z3_BG}${Z1_FG} \\u ${RST}${SEP34}${Z4_BG}${Z2_FG} ${HOST_PART}${PATH_SEP}${PATH_FG}${PATH_PART}${END_PAD}${RST}${A_RIGHT_FG}${A_RIGHT}${RST}\ +\n${FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}" + else + PS1="\ ${PREFIX}${FRAME}╭─${RST}\ ${A_LEFT_FG}${A_LEFT}${RST}${Z1_BG}${Z1_FG} ${L1} ${RST}${Z1_BG}${Z2_BG}${Z2_FG}${A_SEP}${RST}\ ${Z2_BG}${Z2_FG} ${HOST_PART}${PATH_SEP}${PATH_FG}${PATH_PART}${END_PAD}${RST}${A_RIGHT_FG}${A_RIGHT}${RST}\ \n${FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}" + fi ;; esac }