Compare commits
21 Commits
aa862e7854
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d1ee693044 | |||
| 3fb8b9697a | |||
| 12fc686de1 | |||
| 16a7d8dad9 | |||
| 8079b90e0c | |||
| d944ed83e6 | |||
| 4347690b4a | |||
| af0df324da | |||
| a7c88d772e | |||
| dbe1843415 | |||
| 3a970dde82 | |||
| ecf0ec07bd | |||
| ee8e3dcafb | |||
| 55909294b1 | |||
| bbc4281d50 | |||
| 8c68ce28f7 | |||
| 761a1ae38a | |||
| 98ae44cc3b | |||
| 9774c15d34 | |||
| a6b588ad8a | |||
| 77cbefe2a2 |
@@ -10,14 +10,9 @@
|
|||||||
"main": {
|
"main": {
|
||||||
"notes": [
|
"notes": [
|
||||||
"Shared PS1 module in dotfiles/ps1/ps1.sh is source of truth for both Linux and macOS installers.",
|
"Shared PS1 module in dotfiles/ps1/ps1.sh is source of truth for both Linux and macOS installers.",
|
||||||
"README documents 4seasons branch, seasonal ranges, static/dynamic choice.",
|
"README documents seasonal ranges and style packs.",
|
||||||
"README example image uses images/bash-pallete.png."
|
"README example image uses images/bash-pallete.png."
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"dev": {
|
|
||||||
"notes": [
|
|
||||||
"Development branch; currently in sync with main."
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
@@ -26,7 +21,36 @@
|
|||||||
"macos_installer": "dotfiles/install/install-macos-user.sh",
|
"macos_installer": "dotfiles/install/install-macos-user.sh",
|
||||||
"global_installer_wrapper": "dotfiles/install/install-global-ps1.sh",
|
"global_installer_wrapper": "dotfiles/install/install-global-ps1.sh",
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"palette_image": "images/bash-pallete.png"
|
"library": "libary.md",
|
||||||
|
"palette_image": "images/bash-pallete.png",
|
||||||
|
"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": {
|
"install_behavior": {
|
||||||
"linux": {
|
"linux": {
|
||||||
@@ -41,7 +65,7 @@
|
|||||||
"PS1 only / Banner only / Both",
|
"PS1 only / Banner only / Both",
|
||||||
"PS1 mode: Single season / Dynamic / Contest / Holidays / Custom (if PS1 selected)",
|
"PS1 mode: Single season / Dynamic / Contest / Holidays / Custom (if PS1 selected)",
|
||||||
"Season pick (if single season)",
|
"Season pick (if single season)",
|
||||||
"Contest layout selection (if contest/holidays)",
|
"Layout order selection (seasonal/contest/holidays)",
|
||||||
"Style preset selection (if contest)",
|
"Style preset selection (if contest)",
|
||||||
"Holiday selection (if holidays)",
|
"Holiday selection (if holidays)",
|
||||||
"Custom style selection (if custom)",
|
"Custom style selection (if custom)",
|
||||||
@@ -64,7 +88,7 @@
|
|||||||
"prompts": [
|
"prompts": [
|
||||||
"PS1 mode: Single season / Dynamic / Contest / Holidays / Custom",
|
"PS1 mode: Single season / Dynamic / Contest / Holidays / Custom",
|
||||||
"Season pick (if single season)",
|
"Season pick (if single season)",
|
||||||
"Contest layout selection (if contest/holidays)",
|
"Layout order selection (seasonal/contest/holidays)",
|
||||||
"Style preset selection (if contest)",
|
"Style preset selection (if contest)",
|
||||||
"Holiday selection (if holidays)",
|
"Holiday selection (if holidays)",
|
||||||
"Custom style selection (if custom)",
|
"Custom style selection (if custom)",
|
||||||
@@ -193,6 +217,13 @@
|
|||||||
"layout": "two-line, contest layout",
|
"layout": "two-line, contest layout",
|
||||||
"preview": "[date time user] @host - /path"
|
"preview": "[date time user] @host - /path"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "hawolexv2",
|
||||||
|
"name": "HawolexV2",
|
||||||
|
"description": "Winter neon with multi-segment gradient.",
|
||||||
|
"layout": "two-line, segmented gradient",
|
||||||
|
"preview": "[date time user] @host - /path"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "radar",
|
"id": "radar",
|
||||||
"name": "Radar",
|
"name": "Radar",
|
||||||
@@ -244,7 +275,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"config": {
|
"config": {
|
||||||
"env": "PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex|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; 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": [
|
"config_file_keys": [
|
||||||
"PS1_STYLE",
|
"PS1_STYLE",
|
||||||
"PS1_STYLE_PACK",
|
"PS1_STYLE_PACK",
|
||||||
@@ -500,6 +531,7 @@
|
|||||||
"README uses images/bash-pallete.png.",
|
"README uses images/bash-pallete.png.",
|
||||||
"Git capsule prefers __git_ps1 and falls back to git symbolic-ref/short hash when git-prompt is unavailable or returns empty.",
|
"Git capsule prefers __git_ps1 and falls back to git symbolic-ref/short hash when git-prompt is unavailable or returns empty.",
|
||||||
"Hawolex git capsule enables when PS1_GIT resolves to a truthy value (1/yes/true/on).",
|
"Hawolex git capsule enables when PS1_GIT resolves to a truthy value (1/yes/true/on).",
|
||||||
"Custom pack adds bold styles (radar, synthwave, noir, topo, glitch, arcticfire, acidlime)."
|
"Custom pack adds bold styles (radar, synthwave, noir, topo, glitch, arcticfire, acidlime).",
|
||||||
|
"Library includes emoji usage blocks per theme (sets, fixed times, time slots, rotation)."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.sshinfo.txt
|
||||||
168
README.md
@@ -1,15 +1,30 @@
|
|||||||
# Bashrc Dotfiles — Global & Portable Bash Prompt
|
# Bashrc Dotfiles — Global & Portable Bash Prompt
|
||||||
|
|
||||||
Production-ready on `main`.
|
Elegant, portable, and easy-to-install Bash prompt with seasonal palettes, time-aware emoji, and clean powerline structure.
|
||||||
|
|
||||||
Elegant, portable, and easy-to-install Bash prompt with:
|
---
|
||||||
|
|
||||||
- ✨ Two color zones
|
## ⚡ Quick Look
|
||||||
- 🌅 Time-based emoji accents
|
|
||||||
- 🖥️ Fallback when Nerd Fonts aren’t available
|
- Theme gallery + full specs: [Theme Library](libary.md)
|
||||||
- 📍 Shortened but informative path
|
- Packs: Seasonal (auto), Contest, Holidays, Custom, Git
|
||||||
- 🔘 Status-colored prompt arrow
|
- Layout order option: day-time-user, user-time, time-user, day-time
|
||||||
- 🧠 Works on Linux, WSL, and macOS
|
- Optional git capsule across themes
|
||||||
|
|
||||||
|
## ✅ Requirements (Nerd Fonts)
|
||||||
|
|
||||||
|
This prompt relies on Nerd Font glyphs for the rounded separators.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash dotfiles/install/install-nerdfont.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
After install:
|
||||||
|
|
||||||
|
- Set your terminal font to JetBrainsMono Nerd Font (or any Nerd Font)
|
||||||
|
- Manual download: https://www.nerdfonts.com/font-downloads
|
||||||
|
|
||||||
|
If you use a non‑Nerd font, the prompt falls back to ASCII/Unicode.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -63,20 +78,33 @@ bash dotfiles/install/install-macos-user.sh
|
|||||||
source ~/.bashrc
|
source ~/.bashrc
|
||||||
```
|
```
|
||||||
|
|
||||||
### 🖼️ Nerd Fonts (optional but recommended)
|
<details>
|
||||||
|
<summary><strong>Installer menu (structure)</strong></summary>
|
||||||
|
|
||||||
```bash
|
```text
|
||||||
bash dotfiles/install/install-nerdfont.sh
|
Install options
|
||||||
|
├─ 1) PS1 only
|
||||||
|
├─ 2) Banner only
|
||||||
|
└─ 3) Both (PS1 + banner)
|
||||||
|
└─ PS1 mode
|
||||||
|
├─ 1) Single season (static)
|
||||||
|
│ ├─ Pick season (Winter/Spring/Summer/Autumn)
|
||||||
|
│ └─ Layout order (day-time-user / user-time / time-user / day-time)
|
||||||
|
├─ 2) Dynamic season (auto)
|
||||||
|
│ └─ Layout order (day-time-user / user-time / time-user / day-time)
|
||||||
|
├─ 3) Contest pack (static)
|
||||||
|
│ ├─ Layout order
|
||||||
|
│ └─ Style preset (Aurora/Neon/Forge/Circuit/Mono/Git/Hawolex/HawolexV2)
|
||||||
|
├─ 4) Holidays pack (static)
|
||||||
|
│ ├─ Pick holiday (Christmas/Easter/Halloween/Valentine/Thanksgiving/NewYear)
|
||||||
|
│ └─ Layout order
|
||||||
|
└─ 5) Custom pack (static)
|
||||||
|
└─ Style (Radar/Synthwave/Noir/Topo/Glitch/ArcticFire/AcidLime)
|
||||||
|
|
||||||
|
Final prompt:
|
||||||
|
└─ Enable git capsule for all themes? [y/N]
|
||||||
```
|
```
|
||||||
|
</details>
|
||||||
After install:
|
|
||||||
|
|
||||||
- Open your terminal settings
|
|
||||||
- Set font to JetBrainsMono Nerd Font (or any Nerd Font)
|
|
||||||
- Terminal must use a Nerd Font for glyphs like ``, ``, `` to render correctly
|
|
||||||
- Manual download: https://www.nerdfonts.com/font-downloads
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>Installer choices</strong></summary>
|
<summary><strong>Installer choices</strong></summary>
|
||||||
@@ -86,15 +114,28 @@ Linux/WSL:
|
|||||||
- PS1 only / Banner only / Both
|
- PS1 only / Banner only / Both
|
||||||
- PS1 modes: Single season, Dynamic season, Contest pack, Holidays pack, Custom pack
|
- PS1 modes: Single season, Dynamic season, Contest pack, Holidays pack, Custom pack
|
||||||
- Dynamic season auto-switches by time of year (Spring: Mar–May, Summer: Jun–Aug, Autumn: Sep–Nov 14, Winter: Nov 15–Feb)
|
- Dynamic season auto-switches by time of year (Spring: Mar–May, Summer: Jun–Aug, Autumn: Sep–Nov 14, Winter: Nov 15–Feb)
|
||||||
|
- Layout order (day-time-user, user-time, time-user, day-time) for seasonal and contest modes
|
||||||
|
|
||||||
macOS:
|
macOS:
|
||||||
|
|
||||||
- PS1 modes: Single season, Dynamic season, Contest pack, Holidays pack, Custom pack
|
- PS1 modes: Single season, Dynamic season, Contest pack, Holidays pack, Custom pack
|
||||||
- Dynamic season auto-switches by time of year (same ranges as Linux)
|
- Dynamic season auto-switches by time of year (same ranges as Linux)
|
||||||
|
- Layout order (day-time-user, user-time, time-user, day-time) for seasonal and contest modes
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## ✨ Features
|
||||||
|
|
||||||
|
- Two-line, powerline-style prompt
|
||||||
|
- Seasonal palettes + time-based emoji accents
|
||||||
|
- Smart path shortening (keeps home visible)
|
||||||
|
- Status-colored prompt arrow
|
||||||
|
- Works on Linux, WSL, and macOS
|
||||||
|
- Per-user disable switch
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>What gets installed</strong></summary>
|
<summary><strong>What gets installed</strong></summary>
|
||||||
|
|
||||||
@@ -151,19 +192,6 @@ echo "Your punchline" | sudo tee /etc/ps1-punchline >/dev/null
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🧠 Features
|
|
||||||
|
|
||||||
- **Clean, modern powerline-style prompt**
|
|
||||||
- Zone 1: date/time/user (cool gray-blue)
|
|
||||||
- Zone 2: host/path (turquoise / cool green)
|
|
||||||
- Automatically switches emoji during the day
|
|
||||||
- Smart path shortening (keeps your home dir visible)
|
|
||||||
- Fallback to ASCII/Unicode if Nerd Fonts are not installed
|
|
||||||
- Per-user disable support
|
|
||||||
- Simple per-user or global install
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎛️ Themes & Style Packs
|
## 🎛️ Themes & Style Packs
|
||||||
|
|
||||||
### 🏁 Contest Pack
|
### 🏁 Contest Pack
|
||||||
@@ -223,6 +251,15 @@ Holidays pack uses themed palettes + emojis and the contest layout order:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 🧭 Theme Design Notes
|
||||||
|
|
||||||
|
- **Aurora (seasonal):** calm hierarchy, subtle gradients, long-term readability
|
||||||
|
- **Contest styles:** bold contrast and distinct silhouettes for instant recognition
|
||||||
|
- **Custom pack:** experimental, high-signal variants for strong personal style
|
||||||
|
- **Holidays:** themed colors + emojis without compromising legibility
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>Emoji palette</strong></summary>
|
<summary><strong>Emoji palette</strong></summary>
|
||||||
|
|
||||||
@@ -262,6 +299,7 @@ Meaning:
|
|||||||
├── images/
|
├── images/
|
||||||
│ ├── bash-pallete.png
|
│ ├── bash-pallete.png
|
||||||
│ └── contest.png
|
│ └── contest.png
|
||||||
|
│ └── themes/
|
||||||
├── dotfiles/
|
├── dotfiles/
|
||||||
│ ├── banner/
|
│ ├── banner/
|
||||||
│ │ └── banner.sh
|
│ │ └── banner.sh
|
||||||
@@ -356,16 +394,46 @@ If you see squares or missing glyphs, your terminal is likely using a non-Nerd f
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📸 Seasonal Previews
|
## 📸 Theme Gallery
|
||||||
|
|
||||||
Placeholders for the four seasonal prompts (screenshots will be added here):
|
Seasonal (Aurora):
|
||||||
|
|
||||||
- Winter: `images/season-winter.png` (placeholder)
|

|
||||||
- Spring: `images/season-spring.png` (placeholder)
|

|
||||||
- Summer: `images/season-summer.png` (placeholder)
|

|
||||||
- Autumn: `images/season-autumn.png` (placeholder)
|

|
||||||
|
|
||||||
Current combined palette reference:
|
Contest pack:
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Holidays pack:
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Custom pack:
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Palette reference:
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="images/bash-pallete.png" width="900">
|
<img src="images/bash-pallete.png" width="900">
|
||||||
@@ -373,26 +441,6 @@ Current combined palette reference:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔥 Why this is real high-end PS1 design
|
|
||||||
|
|
||||||
- Semantic color use (identity vs location)
|
|
||||||
- Few colors, but with meaning
|
|
||||||
- Path is visible, but never dominant
|
|
||||||
- Emoji is an accent, not a gimmick
|
|
||||||
- Prompt line is calm → the command gets focus
|
|
||||||
|
|
||||||
### 🎨 Color palette (notes)
|
|
||||||
|
|
||||||
| Role | BG | Description |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| Zone 1 BG | 61 | gray-blue pastel |
|
|
||||||
| Zone 1 FG | 255 | pure white |
|
|
||||||
| Zone 2 BG | 37 | turquoise / cool green |
|
|
||||||
| Path FG | 194 (FG) | light green, muted |
|
|
||||||
| Frame | 60 | darker blue |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🛠️ Contribution
|
## 🛠️ Contribution
|
||||||
|
|
||||||
Want to help improve this project?
|
Want to help improve this project?
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"project": "Bashrc Dotfiles",
|
"project": "Bashrc Dotfiles",
|
||||||
"branch": "dev",
|
"branch": "main",
|
||||||
"purpose": "DEFCON contest + custom render pack for PS1 styles",
|
"purpose": "DEFCON contest + custom render pack for PS1 styles",
|
||||||
"contest_pack": {
|
"contest_pack": {
|
||||||
"layout_options": [
|
"layout_options": [
|
||||||
@@ -33,6 +33,20 @@
|
|||||||
"emoji_padding": 2,
|
"emoji_padding": 2,
|
||||||
"note": "Two spaces after the emoji before the cursor"
|
"note": "Two spaces after the emoji before the cursor"
|
||||||
},
|
},
|
||||||
|
"emoji_rules": {
|
||||||
|
"fixed_times": [
|
||||||
|
"11:00-11:29 => 🥪",
|
||||||
|
"16:00-16:59 => 🍲"
|
||||||
|
],
|
||||||
|
"time_slots": {
|
||||||
|
"sunrise": "05:00-08:59",
|
||||||
|
"coffee": "09:00-10:59",
|
||||||
|
"work": "11:30-15:59",
|
||||||
|
"evening": "17:00-22:59",
|
||||||
|
"night": "23:00-04:59"
|
||||||
|
},
|
||||||
|
"rotation": "Daily rotation by day-of-year with season offsets."
|
||||||
|
},
|
||||||
"holiday_pack": {
|
"holiday_pack": {
|
||||||
"layout_options": [
|
"layout_options": [
|
||||||
"day-time-user",
|
"day-time-user",
|
||||||
@@ -266,6 +280,27 @@
|
|||||||
"frame": 24
|
"frame": 24
|
||||||
},
|
},
|
||||||
"preview": "[date time user] @host - /path"
|
"preview": "[date time user] @host - /path"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hawolexv2",
|
||||||
|
"name": "HawolexV2",
|
||||||
|
"tagline": "Winter neon gradient",
|
||||||
|
"description": "Multi-segment winter neon gradient with stronger separation.",
|
||||||
|
"layout": {
|
||||||
|
"line1": "date time user | @host | /path",
|
||||||
|
"line2": "status arrow + emoji"
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"zone1_bg": 54,
|
||||||
|
"zone2_bg": 55,
|
||||||
|
"zone3_bg": 56,
|
||||||
|
"zone4_bg": 31,
|
||||||
|
"zone5_bg": 30,
|
||||||
|
"zone_fg": 255,
|
||||||
|
"path_fg": 230,
|
||||||
|
"frame": 24
|
||||||
|
},
|
||||||
|
"preview": "[date time user] @host - /path"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "radar",
|
"id": "radar",
|
||||||
|
|||||||
@@ -70,10 +70,38 @@ if [[ -t 0 ]]; then
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
style_pack="standard"
|
style_pack="standard"
|
||||||
|
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
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
season_mode="dynamic"
|
season_mode="dynamic"
|
||||||
style_pack="standard"
|
style_pack="standard"
|
||||||
|
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
|
||||||
;;
|
;;
|
||||||
""|3)
|
""|3)
|
||||||
season_mode="static"
|
season_mode="static"
|
||||||
@@ -157,6 +185,8 @@ if [[ -t 0 ]]; then
|
|||||||
echo " Preview: [date time user] @host - /path (git)"
|
echo " Preview: [date time user] @host - /path (git)"
|
||||||
echo " 7) Hawolex - Winter neon, tech icons"
|
echo " 7) Hawolex - Winter neon, tech icons"
|
||||||
echo " Preview: [date time user] @host - /path"
|
echo " Preview: [date time user] @host - /path"
|
||||||
|
echo " 8) HawolexV2 - Winter neon gradient"
|
||||||
|
echo " Preview: [date time user] @host - /path"
|
||||||
read -r -p "Choose style [1]: " style_pick
|
read -r -p "Choose style [1]: " style_pick
|
||||||
case "${style_pick}" in
|
case "${style_pick}" in
|
||||||
2) style_choice="neon" ;;
|
2) style_choice="neon" ;;
|
||||||
@@ -165,6 +195,7 @@ if [[ -t 0 ]]; then
|
|||||||
5) style_choice="mono" ;;
|
5) style_choice="mono" ;;
|
||||||
6) style_choice="git" ;;
|
6) style_choice="git" ;;
|
||||||
7) style_choice="hawolex" ;;
|
7) style_choice="hawolex" ;;
|
||||||
|
8) style_choice="hawolexv2" ;;
|
||||||
""|1) style_choice="aurora" ;;
|
""|1) style_choice="aurora" ;;
|
||||||
*) echo "Invalid choice, using aurora."; style_choice="aurora" ;;
|
*) echo "Invalid choice, using aurora."; style_choice="aurora" ;;
|
||||||
esac
|
esac
|
||||||
@@ -281,7 +312,7 @@ if [[ "$install_ps1" -eq 1 ]]; then
|
|||||||
{
|
{
|
||||||
printf 'PS1_STYLE=%s\n' "$style_choice"
|
printf 'PS1_STYLE=%s\n' "$style_choice"
|
||||||
printf 'PS1_STYLE_PACK=%s\n' "$style_pack"
|
printf 'PS1_STYLE_PACK=%s\n' "$style_pack"
|
||||||
if [[ "$style_pack" == "contest" || "$style_pack" == "holiday" ]]; then
|
if [[ "$style_pack" == "contest" || "$style_pack" == "holiday" || "$style_pack" == "standard" ]]; then
|
||||||
printf 'PS1_CONTEST_LAYOUT=%s\n' "$contest_layout"
|
printf 'PS1_CONTEST_LAYOUT=%s\n' "$contest_layout"
|
||||||
fi
|
fi
|
||||||
if [[ "$style_pack" == "holiday" ]]; then
|
if [[ "$style_pack" == "holiday" ]]; then
|
||||||
|
|||||||
@@ -45,11 +45,39 @@ if [[ -t 0 ]]; then
|
|||||||
*) echo "Invalid choice, using winter."; season_choice="winter" ;;
|
*) echo "Invalid choice, using winter."; season_choice="winter" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
style_pack="standard"
|
style_pack="standard"
|
||||||
;;
|
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
|
||||||
|
;;
|
||||||
2)
|
2)
|
||||||
season_mode="dynamic"
|
season_mode="dynamic"
|
||||||
style_pack="standard"
|
style_pack="standard"
|
||||||
|
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
|
||||||
;;
|
;;
|
||||||
""|3)
|
""|3)
|
||||||
season_mode="static"
|
season_mode="static"
|
||||||
@@ -133,6 +161,8 @@ if [[ -t 0 ]]; then
|
|||||||
echo " Preview: [date time user] @host - /path (git)"
|
echo " Preview: [date time user] @host - /path (git)"
|
||||||
echo " 7) Hawolex - Winter neon, tech icons"
|
echo " 7) Hawolex - Winter neon, tech icons"
|
||||||
echo " Preview: [date time user] @host - /path"
|
echo " Preview: [date time user] @host - /path"
|
||||||
|
echo " 8) HawolexV2 - Winter neon gradient"
|
||||||
|
echo " Preview: [date time user] @host - /path"
|
||||||
read -r -p "Choose style [1]: " style_pick
|
read -r -p "Choose style [1]: " style_pick
|
||||||
case "${style_pick}" in
|
case "${style_pick}" in
|
||||||
2) style_choice="neon" ;;
|
2) style_choice="neon" ;;
|
||||||
@@ -141,6 +171,7 @@ if [[ -t 0 ]]; then
|
|||||||
5) style_choice="mono" ;;
|
5) style_choice="mono" ;;
|
||||||
6) style_choice="git" ;;
|
6) style_choice="git" ;;
|
||||||
7) style_choice="hawolex" ;;
|
7) style_choice="hawolex" ;;
|
||||||
|
8) style_choice="hawolexv2" ;;
|
||||||
""|1) style_choice="aurora" ;;
|
""|1) style_choice="aurora" ;;
|
||||||
*) echo "Invalid choice, using aurora."; style_choice="aurora" ;;
|
*) echo "Invalid choice, using aurora."; style_choice="aurora" ;;
|
||||||
esac
|
esac
|
||||||
@@ -202,7 +233,7 @@ chmod 0644 "$SEASON_FILE"
|
|||||||
{
|
{
|
||||||
printf 'PS1_STYLE=%s\n' "$style_choice"
|
printf 'PS1_STYLE=%s\n' "$style_choice"
|
||||||
printf 'PS1_STYLE_PACK=%s\n' "$style_pack"
|
printf 'PS1_STYLE_PACK=%s\n' "$style_pack"
|
||||||
if [[ "$style_pack" == "contest" || "$style_pack" == "holiday" ]]; then
|
if [[ "$style_pack" == "contest" || "$style_pack" == "holiday" || "$style_pack" == "standard" ]]; then
|
||||||
printf 'PS1_CONTEST_LAYOUT=%s\n' "$contest_layout"
|
printf 'PS1_CONTEST_LAYOUT=%s\n' "$contest_layout"
|
||||||
fi
|
fi
|
||||||
if [[ "$style_pack" == "holiday" ]]; then
|
if [[ "$style_pack" == "holiday" ]]; then
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ _ps1_season() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Style selection (aurora/neon/forge/circuit/mono/git/hawolex + custom pack)
|
# Style selection (aurora/neon/forge/circuit/mono/git/hawolex + custom pack)
|
||||||
# PS1_STYLE=aurora|neon|forge|circuit|mono|git|hawolex|radar|synthwave|noir|topo|glitch|arcticfire|acidlime
|
# 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_STYLE_PACK=standard|contest|holiday|custom
|
||||||
# PS1_CONTEST_LAYOUT=day-time-user|user-time|time-user|day-time
|
# PS1_CONTEST_LAYOUT=day-time-user|user-time|time-user|day-time
|
||||||
# PS1_HOLIDAY=christmas|easter|halloween|valentine|thanksgiving|newyear
|
# PS1_HOLIDAY=christmas|easter|halloween|valentine|thanksgiving|newyear
|
||||||
@@ -211,6 +211,7 @@ _ps1_path_topo() {
|
|||||||
printf "%s" "$out"
|
printf "%s" "$out"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# ---- Load Git prompt helper (best effort) ----
|
# ---- Load Git prompt helper (best effort) ----
|
||||||
__try_source_git_prompt() {
|
__try_source_git_prompt() {
|
||||||
local candidates=(
|
local candidates=(
|
||||||
@@ -622,14 +623,16 @@ _ps1_set_prompt() {
|
|||||||
local PATH_PART="${__PS1_PATH}"
|
local PATH_PART="${__PS1_PATH}"
|
||||||
local PATH_SEP=" "
|
local PATH_SEP=" "
|
||||||
local END_PAD=" "
|
local END_PAD=" "
|
||||||
if [[ "$__PS1_STYLE_PACK" == "contest" || "$__PS1_STYLE_PACK" == "holiday" ]]; then
|
local layout="${__PS1_CONTEST_LAYOUT:-day-time-user}"
|
||||||
local layout="${__PS1_CONTEST_LAYOUT:-day-time-user}"
|
if [[ "$__PS1_STYLE_PACK" == "contest" || "$__PS1_STYLE_PACK" == "holiday" || "$__PS1_STYLE_PACK" == "standard" ]]; then
|
||||||
case "$layout" in
|
case "$layout" in
|
||||||
user-time) L1="\\u \\A" ;;
|
user-time) L1="\\u \\A" ;;
|
||||||
time-user) L1="\\A \\u" ;;
|
time-user) L1="\\A \\u" ;;
|
||||||
day-time) L1="\\d \\A" ;;
|
day-time) L1="\\d \\A" ;;
|
||||||
*) L1="\\d \\A \\u" ;;
|
*) L1="\\d \\A \\u" ;;
|
||||||
esac
|
esac
|
||||||
|
fi
|
||||||
|
if [[ "$__PS1_STYLE_PACK" == "contest" || "$__PS1_STYLE_PACK" == "holiday" ]]; then
|
||||||
HOST_PART="@\\h - ${__PS1_PATH}"
|
HOST_PART="@\\h - ${__PS1_PATH}"
|
||||||
PATH_PART=""
|
PATH_PART=""
|
||||||
PATH_SEP=""
|
PATH_SEP=""
|
||||||
@@ -748,6 +751,63 @@ ${H_LEFT_FG}${H_LEFT}${RST}${H_Z1_BG}${H_Z1_FG} ${L1} ${RST}${H_Z1_BG}${H_Z2_BG}
|
|||||||
${H_Z2_BG}${H_Z2_FG} ${HOST_PART}${PATH_SEP}${H_PATH_FG}${PATH_PART}${END_PAD}${RST}${H_RIGHT_FG}${H_RIGHT}${RST}\
|
${H_Z2_BG}${H_Z2_FG} ${HOST_PART}${PATH_SEP}${H_PATH_FG}${PATH_PART}${END_PAD}${RST}${H_RIGHT_FG}${H_RIGHT}${RST}\
|
||||||
\n${H_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
\n${H_FRAME}╰── ${RST}${prompt_sym} ${__PS1_SYM}${git_tail}"
|
||||||
;;
|
;;
|
||||||
|
hawolexv2)
|
||||||
|
local HV2_FRAME="\[\e[38;5;24m\]"
|
||||||
|
local HV2_1_BG="\[\e[48;5;54m\]"
|
||||||
|
local HV2_1_FG="\[\e[38;5;255m\]"
|
||||||
|
local HV2_2_BG="\[\e[48;5;55m\]"
|
||||||
|
local HV2_2_FG="\[\e[38;5;255m\]"
|
||||||
|
local HV2_3_BG="\[\e[48;5;56m\]"
|
||||||
|
local HV2_3_FG="\[\e[38;5;255m\]"
|
||||||
|
local HV2_4_BG="\[\e[48;5;31m\]"
|
||||||
|
local HV2_4_FG="\[\e[38;5;255m\]"
|
||||||
|
local HV2_5_BG="\[\e[48;5;30m\]"
|
||||||
|
local HV2_PATH_FG="\[\e[38;5;230m\]"
|
||||||
|
local HV2_LEFT="${left}"
|
||||||
|
local HV2_RIGHT="${right}"
|
||||||
|
local HV2_SEP="${sep}"
|
||||||
|
local HV2_LEFT_FG=""
|
||||||
|
local HV2_RIGHT_FG=""
|
||||||
|
if [[ "$__PS1_USE_NF" -eq 1 ]]; then
|
||||||
|
HV2_LEFT=""
|
||||||
|
HV2_RIGHT=""
|
||||||
|
HV2_SEP=""
|
||||||
|
HV2_LEFT_FG="\[\e[38;5;54m\]"
|
||||||
|
HV2_RIGHT_FG="\[\e[38;5;30m\]"
|
||||||
|
fi
|
||||||
|
local HV2_SEP12="\[\e[38;5;55m\]\[\e[48;5;54m\]${HV2_SEP}${RST}"
|
||||||
|
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}"
|
||||||
|
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} ${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)
|
radar)
|
||||||
local R_FRAME="\[\e[38;5;22m\]"
|
local R_FRAME="\[\e[38;5;22m\]"
|
||||||
local R_MAIN="\[\e[38;5;46m\]"
|
local R_MAIN="\[\e[38;5;46m\]"
|
||||||
|
|||||||
BIN
images/themes/acidlime.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
images/themes/arcticfire.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
images/themes/aurora.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
images/themes/christmas.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
images/themes/circuit.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
images/themes/easter.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
images/themes/forge.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
images/themes/git.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
images/themes/glitch.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
images/themes/halloween.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
images/themes/hawolex.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
images/themes/hawolexv2.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
images/themes/mono.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
images/themes/neon.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
images/themes/newyear.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
images/themes/noir.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
images/themes/radar.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
images/themes/season-autumn.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
images/themes/season-spring.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
images/themes/season-summer.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
images/themes/season-winter.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
images/themes/synthwave.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
images/themes/thanksgiving.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
images/themes/topo.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
images/themes/valentine.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
464
libary.md
Normal file
@@ -0,0 +1,464 @@
|
|||||||
|
# Theme Library
|
||||||
|
|
||||||
|
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 haven’t staged them yet
|
||||||
|
- Staged changes: 📌 changes are staged and ready to commit
|
||||||
|
- Untracked files: 🧷 new files git hasn’t 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
|
||||||
|
(date -> time -> user -> host -> path).
|
||||||
|
|
||||||
|
Layout: two-line powerline, host+path on line 1, status + emoji on line 2.
|
||||||
|
|
||||||
|
Winter:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🏔️ 🌨️ ❄️ 🌌; work 🎿 ⛷️ 🏂 🧊; coffee ☕; evening 🌆; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
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:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🌷 🌱 🐣 🌤; work 🌿 🪴 🐝 🌼; coffee ☕; evening 🌤; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
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:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🌞 🏖️ 🌅 🌤; work 🏄 🏖️ 🚤 🌴; coffee 🧃; evening 🌇; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
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:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🍁 🍂 🌫️ 🌦️; work 🍂 🍄 🎃 🪵; coffee ☕; evening 🌆; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
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):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise ⚡️ 🛰️ 🧬 🧠; work 🛠️ 💾 🧪 🧩; coffee ☕; evening 🎛️; night 🕶️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=24 Z2_BG=31
|
||||||
|
Z1_FG=255 Z2_FG=255
|
||||||
|
PATH_FG=51
|
||||||
|
FRAME=23
|
||||||
|
```
|
||||||
|
|
||||||
|
Neon:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise ⚡️ 🛰️ 🧬 🧠; work 🛠️ 💾 🧪 🧩; coffee ☕; evening 🎛️; night 🕶️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=201 Z1_FG=255
|
||||||
|
Z2_BG=45 Z2_FG=16
|
||||||
|
PATH_FG=16
|
||||||
|
FRAME=199
|
||||||
|
```
|
||||||
|
|
||||||
|
Forge:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise ⚡️ 🛰️ 🧬 🧠; work 🛠️ 💾 🧪 🧩; coffee ☕; evening 🎛️; night 🕶️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=94 Z1_FG=230
|
||||||
|
Z2_BG=166 Z2_FG=231
|
||||||
|
PATH_FG=224
|
||||||
|
FRAME=130
|
||||||
|
```
|
||||||
|
|
||||||
|
Circuit:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise ⚡️ 🛰️ 🧬 🧠; work 🛠️ 💾 🧪 🧩; coffee ☕; evening 🎛️; night 🕶️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
FG_MAIN=46
|
||||||
|
FG_DIM=22
|
||||||
|
PATH_FG=120
|
||||||
|
```
|
||||||
|
|
||||||
|
Mono:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise ⚡️ 🛰️ 🧬 🧠; work 🛠️ 💾 🧪 🧩; coffee ☕; evening 🎛️; night 🕶️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
FG_MAIN=250
|
||||||
|
FG_DIM=240
|
||||||
|
```
|
||||||
|
|
||||||
|
Git:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise ⚡️ 🛰️ 🧬 🧠; work 🛠️ 💾 🧪 🧩; coffee ☕; evening 🎛️; night 🕶️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=61 Z1_FG=255
|
||||||
|
Z2_BG=37 Z2_FG=255
|
||||||
|
PATH_FG=194
|
||||||
|
FRAME=60
|
||||||
|
```
|
||||||
|
|
||||||
|
Hawolex:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 💻 🚗 🔊 🎮; work 🎧 🕹️ 📟 🧩; coffee ☕; evening 🌆; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=54 Z1_FG=255
|
||||||
|
Z2_BG=31 Z2_FG=255
|
||||||
|
PATH_FG=230
|
||||||
|
FRAME=24
|
||||||
|
```
|
||||||
|
|
||||||
|
HawolexV2 (gradient):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise ⚡️ 🛰️ 🧬 🧠; work 🛠️ 💾 🧪 🧩; coffee ☕; evening 🎛️; night 🕶️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
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:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🎄 🎅 ❄️ ⛄; work 🎁 🧤 🧣 🦌; coffee ☕; evening 🌟; night 🕯️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=52 Z2_BG=28
|
||||||
|
Z1_FG=255 Z2_FG=255
|
||||||
|
PATH_FG=194
|
||||||
|
FRAME=88
|
||||||
|
```
|
||||||
|
|
||||||
|
Easter:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🐣 🥚 🌷 🌤; work 🐰 🌼 🧺 🍫; coffee ☕; evening 🌅; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=186 Z2_BG=150
|
||||||
|
Z1_FG=16 Z2_FG=16
|
||||||
|
PATH_FG=94
|
||||||
|
FRAME=143
|
||||||
|
```
|
||||||
|
|
||||||
|
Halloween:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🎃 🦇 🌕 🕸️; work 👻 💀 🕯️ 🧪; coffee ☕; evening 🌆; night 🕷️
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=53 Z2_BG=166
|
||||||
|
Z1_FG=255 Z2_FG=16
|
||||||
|
PATH_FG=16
|
||||||
|
FRAME=89
|
||||||
|
```
|
||||||
|
|
||||||
|
Valentine:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 💖 🌹 💘 💕; work 💌 🍫 🕊️ 💗; coffee ☕; evening 🌆; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=198 Z2_BG=205
|
||||||
|
Z1_FG=255 Z2_FG=255
|
||||||
|
PATH_FG=224
|
||||||
|
FRAME=162
|
||||||
|
```
|
||||||
|
|
||||||
|
Thanksgiving:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🦃 🍁 🥧 🍂; work 🍽️ 🌾 🧺 🥖; coffee ☕; evening 🌆; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=94 Z2_BG=136
|
||||||
|
Z1_FG=230 Z2_FG=231
|
||||||
|
PATH_FG=223
|
||||||
|
FRAME=130
|
||||||
|
```
|
||||||
|
|
||||||
|
NewYear:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: sunrise 🎆 🥂 🎇 ✨; work 🗓️ ⏳ 🚀 ✨; coffee ☕; evening 🌆; night 🌙
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
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:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: seasonal (Spring/Summer/Autumn/Winter sets, same as Seasonal section)
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
FRAME=22
|
||||||
|
FG_MAIN=46
|
||||||
|
FG_DIM=28
|
||||||
|
PATH_FG=120
|
||||||
|
```
|
||||||
|
|
||||||
|
Synthwave:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: seasonal (Spring/Summer/Autumn/Winter sets, same as Seasonal section)
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=198 Z1_FG=255
|
||||||
|
Z2_BG=45 Z2_FG=16
|
||||||
|
Z3_BG=208 Z3_FG=16
|
||||||
|
FRAME=201
|
||||||
|
```
|
||||||
|
|
||||||
|
Noir:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: seasonal (Spring/Summer/Autumn/Winter sets, same as Seasonal section)
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
FG_MAIN=250
|
||||||
|
FG_DIM=242
|
||||||
|
PATH_FG=160
|
||||||
|
FRAME=236
|
||||||
|
```
|
||||||
|
|
||||||
|
Topo:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: seasonal (Spring/Summer/Autumn/Winter sets, same as Seasonal section)
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
PATH_FG_LIST=109,110,111,110
|
||||||
|
FRAME=24
|
||||||
|
```
|
||||||
|
|
||||||
|
Glitch:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: seasonal (Spring/Summer/Autumn/Winter sets, same as Seasonal section)
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
FG_MAIN=118
|
||||||
|
FG_DIM=60
|
||||||
|
FRAME=129
|
||||||
|
```
|
||||||
|
|
||||||
|
ArcticFire:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: seasonal (Spring/Summer/Autumn/Winter sets, same as Seasonal section)
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
Z1_BG=24 Z1_FG=255
|
||||||
|
Z2_BG=31 Z2_FG=255
|
||||||
|
Z3_BG=208 Z3_FG=16
|
||||||
|
FRAME=25
|
||||||
|
```
|
||||||
|
|
||||||
|
AcidLime:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Emoji:
|
||||||
|
- Set: seasonal (Spring/Summer/Autumn/Winter sets, same as Seasonal section)
|
||||||
|
- Fixed times: 🥪 11:00–11:29, 🍲 16:00–16:59
|
||||||
|
- Interval: time slots (Sunrise 05:00–08:59, Coffee 09:00–10:59, Work 11:30–15:59, Evening 17:00–22:59, Night 23:00–04:59), daily rotation
|
||||||
|
|
||||||
|
```
|
||||||
|
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
|
||||||
|
```
|
||||||