14 KiB
Executable File
14 KiB
Executable File
Changelog
All notable changes to this project will be documented in this file.
The format follows Keep a Changelog.
Versions follow MAJOR.MINOR.PATCH-REVISION_STAGE_N (e.g. 3.99.1-4_rc_1).
[Unreleased]
Added
utaz -i/--ignore-caseand-s/--case-sensitiveswitches to match archive extensions case-insensitively or not; the default is set by the newUTAZ_DEFAULT_IGNORE_CASEkey of the[compress]section (default0).SETTRACE_DEFAULT_ENABLEDkey in the new[debug]configuration options (default0): activatessettrace --onat startup of interactive shells.utazsupports bare.zstfiles and.tzstarchives;taz -qis now effective.
Fixed
taz: a plain file with thetarformat could be deleted instead of being archived; existing<item>.tarfiles are no longer overwritten; trailing slashes,./..and names starting with-are handled; thegzipfallback (nopigz) works again.utaz: single top-level directory flattening,--no-dirtarget location,foo.tar.gzhost directory name and.tar.lzextraction.conf_save: no longer replaces a symlinked configuration file by a regular one, keeps the file permissions, rejects multi-line values, and inserts a new key before the trailing comments/banner of its section instead of under the next section's banner; leading blanks before a[section]are recognised.conf_dump -a: a commented default is no longer listed when the key is set later in the same section;NO_COLORis honoured; names with newlines or backslashes in arguments are handled.term_set:COLORTERM=truecolorno longer short-circuits every other probe (it selectedxterm-directeven inside tmux/screen or VTE terminals); multiplexers (tmux, screen) are now checked before emulator hints, since they inherit the emulator's variables.debug.sh: the trace is now written to stderr (it used to pollute captured$(...)output) and includes the exit status;backtraceanderrorare exported likesettrace;settracetells its own trap from a foreign one (--status, and--offno longer removes a foreign trap without--force);--onwhen already active is only a warning;getopterrors name the command.- All modules: counters updated with
((x++))-style commands (which return a non-zero status when the value was 0) now use plain assignments, so they no longer trigger the ERR trace or breakset -e. disp: a message hidden byQUIET/DEBUGno longer returns a non-zero status; no reset escape sequence underNO_COLOR; debug messages go to stderr; works underset -u; faster wrapping.mdcat: tables inside fenced code blocks are shown as code; code spans and\_-style escapes are protected from emphasis/link parsing;NO_COLORis honoured in tables and headings; fewer subprocesses when rendering tables; newlines in arguments no longer break option parsing.filefct.sh:findzerowithfdlisted (and--deleteremoved) one-byte files;findzero --deletecould remove symlinks to empty files;rmspcoverwrote existing files, passed a wrong replacement character to subdirectories with-r -c X, followed symlinked directories and mishandled&as replacement;expandlistsplit names containing spaces, ignored\nin its separator and reset the caller'snullglob;file_statshistogram was unordered,--minwas exclusive and invalid sizes silently gave no result;findbigaccepted an invalid configured limit; names starting with-are handled;finddeadandfindzerono longer return 1 when the last entry was skipped.fun.sh: the configured delays and language ofbusy,fake_compileandhackare now validated (a non-numeric value was evaluated as an arithmetic expression, and an invalid language looped without sleeping); Ctrl-C no longer leaves the background job running, nor does a shell without job control; a missing terminal is reported; the positional pattern ofbusydocumented in its usage now works;grep/readno longer mangle patterns starting with-or lines with leading blanks;awkis no longer forked for each pause.compress.sh: option flags and loop variables no longer leak into the interactive shell.
[4.1.0] — 2026-05-07
Added
profile.sh --installcommand to automatically configure profile loading in shell startup files.--install --bashrcand--install --profiletarget selectors for single-file installation.git.sh— entirely new module providing git workflow helpers:gst,ggraph,gsync,gacp,greset,gwip,gprune,groot.- Dedicated git helper completions under
profile.d/bash-completion/, loaded automatically in interactive sessions fromprofile.d/bash-completion/*.sh.
Changed
dispnow wraps long messages on terminal width, avoids mid-word splits, and aligns continuation lines with the message body after the prefix.helpnow supportshelp <command>and delegates to<command> --help.taznow supports-p auto/--parallel=autoto automatically use the runtime CPU count. This mode is now the default viaTAZ_DEFAULT_THREADS=auto. Backward compatibility with 0 being interpreted as auto is maintained.
Fixed
- Startup responsiveness improved:
check_updates -qnow uses a short network timeout so unavailable/slow networks no longer delay prompt readiness. dwlgained timeout support (-t/--timeout) and is now used by quiet startup update checks to enforce fast failure.profile.shnow detects direct execution and warns that it is designed to be sourced.
[4.0.0] — 2026-04-23
Added
- New
profile.confreference template atdoc/profile.conf.example. - Dynamic locale shortcuts generated from
SET_LOCALEand startup default language selection throughDEFAULT_LANG. - Prompt theming system with bundled themes (
default,dark,light,solarized,solarized-light,monokai,monochrome,abyss,plasma,adwaita) and per-key prompt color overrides. - Module defaults exposed as configuration keys in
profile.conf.
Changed
utaznow supports a wider range of archive formats.- Prompt and theme rendering improved, including better 24-bit color support.
- Overall code quality and maintainability improved across modules.
Documentation
- README updated with full function reference and configuration tables.
- New and expanded docs in
doc/(CONTRIBUTING.md,FAQ.md,todo.md). - Historical releases imported from
history.txtinto this changelog.
[3.99.2-4_rc_2] — 2026-04-21
Fixed
prompt.sh—\$Last_Commandin 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 atset_promptbuild time.filefct.sh—file_stats()— a stray unconditionalshiftafteresacdoubled-shifted arguments already shifted by eachcasebranch; successive options such as-H -dwere silently skipped.packages.sh—pkgs()— replaced the unreliable binary-presence test (command -v dpkg / rpm) with the newget_pkgmgrfunction. 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(IDthenID_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 inpackages.sh.
[3.99.1-4_rc_1] — 2026
Added
- Theming system —
load_themeinprofile.d/prompt.shloads.themefiles fromprofile.d/themes/(or a custom directory set viaPROMPT_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_THEMEandPROMPT_THEME_DIRkeys to select a theme; elevenPROMPT_COLOR_*keys for per-key overrides inprofile.conf.- Standard colour variables as theme keys — theme files may also override
the
disp.shcolour variables (Black,Blue,On_IBlack, …) to remap the terminal palette used byls,grep, and colour-aware tools. - Module configuration defaults — all modules now expose their hardcoded
defaults as
profile.confkeys: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 bycheck_updatesandprofile_upgrade. Changing the key causesprofile_upgradeto 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.confis now git-ignored so personal settings are never accidentally staged.
Changed
- README §2 now explains how to create
profile.conffromdoc/profile.conf.example(new section 2.1 "Initial configuration"). - README §4 updated with full module-defaults tables, theming reference, and a
note about
profile.confbeing git-ignored. - Theme values no longer carry the
exportkeyword (they are not shell variables, only data).
Security
load_themeuses a strict allowlist (noeval, no sourcing). OnlyPROMPT_COLOR_*keys and knowndisp.shcolour 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.
[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/utazarchive helpers.genpwd/pwdscorepassword tools.matrix/rainscreensavers.profile_upgradewith git and archive download support.
Note: The section below was imported from
history.txtto preserve pre-3.95.x-4_betarelease notes.
Legacy releases (imported from history.txt)
[3.6.1] — 2026-03-05
- Fix typo in
compress.sh.
[3.6.0] — 2026-03-05
- Improved
utazwith broader multi-format support. - Introduced
ppuandppn. - Improved update system.
[3.5.0] — 2026-03-04
rainnow has configurable speed and color.showinfoadapted tofastfetch(in addition toneofetch).
[3.3.1] — 2022-02-24
- Fixed version detection.
- Added
busy. - Fixed use of library functions before loading.
[3.3.0] — 2022-11-28
- Initial version update support.
- Changed versioning code.
- Added installation path detection.
[3.2.3] — 2022-11-28
- Improved README.
[3.2.2] — 2022-11-21
- Fixed
tazcompression level parsing. - Fixed typo in
dpkgs.
[3.2.1] — 2022-11-20
- Fixed several messages.
- Made
dpkgsRPM-aware (initial support). - Removed version history from main script and reverted declaration order.
- Added required license information in all files.
- Completed
LICENSEfile.
[3.2.0] — 2022-11-18
- Created
dispcommand and integrated it across the codebase.
[3.1.1] — 2022-11-10
genpwd: added feasibility check for requested password constraints.
[3.1.0] — 2022-11-08
- Added password generator.
[3.0.1] — 2022-11-07
- Added concatenation option to
rmspc. - Added
ku. - Improved error handling in
meteo.
[3.0.0] — 2022-08-27
- Split code into several files/modules.
- Added
rainscreensaver.
[2.8.2] — 2022-07-29
- Added warning for non-bash users.
[2.8.1] — 2022-07-19
- Cleanup, fixes and optimizations.
[2.8.0] — 2022-06-24
- Added
backtrace,errorandsettrace. - Bugfixes in
showinfo.
[2.7.1] — 2022-06-22
- Minor corrections.
- Added
helpcommand.
[2.7.0] — 2022-06-21
- Added
isipv4andisipv6, integrated intormhost. - Removed broken Konsole save/restore support.
[2.6.3] — 2021-10-18
- Changed PS1 to status-bar style.
- Minor improvements.
[2.6.2] — 2021-02-26
- Bugfix in
tazfor directories with trailing slash.
[2.6.1] — 2020-12-25
- Added checks in
rmhost. - Improved
rmspc. - Created
expandlist.
[2.6.0] — 2020-10-24
- Added Konsole session save/restore.
[2.5.3] — 2020-09-11
- Added aliases, improved code consistency and fixed typos.
- Improved
utaz, removedshowdiskmap, removed remaining French text. - Added license information for future publication.
[2.5.2] — 2020-03-06
- Sorted and improved aliases.
[2.5.1] — 2020-03-05
- Language consistency fixes.
- Added
pigzsupport intaz.
[2.5.0] — 2020-03-03
- Added
tazandrmspc. - Renamed
auziptoutazand improved it.
[2.4.0] — 2020-03-02
- Added
auzip.
[2.3.2] — 2020-01-31
figlet: changed default font toansi_shadow.
[2.3.1] — 2020-01-16
- Bugfix: non-interactive shells were blocked by some functions.
[2.3.0] — 2020-01-08
- Added
figletandneofetchas MOTD replacement.
[2.2.0] — 2019-12-16
- Added
showinfo. - First implementation of
showdiskmap.
[2.1.2] — 2019-09-24
- Bugfix in profile version display.
[2.1.1] — 2019-09-23
- Bugfix in
dpkgs.
[2.1.0] — 2018-09-16
- Added
rmhost,setc,setfr. - Improved locale management.
[2.0.1] — 2017-02-04
cleanimprovements (--shell).
[2.0.0] — 2015-10-24
- Added advanced functions (
clean,ssr, etc.).
[1.0.0] — 2013-02-16
- Initial version.
[Initial fork]
Forked default Bash profile from Beyond Linux From Scratch by:
- James Robertson jameswrobertson@earthlink.net
- Dagmar d'Surreal rivyqntzne@pbzpnfg.arg