{ "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" }, { "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|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_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": "๐ŸŒ™" } }, "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", "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." ] }