Compare commits

...

7 Commits

Author SHA1 Message Date
5babaa626b Clarify git capsule state meanings 2026-01-24 20:43:35 +00:00
b9e4a97fea Merge branch 'main' into demo 2026-01-24 20:42:58 +00:00
12fc686de1 Document git capsule in library 2026-01-24 20:40:29 +00:00
3f9bc8f9fa Fix demo rotation and move demo to top 2026-01-24 20:32:06 +00:00
ae66cbc70e Add demo mode to cycle all themes 2026-01-24 20:31:54 +00:00
16a7d8dad9 . 2026-01-24 20:13:06 +00:00
8079b90e0c . 2026-01-24 19:57:11 +00:00
7 changed files with 159 additions and 37 deletions

View File

@@ -23,7 +23,34 @@
"readme": "README.md",
"library": "libary.md",
"palette_image": "images/bash-pallete.png",
"theme_images_dir": "images/themes"
"theme_images_dir": "images/themes",
"theme_images": {
"season_winter": "images/themes/season-winter.png",
"season_spring": "images/themes/season-spring.png",
"season_summer": "images/themes/season-summer.png",
"season_autumn": "images/themes/season-autumn.png",
"aurora": "images/themes/aurora.png",
"neon": "images/themes/neon.png",
"forge": "images/themes/forge.png",
"circuit": "images/themes/circuit.png",
"mono": "images/themes/mono.png",
"git": "images/themes/git.png",
"hawolex": "images/themes/hawolex.png",
"hawolexv2": "images/themes/hawolexv2.png",
"christmas": "images/themes/christmas.png",
"easter": "images/themes/easter.png",
"halloween": "images/themes/halloween.png",
"valentine": "images/themes/valentine.png",
"thanksgiving": "images/themes/thanksgiving.png",
"newyear": "images/themes/newyear.png",
"radar": "images/themes/radar.png",
"synthwave": "images/themes/synthwave.png",
"noir": "images/themes/noir.png",
"topo": "images/themes/topo.png",
"glitch": "images/themes/glitch.png",
"arcticfire": "images/themes/arcticfire.png",
"acidlime": "images/themes/acidlime.png"
}
},
"install_behavior": {
"linux": {
@@ -197,6 +224,13 @@
"layout": "two-line, segmented gradient",
"preview": "[date time user] @host - /path"
},
{
"id": "demo",
"name": "Demo",
"description": "Cycles through all styles each prompt.",
"layout": "two-line, auto-rotate",
"preview": "(auto-rotate)"
},
{
"id": "radar",
"name": "Radar",
@@ -248,7 +282,7 @@
}
],
"config": {
"env": "PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex|hawolexv2|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",
"env": "PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex|hawolexv2|radar|synthwave|noir|topo|glitch|arcticfire|acidlime|demo; 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",
"config_file_keys": [
"PS1_STYLE",
"PS1_STYLE_PACK",

View File

@@ -4,6 +4,13 @@ Elegant, portable, and easy-to-install Bash prompt with seasonal palettes, time-
---
## ⚡ Quick Look
- Theme gallery + full specs: [Theme Library](libary.md)
- Packs: Seasonal (auto), Contest, Holidays, Custom, Git
- Layout order option: day-time-user, user-time, time-user, day-time
- Optional git capsule across themes
## ✅ Requirements (Nerd Fonts)
This prompt relies on Nerd Font glyphs for the rounded separators.
@@ -209,6 +216,8 @@ Seven extra styles, built to be loud and expressive:
- AcidLime: black + electric green
Custom styles add a small context badge when relevant (`ssh`, `ctr`, `git`).
Demo mode (screenshots): choose "Demo" to auto-cycle through all themes on each prompt.
</details>
---

View File

@@ -302,6 +302,20 @@
},
"preview": "[date time user] @host - /path"
},
{
"id": "demo",
"name": "Demo",
"tagline": "Auto-rotate all themes",
"description": "Cycles through all themes each prompt for rapid screenshots.",
"layout": {
"line1": "auto",
"line2": "auto"
},
"colors": {
"note": "Uses each theme's native palette"
},
"preview": "(auto-rotate)"
},
{
"id": "radar",
"name": "Radar",

View File

@@ -171,33 +171,36 @@ if [[ -t 0 ]]; then
if [[ "$style_pack" == "contest" ]]; then
echo
echo "Style presets:"
echo " 1) Aurora - Powerline blocks, seasonal palette, two-line"
echo " 1) Demo - Cycles all themes every prompt"
echo " Preview: (auto-rotate)"
echo " 2) Aurora - Powerline blocks, seasonal palette, two-line"
echo " Preview: [date time user] > [@host /path]"
echo " 2) Neon - Magenta/cyan cyber blocks, high contrast"
echo " 3) Neon - Magenta/cyan cyber blocks, high contrast"
echo " Preview: [user time] > [@host /path]"
echo " 3) Forge - Warm copper blocks, heavy frame"
echo " 4) Forge - Warm copper blocks, heavy frame"
echo " Preview: [date time user] > [@host /path]"
echo " 4) Circuit - Green scanline, minimal rails"
echo " 5) Circuit - Green scanline, minimal rails"
echo " Preview: [user time] - @host /path"
echo " 5) Mono - Clean monochrome, fast read"
echo " 6) Mono - Clean monochrome, fast read"
echo " Preview: [date time user] @host /path"
echo " 6) Git - Minimal with git capsule"
echo " 7) Git - Minimal with git capsule"
echo " Preview: [date time user] @host - /path (git)"
echo " 7) Hawolex - Winter neon, tech icons"
echo " 8) Hawolex - Winter neon, tech icons"
echo " Preview: [date time user] @host - /path"
echo " 8) HawolexV2 - Winter neon gradient"
echo " 9) HawolexV2 - Winter neon gradient"
echo " Preview: [date time user] @host - /path"
read -r -p "Choose style [1]: " style_pick
case "${style_pick}" in
2) style_choice="neon" ;;
3) style_choice="forge" ;;
4) style_choice="circuit" ;;
5) style_choice="mono" ;;
6) style_choice="git" ;;
7) style_choice="hawolex" ;;
8) style_choice="hawolexv2" ;;
""|1) style_choice="aurora" ;;
*) echo "Invalid choice, using aurora."; style_choice="aurora" ;;
2) style_choice="aurora" ;;
3) style_choice="neon" ;;
4) style_choice="forge" ;;
5) style_choice="circuit" ;;
6) style_choice="mono" ;;
7) style_choice="git" ;;
8) style_choice="hawolex" ;;
9) style_choice="hawolexv2" ;;
""|1) style_choice="demo" ;;
*) echo "Invalid choice, using demo."; style_choice="demo" ;;
esac
elif [[ "$style_pack" == "custom" ]]; then

View File

@@ -147,33 +147,36 @@ if [[ -t 0 ]]; then
if [[ "$style_pack" == "contest" ]]; then
echo
echo "Style presets:"
echo " 1) Aurora - Powerline blocks, seasonal palette, two-line"
echo " 1) Demo - Cycles all themes every prompt"
echo " Preview: (auto-rotate)"
echo " 2) Aurora - Powerline blocks, seasonal palette, two-line"
echo " Preview: [date time user] > [@host /path]"
echo " 2) Neon - Magenta/cyan cyber blocks, high contrast"
echo " 3) Neon - Magenta/cyan cyber blocks, high contrast"
echo " Preview: [user time] > [@host /path]"
echo " 3) Forge - Warm copper blocks, heavy frame"
echo " 4) Forge - Warm copper blocks, heavy frame"
echo " Preview: [date time user] > [@host /path]"
echo " 4) Circuit - Green scanline, minimal rails"
echo " 5) Circuit - Green scanline, minimal rails"
echo " Preview: [user time] - @host /path"
echo " 5) Mono - Clean monochrome, fast read"
echo " 6) Mono - Clean monochrome, fast read"
echo " Preview: [date time user] @host /path"
echo " 6) Git - Minimal with git capsule"
echo " 7) Git - Minimal with git capsule"
echo " Preview: [date time user] @host - /path (git)"
echo " 7) Hawolex - Winter neon, tech icons"
echo " 8) Hawolex - Winter neon, tech icons"
echo " Preview: [date time user] @host - /path"
echo " 8) HawolexV2 - Winter neon gradient"
echo " 9) HawolexV2 - Winter neon gradient"
echo " Preview: [date time user] @host - /path"
read -r -p "Choose style [1]: " style_pick
case "${style_pick}" in
2) style_choice="neon" ;;
3) style_choice="forge" ;;
4) style_choice="circuit" ;;
5) style_choice="mono" ;;
6) style_choice="git" ;;
7) style_choice="hawolex" ;;
8) style_choice="hawolexv2" ;;
""|1) style_choice="aurora" ;;
*) echo "Invalid choice, using aurora."; style_choice="aurora" ;;
2) style_choice="aurora" ;;
3) style_choice="neon" ;;
4) style_choice="forge" ;;
5) style_choice="circuit" ;;
6) style_choice="mono" ;;
7) style_choice="git" ;;
8) style_choice="hawolex" ;;
9) style_choice="hawolexv2" ;;
""|1) style_choice="demo" ;;
*) echo "Invalid choice, using demo."; style_choice="demo" ;;
esac
elif [[ "$style_pack" == "custom" ]]; then

View File

@@ -90,7 +90,7 @@ _ps1_season() {
}
# Style selection (aurora/neon/forge/circuit/mono/git/hawolex + custom pack)
# PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex|hawolexv2|radar|synthwave|noir|topo|glitch|arcticfire|acidlime
# PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex|hawolexv2|radar|synthwave|noir|topo|glitch|arcticfire|acidlime|demo
# 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
@@ -211,6 +211,31 @@ _ps1_path_topo() {
printf "%s" "$out"
}
_ps1_demo_next() {
local styles=(
"aurora" "neon" "forge" "circuit" "mono" "git" "hawolex" "hawolexv2"
"aurora" "aurora" "aurora" "aurora" "aurora" "aurora"
"radar" "synthwave" "noir" "topo" "glitch" "arcticfire" "acidlime"
)
local packs=(
"standard" "contest" "contest" "contest" "contest" "contest" "contest" "contest"
"holiday" "holiday" "holiday" "holiday" "holiday" "holiday"
"custom" "custom" "custom" "custom" "custom" "custom" "custom"
)
local holidays=(
"" "" "" "" "" "" "" ""
"christmas" "easter" "halloween" "valentine" "thanksgiving" "newyear"
"" "" "" "" "" "" ""
)
local count=${#styles[@]}
local idx="${PS1_DEMO_INDEX:--1}"
idx=$(( (idx + 1) % count ))
PS1_DEMO_INDEX="$idx"
export PS1_DEMO_INDEX
__PS1_DEMO_STYLE="${styles[$idx]}"
__PS1_DEMO_PACK="${packs[$idx]}"
__PS1_DEMO_HOLIDAY="${holidays[$idx]}"
}
# ---- Load Git prompt helper (best effort) ----
__try_source_git_prompt() {
@@ -947,6 +972,14 @@ _ps1_update() {
__PS1_HOLIDAY="$(_ps1_holiday)"
__PS1_STYLE="$(_ps1_style)"
__PS1_GIT="${PS1_GIT:-0}"
if [[ "$__PS1_STYLE" == "demo" ]]; then
_ps1_demo_next
__PS1_STYLE="$__PS1_DEMO_STYLE"
__PS1_STYLE_PACK="$__PS1_DEMO_PACK"
if [[ "$__PS1_STYLE_PACK" == "holiday" && -n "$__PS1_DEMO_HOLIDAY" ]]; then
__PS1_HOLIDAY="$__PS1_DEMO_HOLIDAY"
fi
fi
__PS1_SYM="$(_ps1_symbol)"
__PS1_PATH="$(_ps1_path)"
if _ps1_has_nf; then __PS1_USE_NF=1; else __PS1_USE_NF=0; fi

View File

@@ -2,6 +2,28 @@
This file lists every prompt theme, color codes, design intent, and configuration options.
## Git Capsule (optional, all themes)
What it is: a compact git status block shown on line 2 when you're inside a git repo.
It uses `__git_ps1` when available, with a safe fallback to `git rev-parse` for the branch.
States + emojis (plain language):
- Clean repo: ✨ no local changes; your files match the last commit
- Dirty working tree: 🔨 you edited tracked files but havent staged them yet
- Staged changes: 📌 changes are staged and ready to commit
- Untracked files: 🧷 new files git hasnt started tracking
- Stashed changes: 📦 work saved with `git stash` (not in your working tree)
How it works:
- The capsule only renders when a repo is detected (no extra noise outside git).
- If `__git_ps1` is available, it reads git state flags and maps them to emojis.
- If not, it falls back to the current branch/short SHA (still useful, but fewer states).
Best practices:
- Keep the capsule on during active work; it surfaces risk at a glance.
- If you want faster prompts in very large repos, leave untracked detection off.
- Use the Git theme for a minimal, work-safe look with the capsule always enabled.
## Seasonal (Aurora, Standard Pack)
Design intent: calm, readable, long-session comfort with a subtle five-step gradient
@@ -204,6 +226,10 @@ PATH_FG=230
FRAME=24
```
Demo:
```
Cycles all themes on each prompt (screenshots mode).
```
## Holidays Pack (style_pack=holiday)