5.6 KiB
Executable File
5.6 KiB
Executable File
profile — to-do list
Items marked [easy], [medium], or [hard] give a rough effort hint. Items marked [breaking] would change existing behaviour and require a version-bump.
Shell / compatibility
- ZSH compatibility layer — most functions work already; the remaining
blockers are
local -A(no associative arrays in ZSH withouttypeset -A) andlocal -nnamerefs. A thin compatibility shim would open the project to ZSH users. [hard] - Bash completion — add a
profile.d/completion/directory and write_profile_upgrade,_taz,_utaz,_meteo, etc. completions so that<Tab>works on all public functions. [medium] shellcheckclean pass — runshellcheck -x profile.sh profile.d/*.shand address every remaining warning (currently a handful of SC2034 and SC2086 items). Integrate as a pre-commit hook. [easy]
Prompt & theming
- Git branch in prompt — show the current branch name (and dirty
indicator) in the PS1 bar when inside a Git repository. Should be
gated behind a
[prompt]config key so it can be disabled. [medium] - Virtual-env / conda indicator — detect
$VIRTUAL_ENV/$CONDA_DEFAULT_ENVand display the name in the prompt bar. [easy] - True-colour terminal auto-detection — query
$COLORTERMand$TERMat load time; automatically fall back from a 24-bit theme to its 16-colour equivalent when the terminal does not support true colour. [medium] - True-colour variants of other themes — create
monokai-tc.theme,abyss-tc.theme, etc. using the same\e[38;2;R;G;Bmapproach as the Solarized themes. [easy] (per theme) - Theme preview command — add a
theme_preview(orprofile_theme) function that renders a colour swatch and a sample prompt line for the currently loaded theme, so users can evaluate themes without reloading the session. [medium] load_theme— DEFAULTCOL rebuild — after overridingDEFAULTFGandDEFAULTBG, automatically recomputeDEFAULTCOLfrom the new values instead of requiring the theme file to set it explicitly. [easy]
Module improvements
compress
tazprogress bar — show apv/dd-based progress indicator when compressing large trees, gated behind a-pflag. [medium]utazintegrity check — runtar -tOf/unzip -t/7z tbefore extracting and abort if the archive is corrupt. [easy]
filefct
findbig/findzero/finddead—fdintegration — optionally usefdinstead offindwhen available for faster traversal. [easy]file_stats— human-readable totals — add--humanflag to emit sizes in K/M/G instead of bytes. [easy]
info
showinfofallback — when neitherneofetchnorfastfetchis installed, print a minimal sysinfo block (hostname, OS, kernel, uptime, CPU, RAM) using pure Bash +/proc. [medium]
net
dwlresume support — pass-C -to curl /--continue-at -to wget for interrupted downloads; gate behind a-rflag. [easy]myextipmultiple providers — fall back to a secondary URL (configurable viaMYEXTIP_FALLBACK_URL) when the primary times out. [easy]
packages
- Additional backends — add support for
pacman(Arch),apk(Alpine),xbps-query(Void), andbrew(macOS). [medium]
processes
kudry-run flag — add-n/--dry-runto print what would be killed without acting. [easy]
pwd
genpwdpassphrase mode — add-w/--words Nto generate word-based passphrases (diceware-style) from/usr/share/dict/words. [medium]
ssh
- SSH agent management — add
ssh_agent_start/ssh_agent_stophelpers that start a persistentssh-agent, add configured keys, and survive re-login via a socket stored in~/.ssh/agent.env. [medium] rmhostglob support — allowrmhost '*.example.com'to remove all matching entries in one call. [easy]
updates
- Automatic update check age — store a timestamp in
~/.cache/profile_last_check; skip the network request incheck_updates -qif the last check was less thanUPDT_CHECK_INTERVALhours ago (configurable, default 24). [medium] - Changelog display — after a successful
profile_upgrade, fetch and displayCHANGELOG.mdentries newer than the previously installed version. [medium]
Infrastructure
- Test suite — add a
test/directory withbats(Bash Automated Testing System) unit tests for pure functions (expandlist,genpwd,pwdscore,isipv4,isipv6,parse_conf,load_theme, …). Target for CI. [hard] - CI pipeline — Gitea Actions (or similar) job that runs
shellcheckand thebatssuite on every push. [medium] profile_statusfunction — print a diagnostic summary: installed version, active theme, loaded modules, detected Bash version, interactive / login shell flags, andprofile.confpath. [easy]profile_uninstallfunction — remove thesourceline from~/.bashrc/~/.profileand optionally delete the install directory, with a dry-run mode. [medium]dispsyslog integration — add aDISP_SYSLOG=1config key that additionally pipes E/W messages tologger. [easy]- XDG base-dir support — honour
$XDG_CONFIG_HOMEas an alternative location forprofile.confso users can keep~tidy. [medium] [breaking]