98 lines
4.5 KiB
Markdown
Executable File
98 lines
4.5 KiB
Markdown
Executable File
# 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.2-4_rc_2] — 2026-04-21
|
|
|
|
### Fixed
|
|
- **`prompt.sh`** — `\$Last_Command` in PS1 was escaped, preventing the exit
|
|
code from ever appearing in the prompt (the local variable no longer exists
|
|
when PS1 is rendered by bash). Removed the backslash so the value is embedded
|
|
at `set_prompt` build time.
|
|
- **`filefct.sh` — `file_stats()`** — a stray unconditional `shift` after
|
|
`esac` doubled-shifted arguments already shifted by each `case` branch;
|
|
successive options such as `-H -d` were silently skipped.
|
|
- **`packages.sh` — `pkgs()`** — replaced the unreliable binary-presence test
|
|
(`command -v dpkg / rpm`) with the new `get_pkgmgr` function. Also corrected
|
|
a typo in the "no package manager" error message (`avialable` → `available`).
|
|
- **`processes.sh` — `kt()`** — copy-paste error: usage error message read
|
|
`"Usage: ppg <string>"` instead of `"Usage: kt <pid>"`.
|
|
|
|
### Added
|
|
- **`packages.sh` — `get_pkgmgr()`** — new exported helper that detects the
|
|
active package manager of the running distribution. Detection first reads
|
|
`/etc/os-release` (`ID` then `ID_LIKE`), then falls back to a
|
|
fixed-priority binary scan. Supported families: `apt`, `dnf`, `yum`,
|
|
`zypper`, `pacman`, `apk`, `portage`, `xbps`, `nix`. Returns 1 when
|
|
nothing is identified. Available to all future commands in `packages.sh`.
|
|
|
|
---
|
|
|
|
## [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.
|