Compare commits

..

6 Commits

Author SHA1 Message Date
cc61e6281d Update context after merging dev 2026-01-24 12:10:06 +00:00
db558c76aa Add Git theme details to README 2026-01-24 12:08:23 +00:00
21233b9083 Update git emojis and move Hawolex to contest
- Add git state emojis and branch wrapping

- Move Hawolex to contest styles and update JSONs
2026-01-24 12:01:55 +00:00
059a642ff5 Add Git style and strengthen Hawolex
- Add git preset with repo capsule

- Boost Hawolex palette contrast

- Update context and contest JSONs
2026-01-24 11:49:32 +00:00
808fcc774f Add Hawolex holiday theme
- Add Hawolex palette and emoji set

- Add Hawolex option to holiday prompts
2026-01-24 11:34:34 +00:00
a462aa81f9 Add holidays pack
- Add holiday themes, palettes, and emojis

- Add holidays option and layout selection in installers

- Update context JSONs for holiday pack
2026-01-24 11:29:09 +00:00
6 changed files with 597 additions and 36 deletions

View File

@@ -15,7 +15,7 @@
},
"dev": {
"notes": [
"Development branch; keep in sync with main unless actively changing."
"Development branch; currently in sync with main."
]
}
},
@@ -38,10 +38,11 @@
"sources_from": "/etc/bash.bashrc",
"prompts": [
"PS1 only / Banner only / Both",
"PS1 mode: Single season / Dynamic / Contest (if PS1 selected)",
"PS1 mode: Single season / Dynamic / Contest / Holidays (if PS1 selected)",
"Season pick (if single season)",
"Contest layout selection (if contest)",
"Style preset selection (if contest)"
"Contest layout selection (if contest/holidays)",
"Style preset selection (if contest)",
"Holiday selection (if holidays)"
],
"season_config_file": "/etc/ps1-season",
"style_config_file": "/etc/ps1-style",
@@ -58,10 +59,11 @@
"~/.bash_profile"
],
"prompts": [
"PS1 mode: Single season / Dynamic / Contest",
"PS1 mode: Single season / Dynamic / Contest / Holidays",
"Season pick (if single season)",
"Contest layout selection (if contest)",
"Style preset selection (if contest)"
"Contest layout selection (if contest/holidays)",
"Style preset selection (if contest)",
"Holiday selection (if holidays)"
],
"season_config_file": "~/.config/ps1/season",
"style_config_file": "~/.config/ps1/style"
@@ -159,14 +161,29 @@
"description": "Clean monochrome, fast read, low noise.",
"layout": "two-line, minimal",
"preview": "[date time user] @host /path"
},
{
"id": "git",
"name": "Git",
"description": "Minimal blocks with git capsule when in repo.",
"layout": "two-line, git capsule on line 2",
"preview": "[date time user] @host - /path (git)"
},
{
"id": "hawolex",
"name": "Hawolex",
"description": "Winter neon with tech icons, contest layout.",
"layout": "two-line, contest layout",
"preview": "[date time user] @host - /path"
}
],
"config": {
"env": "PS1_STYLE=aurora|neon|forge|circuit|mono; PS1_STYLE_PACK=standard|contest; PS1_CONTEST_LAYOUT=day-time-user|user-time|time-user|day-time",
"env": "PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex; PS1_STYLE_PACK=standard|contest|holiday; PS1_CONTEST_LAYOUT=day-time-user|user-time|time-user|day-time; PS1_HOLIDAY=christmas|easter|halloween|valentine|thanksgiving|newyear",
"config_file_keys": [
"PS1_STYLE",
"PS1_STYLE_PACK",
"PS1_CONTEST_LAYOUT"
"PS1_CONTEST_LAYOUT",
"PS1_HOLIDAY"
]
}
},
@@ -263,6 +280,129 @@
"evening": "🎛️",
"night": "🕶️"
},
"holiday_accents": {
"christmas": {
"sunrise": [
"🎄",
"🎅",
"❄️",
"⛄"
],
"work": [
"🎁",
"🧤",
"🧣",
"🦌"
],
"coffee": "☕",
"evening": "🌟",
"night": "🕯️"
},
"easter": {
"sunrise": [
"🐣",
"🥚",
"🌷",
"🌤"
],
"work": [
"🐰",
"🌼",
"🧺",
"🍫"
],
"coffee": "☕",
"evening": "🌅",
"night": "🌙"
},
"halloween": {
"sunrise": [
"🎃",
"🦇",
"🌕",
"🕸️"
],
"work": [
"👻",
"💀",
"🕯️",
"🧪"
],
"coffee": "☕",
"evening": "🌆",
"night": "🕷️"
},
"valentine": {
"sunrise": [
"💖",
"🌹",
"💘",
"💕"
],
"work": [
"💌",
"🍫",
"🕊️",
"💗"
],
"coffee": "☕",
"evening": "🌆",
"night": "🌙"
},
"thanksgiving": {
"sunrise": [
"🦃",
"🍁",
"🥧",
"🍂"
],
"work": [
"🍽️",
"🌾",
"🧺",
"🥖"
],
"coffee": "☕",
"evening": "🌆",
"night": "🌙"
},
"newyear": {
"sunrise": [
"🎆",
"🥂",
"🎇",
"✨"
],
"work": [
"🗓️",
"⏳",
"🚀",
"✨"
],
"coffee": "☕",
"evening": "🌆",
"night": "🌙"
}
},
"style_accents": {
"hawolex": {
"sunrise": [
"💻",
"🚗",
"🔊",
"🎮"
],
"work": [
"🎧",
"🕹️",
"📟",
"🧩"
],
"coffee": "☕",
"evening": "🌆",
"night": "🌙"
}
},
"time_slots": {
"sunrise": "05:00-08:59",
"coffee": "09:00-10:59",

View File

@@ -172,6 +172,22 @@ Note: This repo was built with AI assistance, and the contest pack itself is ful
---
<details>
<summary><strong>Git Theme (details)</strong></summary>
The Git theme adds a repo-aware capsule on line 2 that only appears inside a Git repo. The branch name is wrapped as `⟦branch⟧`, and status emojis reflect state:
- Clean: ✨
- Dirty: 🔨
- Staged: 📌
- Untracked: 🧷
- Stashed: 📦
It uses the same two-block layout as Aurora, but focuses on signal and minimal noise for fast scanning.
</details>
---
## 😀 Emoji palette
Fixed times (all seasons):

View File

@@ -29,6 +29,78 @@
"night": "🕶️"
}
},
"holiday_pack": {
"layout_options": [
"day-time-user",
"user-time",
"time-user",
"day-time"
],
"host_path_format": "@host - /path",
"prefix_newline": true,
"themes": {
"christmas": {
"palette": { "Z1_BG": 52, "Z1_FG": 255, "Z2_BG": 28, "Z2_FG": 255, "PATH_FG": 194, "FRAME": 88 },
"emoji_set": {
"sunrise": [ "🎄", "🎅", "❄️", "⛄" ],
"work": [ "🎁", "🧤", "🧣", "🦌" ],
"coffee": "☕",
"evening": "🌟",
"night": "🕯️"
}
},
"easter": {
"palette": { "Z1_BG": 186, "Z1_FG": 16, "Z2_BG": 150, "Z2_FG": 16, "PATH_FG": 94, "FRAME": 143 },
"emoji_set": {
"sunrise": [ "🐣", "🥚", "🌷", "🌤" ],
"work": [ "🐰", "🌼", "🧺", "🍫" ],
"coffee": "☕",
"evening": "🌅",
"night": "🌙"
}
},
"halloween": {
"palette": { "Z1_BG": 53, "Z1_FG": 255, "Z2_BG": 166, "Z2_FG": 16, "PATH_FG": 16, "FRAME": 89 },
"emoji_set": {
"sunrise": [ "🎃", "🦇", "🌕", "🕸️" ],
"work": [ "👻", "💀", "🕯️", "🧪" ],
"coffee": "☕",
"evening": "🌆",
"night": "🕷️"
}
},
"valentine": {
"palette": { "Z1_BG": 198, "Z1_FG": 255, "Z2_BG": 205, "Z2_FG": 255, "PATH_FG": 224, "FRAME": 162 },
"emoji_set": {
"sunrise": [ "💖", "🌹", "💘", "💕" ],
"work": [ "💌", "🍫", "🕊️", "💗" ],
"coffee": "☕",
"evening": "🌆",
"night": "🌙"
}
},
"thanksgiving": {
"palette": { "Z1_BG": 94, "Z1_FG": 230, "Z2_BG": 136, "Z2_FG": 231, "PATH_FG": 223, "FRAME": 130 },
"emoji_set": {
"sunrise": [ "🦃", "🍁", "🥧", "🍂" ],
"work": [ "🍽️", "🌾", "🧺", "🥖" ],
"coffee": "☕",
"evening": "🌆",
"night": "🌙"
}
},
"newyear": {
"palette": { "Z1_BG": 17, "Z1_FG": 255, "Z2_BG": 20, "Z2_FG": 255, "PATH_FG": 229, "FRAME": 19 },
"emoji_set": {
"sunrise": [ "🎆", "🥂", "🎇", "✨" ],
"work": [ "🗓️", "⏳", "🚀", "✨" ],
"coffee": "☕",
"evening": "🌆",
"night": "🌙"
}
}
}
},
"styles": [
{
"id": "aurora",
@@ -113,6 +185,44 @@
"fg_dim": 240
},
"preview": "[date time user] @host /path"
},
{
"id": "git",
"name": "Git",
"tagline": "Repo-aware minimalism",
"description": "Minimal blocks with git capsule on line 2.",
"layout": {
"line1": "date time user | @host - /path",
"line2": "status arrow + emoji + git"
},
"colors": {
"zone1_bg": 61,
"zone1_fg": 255,
"zone2_bg": 37,
"zone2_fg": 255,
"path_fg": 194,
"frame": 60
},
"preview": "[date time user] @host - /path (git)"
},
{
"id": "hawolex",
"name": "Hawolex",
"tagline": "Winter neon, tech icons",
"description": "Contest layout with winter-strong palette and tech emojis.",
"layout": {
"line1": "date time user | @host - /path",
"line2": "status arrow + emoji"
},
"colors": {
"zone1_bg": 54,
"zone1_fg": 255,
"zone2_bg": 31,
"zone2_fg": 255,
"path_fg": 230,
"frame": 24
},
"preview": "[date time user] @host - /path"
}
],
"seasonal_palettes": {

View File

@@ -28,6 +28,7 @@ season_choice=""
style_choice="aurora"
style_pack="standard"
contest_layout="day-time-user"
holiday_choice="christmas"
if [[ -t 0 ]]; then
echo "Install options:"
echo " 1) PS1 only"
@@ -43,13 +44,14 @@ if [[ -t 0 ]]; then
if [[ "$install_ps1" -eq 1 ]]; then
echo
echo "PS1 mode:"
echo " 1) Single season (static)"
echo " 2) Dynamic season (changing)"
echo " 3) Contest pack (static)"
read -r -p "Choose [3]: " season_mode_choice
case "${season_mode_choice}" in
1)
echo "PS1 mode:"
echo " 1) Single season (static)"
echo " 2) Dynamic season (changing)"
echo " 3) Contest pack (static)"
echo " 4) Holidays pack (static)"
read -r -p "Choose [3]: " season_mode_choice
case "${season_mode_choice}" in
1)
season_mode="static"
echo "Pick a season:"
echo " 1) Winter"
@@ -67,14 +69,14 @@ if [[ -t 0 ]]; then
style_pack="standard"
;;
2)
season_mode="dynamic"
style_pack="standard"
;;
""|3)
season_mode="static"
style_pack="contest"
contest_layout="day-time-user"
2)
season_mode="dynamic"
style_pack="standard"
;;
""|3)
season_mode="static"
style_pack="contest"
contest_layout="day-time-user"
echo "Contest layout order:"
echo " 1) day-time-user"
echo " 2) user-time"
@@ -88,11 +90,47 @@ if [[ -t 0 ]]; then
""|1) contest_layout="day-time-user" ;;
*) echo "Invalid choice, using day-time-user."; contest_layout="day-time-user" ;;
esac
;;
*)
echo "Invalid choice, using dynamic."
season_mode="dynamic"
style_pack="standard"
;;
4)
season_mode="dynamic"
style_pack="holiday"
echo "Holiday theme:"
echo " 1) Christmas"
echo " 2) Easter"
echo " 3) Halloween"
echo " 4) Valentine"
echo " 5) Thanksgiving"
echo " 6) New Year"
read -r -p "Choose [1]: " holiday_pick
case "${holiday_pick}" in
2) holiday_choice="easter" ;;
3) holiday_choice="halloween" ;;
4) holiday_choice="valentine" ;;
5) holiday_choice="thanksgiving" ;;
6) holiday_choice="newyear" ;;
""|1) holiday_choice="christmas" ;;
*) echo "Invalid choice, using christmas."; holiday_choice="christmas" ;;
esac
contest_layout="day-time-user"
echo "Layout order:"
echo " 1) day-time-user"
echo " 2) user-time"
echo " 3) time-user"
echo " 4) day-time"
read -r -p "Choose [1]: " layout_pick
case "${layout_pick}" in
2) contest_layout="user-time" ;;
3) contest_layout="time-user" ;;
4) contest_layout="day-time" ;;
""|1) contest_layout="day-time-user" ;;
*) echo "Invalid choice, using day-time-user."; contest_layout="day-time-user" ;;
esac
;;
*)
echo "Invalid choice, using dynamic."
season_mode="dynamic"
style_pack="standard"
;;
esac
@@ -109,12 +147,18 @@ if [[ -t 0 ]]; then
echo " Preview: [user time] - @host /path"
echo " 5) Mono - Clean monochrome, fast read"
echo " Preview: [date time user] @host /path"
echo " 6) Git - Minimal with git capsule"
echo " Preview: [date time user] @host - /path (git)"
echo " 7) Hawolex - Winter neon, tech icons"
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" ;;
""|1) style_choice="aurora" ;;
*) echo "Invalid choice, using aurora."; style_choice="aurora" ;;
esac
@@ -193,9 +237,12 @@ if [[ "$install_ps1" -eq 1 ]]; then
{
printf 'PS1_STYLE=%s\n' "$style_choice"
printf 'PS1_STYLE_PACK=%s\n' "$style_pack"
if [[ "$style_pack" == "contest" ]]; then
if [[ "$style_pack" == "contest" || "$style_pack" == "holiday" ]]; then
printf 'PS1_CONTEST_LAYOUT=%s\n' "$contest_layout"
fi
if [[ "$style_pack" == "holiday" ]]; then
printf 'PS1_HOLIDAY=%s\n' "${holiday_choice:-christmas}"
fi
} > /etc/ps1-style
chmod 0644 /etc/ps1-style
else

View File

@@ -17,12 +17,14 @@ season_mode="dynamic"
season_choice=""
style_choice="aurora"
contest_layout="day-time-user"
holiday_choice="christmas"
if [[ -t 0 ]]; then
style_pack="standard"
echo "PS1 mode:"
echo " 1) Single season (static)"
echo " 2) Dynamic season (changing)"
echo " 3) Contest pack (static)"
echo " 4) Holidays pack (static)"
read -r -p "Choose [3]: " season_mode_choice
case "${season_mode_choice}" in
1)
@@ -65,6 +67,42 @@ if [[ -t 0 ]]; then
*) echo "Invalid choice, using day-time-user."; contest_layout="day-time-user" ;;
esac
;;
4)
season_mode="dynamic"
style_pack="holiday"
echo "Holiday theme:"
echo " 1) Christmas"
echo " 2) Easter"
echo " 3) Halloween"
echo " 4) Valentine"
echo " 5) Thanksgiving"
echo " 6) New Year"
read -r -p "Choose [1]: " holiday_pick
case "${holiday_pick}" in
2) holiday_choice="easter" ;;
3) holiday_choice="halloween" ;;
4) holiday_choice="valentine" ;;
5) holiday_choice="thanksgiving" ;;
6) holiday_choice="newyear" ;;
""|1) holiday_choice="christmas" ;;
*) echo "Invalid choice, using christmas."; holiday_choice="christmas" ;;
esac
contest_layout="day-time-user"
echo "Layout order:"
echo " 1) day-time-user"
echo " 2) user-time"
echo " 3) time-user"
echo " 4) day-time"
read -r -p "Choose [1]: " layout_pick
case "${layout_pick}" in
2) contest_layout="user-time" ;;
3) contest_layout="time-user" ;;
4) contest_layout="day-time" ;;
""|1) contest_layout="day-time-user" ;;
*) echo "Invalid choice, using day-time-user."; contest_layout="day-time-user" ;;
esac
;;
*)
echo "Invalid choice, using dynamic."
season_mode="dynamic"
@@ -85,12 +123,18 @@ if [[ -t 0 ]]; then
echo " Preview: [user time] - @host /path"
echo " 5) Mono - Clean monochrome, fast read"
echo " Preview: [date time user] @host /path"
echo " 6) Git - Minimal with git capsule"
echo " Preview: [date time user] @host - /path (git)"
echo " 7) Hawolex - Winter neon, tech icons"
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" ;;
""|1) style_choice="aurora" ;;
*) echo "Invalid choice, using aurora."; style_choice="aurora" ;;
esac
@@ -114,9 +158,12 @@ chmod 0644 "$SEASON_FILE"
{
printf 'PS1_STYLE=%s\n' "$style_choice"
printf 'PS1_STYLE_PACK=%s\n' "$style_pack"
if [[ "$style_pack" == "contest" ]]; then
if [[ "$style_pack" == "contest" || "$style_pack" == "holiday" ]]; then
printf 'PS1_CONTEST_LAYOUT=%s\n' "$contest_layout"
fi
if [[ "$style_pack" == "holiday" ]]; then
printf 'PS1_HOLIDAY=%s\n' "${holiday_choice:-christmas}"
fi
} > "$STYLE_FILE"
chmod 0644 "$STYLE_FILE"

View File

@@ -89,10 +89,11 @@ _ps1_season() {
fi
}
# Style selection (aurora/neon/forge/circuit/mono)
# PS1_STYLE=aurora|neon|forge|circuit|mono
# PS1_STYLE_PACK=standard|contest
# Style selection (aurora/neon/forge/circuit/mono/git/hawolex)
# PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex
# PS1_STYLE_PACK=standard|contest|holiday
# PS1_CONTEST_LAYOUT=day-time-user|user-time|time-user|day-time
# PS1_HOLIDAY=christmas|easter|halloween|valentine|thanksgiving|newyear
# Also reads config from /etc/ps1-style or ~/.config/ps1/style
_ps1_style_config() {
local cfg=""
@@ -110,6 +111,7 @@ _ps1_style_config() {
PS1_STYLE) export PS1_STYLE="$v" ;;
PS1_STYLE_PACK) export PS1_STYLE_PACK="$v" ;;
PS1_CONTEST_LAYOUT) export PS1_CONTEST_LAYOUT="$v" ;;
PS1_HOLIDAY) export PS1_HOLIDAY="$v" ;;
esac
done < "$cfg"
fi
@@ -133,6 +135,62 @@ _ps1_contest_layout() {
echo "$layout"
}
_ps1_holiday() {
_ps1_style_config
local holiday="${PS1_HOLIDAY:-christmas}"
echo "$holiday"
}
# ---- Load Git prompt helper (best effort) ----
__try_source_git_prompt() {
local candidates=(
"/usr/share/git/completion/git-prompt.sh"
"/usr/local/etc/bash_completion.d/git-prompt.sh"
"/etc/bash_completion.d/git-prompt.sh"
)
for f in "${candidates[@]}"; do
[[ -r "$f" ]] && source "$f" && return 0
done
return 1
}
__try_source_git_prompt >/dev/null 2>&1
__git_capsule() {
if ! declare -F __git_ps1 >/dev/null 2>&1; then
return 0
fi
local info status=""
local clean="✨"
local dirty="🔨"
local staged="📌"
local untracked="🧷"
local stashed="📦"
info="$(__git_ps1 "%s" 2>/dev/null)"
[[ -z "$info" ]] && return 0
if [[ "$info" == *"*"* ]]; then status+=" $dirty"; fi
if [[ "$info" == *"+"* ]]; then status+=" $staged"; fi
if [[ "$info" == *"%"* ]]; then status+=" $untracked"; fi
if [[ "$info" == *"$"* ]]; then status+=" $stashed"; fi
if [[ -z "$status" ]]; then status=" $clean"; fi
info="${info//\%/}"
info="${info//\*/}"
info="${info//\+/}"
info="${info//\$/}"
info="$(printf "%s" "$info" | xargs)"
printf " ⟦%s⟧%s" "$info" "$status"
}
__git_capsule() {
if declare -F __git_ps1 >/dev/null 2>&1; then
__git_ps1 " (%s)" 2>/dev/null
fi
}
# Time-based emoji with seasonal accents (Europe/Oslo)
_ps1_pick_icon() {
local list_name="$1"
@@ -147,6 +205,13 @@ _ps1_pick_icon() {
spring) offset=11 ;;
summer) offset=23 ;;
autumn) offset=37 ;;
christmas) offset=61 ;;
easter) offset=73 ;;
halloween) offset=97 ;;
valentine) offset=109 ;;
thanksgiving) offset=131 ;;
newyear) offset=151 ;;
hawolex) offset=173 ;;
*) offset=0 ;;
esac
@@ -167,15 +232,60 @@ _ps1_symbol() {
local season="${__PS1_SEASON:-winter}"
local pack="${__PS1_STYLE_PACK:-standard}"
local holiday="${__PS1_HOLIDAY:-christmas}"
local rot_season="${season}"
local sunrise coffee work evening night
local -a sunrise_list work_list
if [[ "$pack" == "contest" ]]; then
if [[ "$__PS1_STYLE" == "hawolex" ]]; then
rot_season="hawolex"
sunrise_list=( "💻" "🚗" "🔊" "🎮" )
work_list=( "🎧" "🕹️" "📟" "🧩" )
coffee="☕"; evening="🌆"; night="🌙"
elif [[ "$pack" == "contest" ]]; then
rot_season="winter"
sunrise_list=( "⚡️" "🛰️" "🧬" "🧠" )
work_list=( "🛠️" "💾" "🧪" "🧩" )
coffee="☕"; evening="🎛️"; night="🕶️"
elif [[ "$pack" == "holiday" ]]; then
rot_season="$holiday"
case "$holiday" in
christmas)
sunrise_list=( "🎄" "🎅" "❄️" "⛄" )
work_list=( "🎁" "🧤" "🧣" "🦌" )
coffee="☕"; evening="🌟"; night="🕯️"
;;
easter)
sunrise_list=( "🐣" "🥚" "🌷" "🌤" )
work_list=( "🐰" "🌼" "🧺" "🍫" )
coffee="☕"; evening="🌅"; night="🌙"
;;
halloween)
sunrise_list=( "🎃" "🦇" "🌕" "🕸️" )
work_list=( "👻" "💀" "🕯️" "🧪" )
coffee="☕"; evening="🌆"; night="🕷️"
;;
valentine)
sunrise_list=( "💖" "🌹" "💘" "💕" )
work_list=( "💌" "🍫" "🕊️" "💗" )
coffee="☕"; evening="🌆"; night="🌙"
;;
thanksgiving)
sunrise_list=( "🦃" "🍁" "🥧" "🍂" )
work_list=( "🍽️" "🌾" "🧺" "🥖" )
coffee="☕"; evening="🌆"; night="🌙"
;;
newyear)
sunrise_list=( "🎆" "🥂" "🎇" "✨" )
work_list=( "🗓️" "⏳" "🚀" "✨" )
coffee="☕"; evening="🌆"; night="🌙"
;;
*)
sunrise_list=( "🎉" "✨" "🎊" "🌟" )
work_list=( "🧩" "🛠️" "💾" "🧪" )
coffee="☕"; evening="🌆"; night="🌙"
;;
esac
else
case "$season" in
spring)
@@ -238,6 +348,7 @@ __PS1_SEASON="winter"
__PS1_STYLE="aurora"
__PS1_STYLE_PACK="standard"
__PS1_CONTEST_LAYOUT="day-time-user"
__PS1_HOLIDAY="christmas"
_ps1_set_prompt() {
local RST="\[\e[0m\]"
@@ -251,6 +362,65 @@ _ps1_set_prompt() {
Z2_FG="\[\e[38;5;255m\]"
PATH_FG="\[\e[38;5;51m\]"
FRAME="\[\e[38;5;23m\]"
elif [[ "$__PS1_STYLE_PACK" == "holiday" ]]; then
case "$__PS1_HOLIDAY" in
christmas)
Z1_BG="\[\e[48;5;52m\]"
Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;28m\]"
Z2_FG="\[\e[38;5;255m\]"
PATH_FG="\[\e[38;5;194m\]"
FRAME="\[\e[38;5;88m\]"
;;
easter)
Z1_BG="\[\e[48;5;186m\]"
Z1_FG="\[\e[38;5;16m\]"
Z2_BG="\[\e[48;5;150m\]"
Z2_FG="\[\e[38;5;16m\]"
PATH_FG="\[\e[38;5;94m\]"
FRAME="\[\e[38;5;143m\]"
;;
halloween)
Z1_BG="\[\e[48;5;53m\]"
Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;166m\]"
Z2_FG="\[\e[38;5;16m\]"
PATH_FG="\[\e[38;5;16m\]"
FRAME="\[\e[38;5;89m\]"
;;
valentine)
Z1_BG="\[\e[48;5;198m\]"
Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;205m\]"
Z2_FG="\[\e[38;5;255m\]"
PATH_FG="\[\e[38;5;224m\]"
FRAME="\[\e[38;5;162m\]"
;;
thanksgiving)
Z1_BG="\[\e[48;5;94m\]"
Z1_FG="\[\e[38;5;230m\]"
Z2_BG="\[\e[48;5;136m\]"
Z2_FG="\[\e[38;5;231m\]"
PATH_FG="\[\e[38;5;223m\]"
FRAME="\[\e[38;5;130m\]"
;;
newyear)
Z1_BG="\[\e[48;5;17m\]"
Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;20m\]"
Z2_FG="\[\e[38;5;255m\]"
PATH_FG="\[\e[38;5;229m\]"
FRAME="\[\e[38;5;19m\]"
;;
*)
Z1_BG="\[\e[48;5;24m\]"
Z1_FG="\[\e[38;5;255m\]"
Z2_BG="\[\e[48;5;31m\]"
Z2_FG="\[\e[38;5;255m\]"
PATH_FG="\[\e[38;5;51m\]"
FRAME="\[\e[38;5;23m\]"
;;
esac
else
case "$__PS1_SEASON" in
spring)
@@ -316,7 +486,7 @@ _ps1_set_prompt() {
local HOST_PART="${L_HOST}"
local PATH_PART="${__PS1_PATH}"
local PATH_SEP=" "
if [[ "$__PS1_STYLE_PACK" == "contest" ]]; then
if [[ "$__PS1_STYLE_PACK" == "contest" || "$__PS1_STYLE_PACK" == "holiday" ]]; then
local layout="${__PS1_CONTEST_LAYOUT:-day-time-user}"
case "$layout" in
user-time) L1="\\u \\A" ;;
@@ -373,6 +543,36 @@ ${C_DIM}━${RST}${C_FG}${HOST_PART}${RST}${PATH_SEP}${C_PATH}${PATH_PART}${RST}
${PREFIX}${M_FG}${L1}${M_DIM}${HOST_PART}${PATH_SEP}${M_FG}${PATH_PART}${RST}\
\n${M_DIM}└─${RST}${prompt_sym} ${__PS1_SYM} "
;;
git)
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWSTASHSTATE=1
export GIT_PS1_SHOWUNTRACKEDFILES=1
local G_FRAME="\[\e[38;5;60m\]"
local G_Z1_BG="\[\e[48;5;61m\]"
local G_Z1_FG="\[\e[38;5;255m\]"
local G_Z2_BG="\[\e[48;5;37m\]"
local G_Z2_FG="\[\e[38;5;255m\]"
local G_PATH_FG="\[\e[38;5;194m\]"
local GIT_INFO="$(__git_capsule)"
PS1="\
${PREFIX}${G_FRAME}╭─${RST}\
${G_Z1_BG}${G_Z1_FG}${left} ${L1} ${RST}${G_Z1_BG}${G_Z2_BG}${G_Z2_FG}${sep}${RST}\
${G_Z2_BG}${G_Z2_FG} ${HOST_PART}${PATH_SEP}${G_PATH_FG}${PATH_PART} ${RST}${G_Z2_BG}${G_Z2_FG}${right}${RST}\
\n${G_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${GIT_INFO} "
;;
hawolex)
local H_FRAME="\[\e[38;5;24m\]"
local H_Z1_BG="\[\e[48;5;54m\]"
local H_Z1_FG="\[\e[38;5;255m\]"
local H_Z2_BG="\[\e[48;5;31m\]"
local H_Z2_FG="\[\e[38;5;255m\]"
local H_PATH_FG="\[\e[38;5;230m\]"
PS1="\
${PREFIX}${H_FRAME}╭─${RST}\
${H_Z1_BG}${H_Z1_FG}${left} ${L1} ${RST}${H_Z1_BG}${H_Z2_BG}${H_Z2_FG}${sep}${RST}\
${H_Z2_BG}${H_Z2_FG} ${HOST_PART}${PATH_SEP}${H_PATH_FG}${PATH_PART} ${RST}${H_Z2_BG}${H_Z2_FG}${right}${RST}\
\n${H_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM} "
;;
*)
# aurora (default)
PS1="\
@@ -389,6 +589,7 @@ _ps1_update() {
__PS1_SEASON="$(_ps1_season)"
__PS1_STYLE_PACK="$(_ps1_style_pack)"
__PS1_CONTEST_LAYOUT="$(_ps1_contest_layout)"
__PS1_HOLIDAY="$(_ps1_holiday)"
__PS1_STYLE="$(_ps1_style)"
__PS1_SYM="$(_ps1_symbol)"
__PS1_PATH="$(_ps1_path)"