294 lines
7.7 KiB
JSON
294 lines
7.7 KiB
JSON
{
|
|
"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 (if PS1 selected)",
|
|
"Season pick (if single season)",
|
|
"Contest layout selection (if contest)",
|
|
"Style preset selection (if contest)"
|
|
],
|
|
"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",
|
|
"Season pick (if single season)",
|
|
"Contest layout selection (if contest)",
|
|
"Style preset selection (if contest)"
|
|
],
|
|
"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; PS1_CONTEST_LAYOUT=day-time-user|user-time|time-user|day-time",
|
|
"config_file_keys": [
|
|
"PS1_STYLE",
|
|
"PS1_STYLE_PACK",
|
|
"PS1_CONTEST_LAYOUT"
|
|
]
|
|
}
|
|
},
|
|
"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": "🕶️"
|
|
},
|
|
"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."
|
|
]
|
|
}
|