Add project context state file

- Capture palettes, seasons, emoji rules, and installer notes
This commit is contained in:
2026-01-24 09:42:32 +00:00
parent d48fee89aa
commit 78346175a9

186
.context.json Normal file
View File

@@ -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."
]
}