Compare commits

...

6 Commits

Author SHA1 Message Date
865e351171 Expand README for dynamic season and git/emoji notes 2026-01-24 15:10:10 +00:00
f22f319af4 Clarify dynamic season prompt 2026-01-24 15:07:10 +00:00
a57c5d355d Darken seasonal path background 2026-01-24 15:01:23 +00:00
e4c41a8fb1 Darken seasonal path text 2026-01-24 14:55:09 +00:00
27fe9ee246 Tune seasonal gradient contrast 2026-01-24 14:51:38 +00:00
7c4e99667c Add four-segment seasonal gradients 2026-01-24 14:45:15 +00:00
6 changed files with 106 additions and 33 deletions

View File

@@ -95,33 +95,45 @@
}, },
"palettes": { "palettes": {
"winter": { "winter": {
"Z1_BG": 61, "Z1_BG": 59,
"Z2_BG": 61,
"Z3_BG": 63,
"Z4_BG": 38,
"Z5_BG": 37,
"Z1_FG": 255, "Z1_FG": 255,
"Z2_BG": 37,
"Z2_FG": 255, "Z2_FG": 255,
"PATH_FG": 194, "PATH_FG": 152,
"FRAME": 60 "FRAME": 60
}, },
"spring": { "spring": {
"Z1_BG": 71, "Z1_BG": 68,
"Z2_BG": 70,
"Z3_BG": 72,
"Z4_BG": 121,
"Z5_BG": 120,
"Z1_FG": 255, "Z1_FG": 255,
"Z2_BG": 120,
"Z2_FG": 22, "Z2_FG": 22,
"PATH_FG": 22, "PATH_FG": 28,
"FRAME": 65 "FRAME": 65
}, },
"summer": { "summer": {
"Z1_BG": 142, "Z1_BG": 141,
"Z2_BG": 142,
"Z3_BG": 143,
"Z4_BG": 214,
"Z5_BG": 208,
"Z1_FG": 255, "Z1_FG": 255,
"Z2_BG": 214,
"Z2_FG": 0, "Z2_FG": 0,
"PATH_FG": 232, "PATH_FG": 0,
"FRAME": 130 "FRAME": 130
}, },
"autumn": { "autumn": {
"Z1_BG": 95, "Z1_BG": 93,
"Z2_BG": 95,
"Z3_BG": 97,
"Z4_BG": 166,
"Z5_BG": 136,
"Z1_FG": 255, "Z1_FG": 255,
"Z2_BG": 173,
"Z2_FG": 255, "Z2_FG": 255,
"PATH_FG": 223, "PATH_FG": 223,
"FRAME": 95 "FRAME": 95
@@ -418,6 +430,7 @@
"prompt_structure": { "prompt_structure": {
"zone1": "date time user", "zone1": "date time user",
"zone2": "host path", "zone2": "host path",
"seasonal_segments": "date | time | user | host+path (subtle seasonal gradient)",
"line2": "status arrow + emoji", "line2": "status arrow + emoji",
"emoji_padding": "Two spaces after the emoji before the cursor", "emoji_padding": "Two spaces after the emoji before the cursor",
"path_shortening": "Keeps /home/user or /Users/user visible and shortens middle if deep.", "path_shortening": "Keeps /home/user or /Users/user visible and shortens middle if deep.",

View File

@@ -85,10 +85,12 @@ Linux/WSL:
- PS1 only / Banner only / Both - PS1 only / Banner only / Both
- PS1 modes: Single season, Dynamic season, Contest pack, Holidays pack - PS1 modes: Single season, Dynamic season, Contest pack, Holidays pack
- Dynamic season auto-switches by time of year (Spring: MarMay, Summer: JunAug, Autumn: SepNov 14, Winter: Nov 15Feb)
macOS: macOS:
- PS1 modes: Single season, Dynamic season, Contest pack, Holidays pack - PS1 modes: Single season, Dynamic season, Contest pack, Holidays pack
- Dynamic season auto-switches by time of year (same ranges as Linux)
</details> </details>
--- ---
@@ -183,7 +185,12 @@ The Git theme adds a repo-aware capsule on line 2 that only appears inside a Git
- Untracked: 🧷 - Untracked: 🧷
- Stashed: 📦 - Stashed: 📦
It uses the same two-block layout as Aurora, but focuses on signal and minimal noise for fast scanning. It uses the same two-block layout as Aurora, but focuses on signal and minimal noise for fast scanning. Use it when you want repo status on every command without a full VCS prompt.
Git capsule switch:
- `PS1_GIT=1` enables the git capsule on all themes
- Git theme always shows it, regardless of `PS1_GIT`
</details> </details>
--- ---
@@ -212,6 +219,18 @@ Seasonal sets (sunrise / work):
- Summer: 🌞 🏖️ 🌅 🌤 / 🏄 🏖️ 🚤 🌴 - Summer: 🌞 🏖️ 🌅 🌤 / 🏄 🏖️ 🚤 🌴
- Autumn: 🍁 🍂 🌫️ 🌦️ / 🍂 🍄 🎃 🪵 - Autumn: 🍁 🍂 🌫️ 🌦️ / 🍂 🍄 🎃 🪵
- Winter: 🏔️ 🌨️ ❄️ 🌌 / 🎿 ⛷️ 🏂 🧊 - Winter: 🏔️ 🌨️ ❄️ 🌌 / 🎿 ⛷️ 🏂 🧊
Time slots:
- Sunrise: 05:0008:59
- Coffee: 09:0010:59
- Work: 11:3015:59 (unless lunch overrides)
- Evening: 17:0022:59
- Night: 23:0004:59
Meaning:
- Emoji is a light accent for time/season; it never replaces core info
</details> </details>
--- ---

View File

@@ -230,10 +230,10 @@
} }
], ],
"seasonal_palettes": { "seasonal_palettes": {
"winter": { "Z1_BG": 61, "Z1_FG": 255, "Z2_BG": 37, "Z2_FG": 255, "PATH_FG": 194, "FRAME": 60 }, "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": 71, "Z1_FG": 255, "Z2_BG": 120, "Z2_FG": 22, "PATH_FG": 22, "FRAME": 65 }, "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": 142, "Z1_FG": 255, "Z2_BG": 214, "Z2_FG": 0, "PATH_FG": 232, "FRAME": 130 }, "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": 95, "Z1_FG": 255, "Z2_BG": 173, "Z2_FG": 255, "PATH_FG": 223, "FRAME": 95 } "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 }
}, },
"notes": [ "notes": [
"Palette values are 256-color codes.", "Palette values are 256-color codes.",

View File

@@ -47,7 +47,7 @@ if [[ -t 0 ]]; then
echo echo
echo "PS1 mode:" echo "PS1 mode:"
echo " 1) Single season (static)" echo " 1) Single season (static)"
echo " 2) Dynamic season (changing)" echo " 2) Dynamic season (auto, shifts with the year)"
echo " 3) Contest pack (static)" echo " 3) Contest pack (static)"
echo " 4) Holidays pack (static)" echo " 4) Holidays pack (static)"
read -r -p "Choose [3]: " season_mode_choice read -r -p "Choose [3]: " season_mode_choice

View File

@@ -23,7 +23,7 @@ if [[ -t 0 ]]; then
style_pack="standard" style_pack="standard"
echo "PS1 mode:" echo "PS1 mode:"
echo " 1) Single season (static)" echo " 1) Single season (static)"
echo " 2) Dynamic season (changing)" echo " 2) Dynamic season (auto, shifts with the year)"
echo " 3) Contest pack (static)" echo " 3) Contest pack (static)"
echo " 4) Holidays pack (static)" echo " 4) Holidays pack (static)"
read -r -p "Choose [3]: " season_mode_choice read -r -p "Choose [3]: " season_mode_choice

View File

@@ -386,8 +386,8 @@ _ps1_set_prompt() {
local RST="\[\e[0m\]" local RST="\[\e[0m\]"
# Seasonal palettes (Z1 is darker than Z2) # Seasonal palettes (Z1 is darker than Z2)
local Z1_BG Z1_FG Z2_BG Z2_FG PATH_FG FRAME local Z1_BG Z1_FG Z2_BG Z2_FG Z3_BG Z4_BG Z5_BG PATH_FG FRAME
local Z1_BG_CODE Z2_BG_CODE local Z1_BG_CODE Z2_BG_CODE Z3_BG_CODE Z4_BG_CODE Z5_BG_CODE
if [[ "$__PS1_STYLE_PACK" == "contest" ]]; then if [[ "$__PS1_STYLE_PACK" == "contest" ]]; then
Z1_BG_CODE=24 Z1_BG_CODE=24
Z2_BG_CODE=31 Z2_BG_CODE=31
@@ -466,6 +466,12 @@ _ps1_set_prompt() {
Z1_FG="\[\e[38;5;255m\]" Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]"
Z2_FG="\[\e[38;5;255m\]" Z2_FG="\[\e[38;5;255m\]"
Z3_BG_CODE="${Z2_BG_CODE}"
Z4_BG_CODE="${Z2_BG_CODE}"
Z5_BG_CODE="${Z2_BG_CODE}"
Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]"
Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]"
Z5_BG="\[\e[48;5;${Z5_BG_CODE}m\]"
PATH_FG="\[\e[38;5;51m\]" PATH_FG="\[\e[38;5;51m\]"
FRAME="\[\e[38;5;23m\]" FRAME="\[\e[38;5;23m\]"
;; ;;
@@ -473,44 +479,68 @@ _ps1_set_prompt() {
else else
case "$__PS1_SEASON" in case "$__PS1_SEASON" in
spring) spring)
Z1_BG_CODE=71 Z1_BG_CODE=68
Z2_BG_CODE=120 Z2_BG_CODE=70
Z3_BG_CODE=72
Z4_BG_CODE=121
Z5_BG_CODE=120
Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]" Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]"
Z1_FG="\[\e[38;5;255m\]" Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]"
Z2_FG="\[\e[38;5;22m\]" Z2_FG="\[\e[38;5;22m\]"
PATH_FG="\[\e[38;5;22m\]" Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]"
Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]"
Z5_BG="\[\e[48;5;${Z5_BG_CODE}m\]"
PATH_FG="\[\e[38;5;28m\]"
FRAME="\[\e[38;5;65m\]" FRAME="\[\e[38;5;65m\]"
;; ;;
summer) summer)
Z1_BG_CODE=142 Z1_BG_CODE=141
Z2_BG_CODE=214 Z2_BG_CODE=142
Z3_BG_CODE=143
Z4_BG_CODE=214
Z5_BG_CODE=208
Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]" Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]"
Z1_FG="\[\e[38;5;255m\]" Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]"
Z2_FG="\[\e[38;5;0m\]" Z2_FG="\[\e[38;5;0m\]"
PATH_FG="\[\e[38;5;232m\]" Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]"
Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]"
Z5_BG="\[\e[48;5;${Z5_BG_CODE}m\]"
PATH_FG="\[\e[38;5;0m\]"
FRAME="\[\e[38;5;130m\]" FRAME="\[\e[38;5;130m\]"
;; ;;
autumn) autumn)
Z1_BG_CODE=95 Z1_BG_CODE=93
Z2_BG_CODE=173 Z2_BG_CODE=95
Z3_BG_CODE=97
Z4_BG_CODE=166
Z5_BG_CODE=136
Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]" Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]"
Z1_FG="\[\e[38;5;255m\]" Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]"
Z2_FG="\[\e[38;5;255m\]" Z2_FG="\[\e[38;5;255m\]"
Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]"
Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]"
Z5_BG="\[\e[48;5;${Z5_BG_CODE}m\]"
PATH_FG="\[\e[38;5;223m\]" PATH_FG="\[\e[38;5;223m\]"
FRAME="\[\e[38;5;95m\]" FRAME="\[\e[38;5;95m\]"
;; ;;
*) *)
# winter (default) # winter (default)
Z1_BG_CODE=61 Z1_BG_CODE=59
Z2_BG_CODE=37 Z2_BG_CODE=61
Z3_BG_CODE=63
Z4_BG_CODE=38
Z5_BG_CODE=37
Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]" Z1_BG="\[\e[48;5;${Z1_BG_CODE}m\]"
Z1_FG="\[\e[38;5;255m\]" Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]" Z2_BG="\[\e[48;5;${Z2_BG_CODE}m\]"
Z2_FG="\[\e[38;5;255m\]" Z2_FG="\[\e[38;5;255m\]"
PATH_FG="\[\e[38;5;194m\]" Z3_BG="\[\e[48;5;${Z3_BG_CODE}m\]"
Z4_BG="\[\e[48;5;${Z4_BG_CODE}m\]"
Z5_BG="\[\e[48;5;${Z5_BG_CODE}m\]"
PATH_FG="\[\e[38;5;152m\]"
FRAME="\[\e[38;5;60m\]" FRAME="\[\e[38;5;60m\]"
;; ;;
esac esac
@@ -686,13 +716,24 @@ ${H_Z2_BG}${H_Z2_FG} ${HOST_PART}${PATH_SEP}${H_PATH_FG}${PATH_PART}${END_PAD}${
A_RIGHT="" A_RIGHT=""
A_SEP="" A_SEP=""
A_LEFT_FG="\[\e[38;5;${Z1_BG_CODE}m\]" 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;${Z5_BG_CODE:-$Z2_BG_CODE}m\]"
fi 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}"
local SEP45="\[\e[38;5;${Z5_BG_CODE}m\]\[\e[48;5;${Z4_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} ${L_HOST} ${RST}${SEP45}${Z5_BG}${PATH_FG} ${__PS1_PATH}${END_PAD}${RST}${A_RIGHT_FG}${A_RIGHT}${RST}\
\n${FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
else
PS1="\
${PREFIX}${FRAME}╭─${RST}\ ${PREFIX}${FRAME}╭─${RST}\
${A_LEFT_FG}${A_LEFT}${RST}${Z1_BG}${Z1_FG} ${L1} ${RST}${Z1_BG}${Z2_BG}${Z2_FG}${A_SEP}${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}\ ${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}" \n${FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
fi
;; ;;
esac esac
} }