{ "project": { "name": "Bashrc Dotfiles", "purpose": "Global and per-user bash prompt + banner with seasonal palettes and time/season emoji accents.", "repo_root": "/home/steffen/Bashrc", "default_branch": "main" }, "branches": { "main": { "notes": [ "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 example image uses images/bash-pallete.png." ] }, "dev": { "notes": [ "Development branch; keep in sync with main unless actively changing." ] } }, "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", "palette_image": "images/bash-pallete.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 (if PS1 selected)", "Season pick (if single season)", "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", "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", "Season pick (if single season)", "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" }, "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": 61, "Z1_FG": 255, "Z2_BG": 37, "Z2_FG": 255, "PATH_FG": 194, "FRAME": 60 }, "spring": { "Z1_BG": 71, "Z1_FG": 255, "Z2_BG": 120, "Z2_FG": 22, "PATH_FG": 22, "FRAME": 65 }, "summer": { "Z1_BG": 142, "Z1_FG": 255, "Z2_BG": 214, "Z2_FG": 0, "PATH_FG": 232, "FRAME": 130 }, "autumn": { "Z1_BG": 95, "Z1_FG": 255, "Z2_BG": 173, "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" } ], "config": { "env": "PS1_STYLE=aurora|neon|forge|circuit|mono; 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_HOLIDAY" ] } }, "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": "πŸŒ™" } }, "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", "line2": "status arrow + emoji", "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." ] }