diff --git a/README.md b/README.md index 730ffe0..8a2a0a9 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,15 @@ source /opt/profile/profile.sh It's not recommended to load that profile in `/etc/profile` as users' `.bashrc` files might interfere with some aliases and functions defined in profile. +### 2.1. Initial configuration +Copy the example configuration file and customise it to your needs: +```bash +cp /profile/doc/profile.conf.example /profile/profile.conf +``` +`profile.conf` is git-ignored so your personal settings will never be +accidentally committed. All keys are optional — sensible defaults apply when +unset. See [section 4](#4-configuration) for the full reference. + ## 3. What's the purpose? profile gives access to numerous functions, aliases and to an advanced prompt. All functions are organized into modules under the `profile.d/` directory and @@ -89,6 +98,10 @@ load time, which exports every key in that section as an environment variable. Unknown keys are silently ignored; all keys are optional — sensible defaults apply when unset. +`profile.conf` is listed in `.gitignore` so personal values (API keys, cities, +compiler flags, …) are never accidentally staged. Start from the annotated +template at `doc/profile.conf.example` (see [section 2.1](#21-initial-configuration)). + ### 4.1. Core sections | Section | Purpose | diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md new file mode 100755 index 0000000..7878abf --- /dev/null +++ b/doc/CHANGELOG.md @@ -0,0 +1,71 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +Versions follow `MAJOR.MINOR.PATCH-REVISION_STAGE_N` (e.g. `3.99.1-4_rc_1`). + +--- + +## [3.99.1-4_rc_1] — 2026 + +### Added +- **Theming system** — `load_theme` in `profile.d/prompt.sh` loads `.theme` + files from `profile.d/themes/` (or a custom directory set via + `PROMPT_THEME_DIR`). Theme files are **parsed, not executed** — no shell code + ever runs from a theme. +- **Built-in themes** — `default`, `dark`, `light`, `solarized` (24-bit + true-colour), `solarized-light` (24-bit), `monokai`, `monochrome`, `abyss`, + `plasma`, `adwaita`. +- **`[prompt]` section** — `PROMPT_THEME` and `PROMPT_THEME_DIR` keys to select + a theme; eleven `PROMPT_COLOR_*` keys for per-key overrides in `profile.conf`. +- **Standard colour variables as theme keys** — theme files may also override + the `disp.sh` colour variables (`Black`, `Blue`, `On_IBlack`, …) to remap the + terminal palette used by `ls`, `grep`, and colour-aware tools. +- **Module configuration defaults** — all modules now expose their hardcoded + defaults as `profile.conf` keys: `TAZ_*`, `UTAZ_*`, `EXPANDLIST_*`, + `CLEAN_*`, `RMSPC_*`, `FINDBIG_*`, `RAIN_*`, `MATRIX_*`, `SSH_DEFAULT_OPT`, + `GENPWD_*`, `PWDSCORE_*`, `BUSY_*`, `METEO_DEFAULT_CITY`, `DWL_*`, + `MYEXTIP_*`, `PKGS_*`, `PPU_*`, `KU_*`, `UPDT_DEFAULT_BRANCH`. +- **`UPDT_DEFAULT_BRANCH`** — configures the git branch used by `check_updates` + and `profile_upgrade`. Changing the key causes `profile_upgrade` to + automatically switch the local checkout to the new branch and display a + warning. +- **`doc/` directory** — `CONTRIBUTING.md`, `FAQ.md`, `profile.conf.example` + (annotated template), `todo.md`. +- **`.gitignore`** — `profile.conf` is now git-ignored so personal settings are + never accidentally staged. + +### Changed +- README §2 now explains how to create `profile.conf` from + `doc/profile.conf.example` (new section 2.1 "Initial configuration"). +- README §4 updated with full module-defaults tables, theming reference, and a + note about `profile.conf` being git-ignored. +- Theme values no longer carry the `export` keyword (they are not shell + variables, only data). + +### Security +- `load_theme` uses a strict allowlist (no `eval`, no sourcing). Only + `PROMPT_COLOR_*` keys and known `disp.sh` colour variable names are accepted. + Values must match `\$[A-Za-z_][A-Za-z0-9_]*` or `\\e\[[0-9;]*m`; any other + value is discarded with a warning. + +--- + +--- + +> **Note:** Versions prior to `3.95.x-4_beta` did not maintain a formal +> changelog. The full history of earlier changes is available through the git +> log (`git log --oneline`). + +## [3.95.3-4_beta_3] — 2024 + +### Added +- Initial public release candidate series. +- Core modules: `compress`, `disp`, `filefct`, `fun`, `help`, `info`, `lang`, + `net`, `packages`, `processes`, `prompt`, `pwd`, `rain`, `ssh`, `updates`. +- Bar-style prompt with time, command duration, and exit code. +- `taz` / `utaz` archive helpers. +- `genpwd` / `pwdscore` password tools. +- `matrix` / `rain` screensavers. +- `profile_upgrade` with git and archive download support. diff --git a/profile.conf b/doc/profile.conf.fatalerrors similarity index 100% rename from profile.conf rename to doc/profile.conf.fatalerrors diff --git a/version b/version index 1663442..644e860 100644 --- a/version +++ b/version @@ -1 +1 @@ -3.95.3-4_beta_3 +3.99.1-4_rc_1