From 23bc59250c32b9f6e764957df7c2d553629fb0e1 Mon Sep 17 00:00:00 2001 From: steffen Date: Sun, 25 Jan 2026 00:36:23 +0000 Subject: [PATCH] Update repo metadata --- .context.json | 542 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 542 insertions(+) create mode 100644 .context.json diff --git a/.context.json b/.context.json new file mode 100644 index 0000000..55be33a --- /dev/null +++ b/.context.json @@ -0,0 +1,542 @@ +{ + "project": { + "name": "ps1-craft", + "purpose": "Global and per-user bash prompt + banner with seasonal palettes and time/season emoji accents.", + "repo_root": "/home/steffen/Bashrc", + "default_branch": "main", + "release_state": "main is production-ready", + "repo_urls": { + "github": "git@github.com:Hawolex/ps1-craft.git", + "gitea": "ssh://git@git.skui.io:2222/steffen/ps1-craft.git" + } + }, + "branches": { + "main": { + "notes": [ + "Shared PS1 module in dotfiles/ps1/ps1.sh is source of truth for both Linux and macOS installers.", + "README documents seasonal ranges and style packs.", + "README example image uses images/bash-pallete.png.", + "GitHub mirror is active at git@github.com:Hawolex/ps1-craft.git." + ] + } + }, + "files": { + "ps1_shared": "dotfiles/ps1/ps1.sh", + "linux_installer": "dotfiles/install/install-linux-global.sh", + "macos_installer": "dotfiles/install/install-macos-user.sh", + "global_installer_wrapper": "dotfiles/install/install-global-ps1.sh", + "readme": "README.md", + "library": "library.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": { + "linux": { + "script": "dotfiles/install/install-linux-global.sh", + "scope": "global (all users)", + "installs": [ + "/etc/profile.d/ps1.sh", + "/etc/profile.d/banner.sh" + ], + "sources_from": "/etc/bash.bashrc", + "prompts": [ + "PS1 only / Banner only / Both", + "PS1 mode: Single season / Dynamic / Contest / Holidays / Custom (if PS1 selected)", + "Season pick (if single season)", + "Layout order selection (seasonal/contest/holidays)", + "Style preset selection (if contest)", + "Holiday selection (if holidays)", + "Custom style selection (if custom)", + "Enable git capsule for all themes (if PS1 selected)" + ], + "season_config_file": "/etc/ps1-season", + "style_config_file": "/etc/ps1-style", + "banner_punchline_file": "/etc/ps1-punchline" + }, + "macos": { + "script": "dotfiles/install/install-macos-user.sh", + "scope": "per-user", + "installs": [ + "~/.config/ps1/ps1.sh" + ], + "sources_from": [ + "~/.bashrc", + "~/.bash_profile" + ], + "prompts": [ + "PS1 mode: Single season / Dynamic / Contest / Holidays / Custom", + "Season pick (if single season)", + "Layout order selection (seasonal/contest/holidays)", + "Style preset selection (if contest)", + "Holiday selection (if holidays)", + "Custom style selection (if custom)", + "Enable git capsule for all themes" + ], + "season_config_file": "~/.config/ps1/season", + "style_config_file": "~/.config/ps1/style" + }, + "global_installer_wrapper": { + "script": "dotfiles/install/install-global-ps1.sh", + "behavior": "Copies shared PS1 module to /etc/profile.d/ps1.sh and updates /etc/bash.bashrc." + } + }, + "season_rules": { + "timezone": "Europe/Oslo", + "dynamic_ranges": { + "spring": "March-May", + "summer": "June-August", + "autumn": "September-mid November (before Nov 15)", + "winter": "mid November-February" + }, + "config": { + "mode_env": "PS1_SEASON_MODE=dynamic|static", + "season_env": "PS1_SEASON=winter|spring|summer|autumn", + "config_file_keys": [ + "PS1_SEASON_MODE", + "PS1_SEASON" + ] + } + }, + "palettes": { + "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": 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": 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": 93, + "Z2_BG": 95, + "Z3_BG": 97, + "Z4_BG": 166, + "Z5_BG": 136, + "Z1_FG": 255, + "Z2_FG": 255, + "PATH_FG": 223, + "FRAME": 95 + } + }, + "styles": { + "default": "aurora", + "available": [ + { + "id": "aurora", + "name": "Aurora", + "description": "Powerline blocks with seasonal palette, two-line calm layout.", + "layout": "two-line, segmented blocks", + "preview": "[date time user] > [@host /path]" + }, + { + "id": "neon", + "name": "Neon", + "description": "Magenta/cyan cyber blocks, high contrast, two-line.", + "layout": "two-line, neon blocks", + "preview": "[user time] > [@host /path]" + }, + { + "id": "forge", + "name": "Forge", + "description": "Warm copper blocks, heavy frame, assertive.", + "layout": "two-line, bold blocks", + "preview": "[date time user] > [@host /path]" + }, + { + "id": "circuit", + "name": "Circuit", + "description": "Green scanline rail, minimal chrome, compact.", + "layout": "two-line, rail style", + "preview": "[user time] - @host /path" + }, + { + "id": "mono", + "name": "Mono", + "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" + }, + { + "id": "hawolexv2", + "name": "HawolexV2", + "description": "Winter neon with multi-segment gradient.", + "layout": "two-line, segmented gradient", + "preview": "[date time user] @host - /path" + }, + { + "id": "radar", + "name": "Radar", + "description": "Green scanline HUD with a clean, low-noise read.", + "layout": "two-line, minimal HUD", + "preview": "[user time] @host /path" + }, + { + "id": "synthwave", + "name": "Synthwave", + "description": "Pink/cyan/orange glow blocks, aggressive contrast.", + "layout": "two-line, three blocks", + "preview": "[date time user] | @host | /path" + }, + { + "id": "noir", + "name": "Noir", + "description": "Near-black minimal with a sharp path accent.", + "layout": "two-line, minimal", + "preview": "[date time user] @host /path" + }, + { + "id": "topo", + "name": "Topo", + "description": "Elevation-style path with multi-tone segments.", + "layout": "two-line, path emphasis", + "preview": "[date time user] @host /path" + }, + { + "id": "glitch", + "name": "Glitch", + "description": "Jitter separators and neon contrast.", + "layout": "two-line, glitch separators", + "preview": "[date time user] ~ @host /path" + }, + { + "id": "arcticfire", + "name": "ArcticFire", + "description": "Icy blues on the left, ember orange on the right.", + "layout": "two-line, three blocks", + "preview": "[date time user] | @host | /path" + }, + { + "id": "acidlime", + "name": "AcidLime", + "description": "Black background with electric green signal.", + "layout": "two-line, minimal", + "preview": "[date time user] @host /path" + } + ], + "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", + "config_file_keys": [ + "PS1_STYLE", + "PS1_STYLE_PACK", + "PS1_CONTEST_LAYOUT", + "PS1_HOLIDAY", + "PS1_GIT" + ] + } + }, + "emoji_rules": { + "fixed_times": { + "lunch": "11:00-11:29 => ๐Ÿฅช", + "dinner": "16:00-16:59 => ๐Ÿฒ" + }, + "rotation": "Daily rotation by day-of-year with season offsets.", + "seasonal_accents": { + "spring": { + "sunrise": [ + "๐ŸŒท", + "๐ŸŒฑ", + "๐Ÿฃ", + "๐ŸŒค" + ], + "coffee": "โ˜•", + "work": [ + "๐ŸŒฟ", + "๐Ÿชด", + "๐Ÿ", + "๐ŸŒผ" + ], + "evening": "๐ŸŒค", + "night": "๐ŸŒ™" + }, + "summer": { + "sunrise": [ + "๐ŸŒž", + "๐Ÿ–๏ธ", + "๐ŸŒ…", + "๐ŸŒค" + ], + "coffee": "๐Ÿงƒ", + "work": [ + "๐Ÿ„", + "๐Ÿ–๏ธ", + "๐Ÿšค", + "๐ŸŒด" + ], + "evening": "๐ŸŒ‡", + "night": "๐ŸŒ™" + }, + "autumn": { + "sunrise": [ + "๐Ÿ", + "๐Ÿ‚", + "๐ŸŒซ๏ธ", + "๐ŸŒฆ๏ธ" + ], + "coffee": "โ˜•", + "work": [ + "๐Ÿ‚", + "๐Ÿ„", + "๐ŸŽƒ", + "๐Ÿชต" + ], + "evening": "๐ŸŒ†", + "night": "๐ŸŒ™" + }, + "winter": { + "sunrise": [ + "๐Ÿ”๏ธ", + "๐ŸŒจ๏ธ", + "โ„๏ธ", + "๐ŸŒŒ" + ], + "coffee": "โ˜•", + "work": [ + "๐ŸŽฟ", + "โ›ท๏ธ", + "๐Ÿ‚", + "๐ŸงŠ" + ], + "evening": "๐ŸŒ†", + "night": "๐ŸŒ™" + } + }, + "contest_accents": { + "sunrise": [ + "โšก๏ธ", + "๐Ÿ›ฐ๏ธ", + "๐Ÿงฌ", + "๐Ÿง " + ], + "work": [ + "๐Ÿ› ๏ธ", + "๐Ÿ’พ", + "๐Ÿงช", + "๐Ÿงฉ" + ], + "coffee": "โ˜•", + "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", + "work": "11:30-15:59", + "evening": "17:00-22:59", + "night": "23:00-04:59" + } + }, + "prompt_structure": { + "zone1": "date time user", + "zone2": "host path", + "seasonal_segments": "date | time | user | host+path (subtle seasonal gradient)", + "line2": "status arrow + emoji", + "emoji_padding": "Two spaces after the emoji before the cursor", + "path_shortening": "Keeps /home/user or /Users/user visible and shortens middle if deep.", + "nerd_font_caps": "Always enabled unless PS1_FORCE_ASCII=1" + }, + "overrides": { + "force_nerd_font": "PS1_FORCE_NF=1", + "force_ascii": "PS1_FORCE_ASCII=1", + "disable_prompt_env": "DISABLE_GLOBAL_PS1=1", + "disable_prompt_file": "~/.config/ps1/disable" + }, + "notes": [ + "On Linux, installer affects all users by writing to /etc/profile.d and sourcing from /etc/bash.bashrc.", + "On macOS, installer is per-user and sources from .bashrc/.bash_profile.", + "Seasonal palettes and contest pack are now documented directly in main.", + "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.", + "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).", + "Library includes emoji usage blocks per theme (sets, fixed times, time slots, rotation)." + ] +}