diff --git a/.context.json b/.context.json new file mode 100644 index 0000000..47c73aa --- /dev/null +++ b/.context.json @@ -0,0 +1,186 @@ +{ + "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": [ + "Active development branch for seasonal palettes and emoji updates.", + "Seasonal palettes and installer prompts implemented.", + "Seasonal emoji accents with fixed lunch/dinner are enabled." + ] + }, + "4seasons": { + "notes": [ + "Branch with seasonal palettes feature set and README updates.", + "Includes seasonal palette image and seasonal selection documentation." + ] + } + }, + "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", + "Season mode: Dynamic or Static (if PS1 selected)" + ], + "season_config_file": "/etc/ps1-season", + "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": [ + "Season mode: Dynamic or Static" + ], + "season_config_file": "~/.config/ps1/season" + }, + "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 + } + }, + "emoji_rules": { + "fixed_times": { + "lunch": "11:00-11:29 => ðŸĨŠ", + "dinner": "16:00-16:59 => ðŸē" + }, + "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": "🌙" + } + }, + "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.", + "README on main references 4seasons branch for seasonal palettes and uses images/bash-pallete.png." + ] +}