Commit Graph

204 Commits

Author SHA1 Message Date
rootiest 7bd080769e docs(guards): document opinionated component toggles
Adds 'Opinionated Components (Minimal Mode)' to docs/fish-config.md
with index keywords (opinionated, minimal, minimal-mode, opt-out,
toggles) and a Minimal Mode section with toggle table to README.md.
AGENTS.md Task #3 checklist ticked locally (file is git-ignored).
2026-06-10 11:38:14 -04:00
rootiest dc97892a29 feat(guards): add in-function opinionated guards and CachyOS cleanup
C1 shadows (rm, cat, ls, less, du, bash, top, ping, ssh, rg, mkdir,
help) fall back to the bare command when __fish_config_op_aliases is
falsy; rm falls back to exact 'command rm' with no wrapper. C2 gates
the auto-venv PWD hook. C3 gates smart_exit (composing with Task #4
logging), fish_right_prompt, and all six expand_bang_*/expand_typo_sub
functions atomically with the bang-bang system. C4 integration commands
(spwin, tab, split, hist, logs, upgrade) refuse with a colored stderr
error when disabled. config.fish now also strips the CachyOS distro
config's own bang-bang bindings, history override, and alias opinions
per category, restoring fish stock functions where they exist.
2026-06-10 11:34:56 -04:00
rootiest ce84db593c feat(guards): add opinionated component guards to config.fish and conf.d
Adds __fish_config_op_enabled helper (master __fish_config_opinionated
evaluated first via __fish_variable_check, then the category variable)
and gates C1-C4 components: CachyOS surgical override, PAGER/MANPAGER,
CDPATH, Vi mode, exit override, bang-bang bindings, history/cp/mv/wget/
grep aliases, cd->z alias, Fisher bootstrap and theme apply, paru/yay
wrapper generation, WakaTime hook, custom key chords, puffer, autopair,
starship prompt, Catppuccin colors, FZF_DEFAULT_OPTS, done notifications,
and Kitty/WezTerm window-management abbreviations.
2026-06-10 11:28:43 -04:00
rootiest cdf850f2e7 fix(config-help): quote +/pattern in MANPAGER to prevent word-splitting on spaces 2026-06-08 23:18:31 -04:00
rootiest c5d6e35afc fix(config-help): add -- separator before -+ regex pattern in string replace 2026-06-08 23:16:44 -04:00
Gitea Actions 17dcc99fc2 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-09 03:15:49 +00:00
rootiest 831c7beb4d feat(config-help): add section linking for HTML and man page
Generate documentation / build-docs (push) Successful in 30s
Offline docs drift reminder / remind (push) Successful in 10s
- Section keyword is now extracted early and shared across all three
  output modes (pager, HTML, man) rather than duplicated per branch
- --html with a section keyword resolves the heading to a pandoc anchor
  ID and looks it up in docs/html/sitemap.json; handles both sub-section
  fragment paths and top-level sections that are their own page
- --man with a section keyword overrides MANPAGER to `less +/pattern`
  so the page opens at the nearest heading match
- --help output updated to show [section] in USAGE and section+flag
  examples (help config keybindings --html, help config pkg --man)
- docs/fish-config.md §5.14 synopsis, flags, and examples updated
- docs/fish-config.md §11 "Viewing" sections updated for both HTML and
  man page to document the section+flag invocation
- README table updated with section+html and section+man rows
2026-06-08 23:15:17 -04:00
Gitea Actions f4157fb4ba chore(docs): regenerate man page, HTML docs, and wiki 2026-06-09 03:05:21 +00:00
rootiest 79f8445e25 docs(help): prefer help config syntax; add NOTES to config-help doc block
Generate documentation / build-docs (push) Successful in 35s
Offline docs drift reminder / remind (push) Successful in 10s
- help.fish: expand SYNOPSIS/DESCRIPTION to document -w/--html, -m/--man,
  -h/--help flags; note flags are only intercepted when 'config' is argv[1]
- config-help.fish: add # NOTES section explaining help config as the
  preferred invocation; update --help banner to show both names; update
  --help USAGE/EXAMPLES output to use `help config` syntax throughout
- docs/fish-config.md: update §5.14 synopsis/examples and "Viewing" sections
  to use `help config` as primary form; inline note for direct config-help use
- README.md: update docs table to show `help config --html` / `--man`
2026-06-08 23:04:39 -04:00
Gitea Actions e86b537f6d chore(docs): regenerate man page, HTML docs, and wiki 2026-06-09 02:38:35 +00:00
rootiest 23e2f43447 docs: add sponge_privacy.fish to conf.d listing in fish-config.md
Generate documentation / build-docs (push) Successful in 30s
2026-06-08 22:38:03 -04:00
Gitea Actions 32630443a8 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-09 02:32:06 +00:00
rootiest 21126012dc Merge pull request 'docs(fisher): clarify bundled vs fisher-managed plugins; add sponge' (#37) from docs/fisher-plugins-bundled into main
Generate documentation / build-docs (push) Successful in 37s
Offline docs drift reminder / remind (push) Successful in 12s
Reviewed-on: #37
2026-06-09 02:31:31 +00:00
rootiest 13eb93ce12 fix(sponge): escape leading -- in auth-flag pattern; purge stale -- patterns on load 2026-06-08 22:29:20 -04:00
rootiest 8911146d3f fix(sponge): guard set -q value[1] before string length to handle unset vars 2026-06-08 22:26:00 -04:00
rootiest 1637dc3122 fix(sponge): use $$var[1] to avoid test arg-count error on array vars 2026-06-08 22:24:31 -04:00
rootiest bceff8f4ec feat(sponge): add three-layer privacy filtering for shell history
conf.d/sponge_privacy.fish registers patterns and filters that prevent
credentials from reaching fish history:

  Layer 1 (static regex, universal): auth flags, env assignments,
  credential-bearing URLs, Authorization headers, sshpass, docker
  login, openssl -passin/-passout

  Layer 2 (dynamic values, session globals): on the first prompt, after
  secrets.fish has loaded, reads the literal values of all exported
  credential-named vars (TOKEN, PASSWORD, SECRET, etc.), escapes them
  for regex, and merges them with the static patterns as a session
  global — auto-refreshes on login so rotated tokens are never stale

  Layer 3 (per-command filter, sponge_filter_secrets): catches
  credentials in variables exported mid-session (e.g. project .env)

Also exempts functions/sponge_filter_secrets.fish from the sponge_*
gitignore glob so our custom filter is committed alongside the config.
2026-06-08 22:23:29 -04:00
rootiest d21aa4ed4b chore: remove requirements.md (superseded by §6 dependency catalog and fish-deps) 2026-06-08 22:03:24 -04:00
rootiest 43123ff390 feat: add sponge via fisher; gitignore fisher-managed files
meaningful-ooo/sponge is now the one true Fisher-managed plugin,
giving the bootstrap a concrete purpose. Its files (and functions/fisher.fish,
completions/fisher.fish) are gitignored so Fisher owns them exclusively —
no committed/managed conflict possible.

Updates docs, index, requirements, and README to distinguish
Fisher-managed plugins from bundled customized ones.
2026-06-08 22:01:30 -04:00
rootiest 8e7e450a9d docs: clarify that plugin functionality is bundled, not managed by fisher
Only jorgebucaran/fisher itself is in fish_plugins. The functionality
from catppuccin/fish, fzf.fish, done, autopair, and puffer-fish is
bundled directly with this config in modified form and must not be
installed or updated via fisher.

Removes sponge (not present), corrects file path mappings for bundled
components, fixes stale "Plugin sync failed" message in first_run.fish,
and expands fish-config.index with missing sections 9–11.
2026-06-08 21:51:27 -04:00
rootiest d53237f53c docs(readme): make wiki link prominent as a standalone heading
Offline docs drift reminder / remind (push) Successful in 13s
2026-06-08 17:15:46 -04:00
Gitea Actions 8ad10c41d7 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-08 21:09:54 +00:00
rootiest 2f199066f8 chore(docs): remove stale wiki files from previous section numbering
Generate documentation / build-docs (push) Successful in 34s
Offline docs drift reminder / remind (push) Successful in 14s
2026-06-08 16:48:43 -04:00
rootiest f444bfa464 docs: move Viewing This Manual to last position (§11)
Reorder sections so Installation (§9) and Personalization (§10) precede
Viewing This Manual (§11). Update TABLE OF CONTENTS and regenerate wiki;
old 9-viewing-this-manual.md replaced by 11-viewing-this-manual.md.
2026-06-08 16:48:37 -04:00
rootiest 345d0086a5 docs: add Installation and Personalization sections; fix wiki index
- docs/fish-config.md: add §10 Installation (clone, sentinel guard,
  config-update usage) and §11 Personalization (secrets.fish /
  local.fish examples); update TABLE OF CONTENTS
- docs/split-wiki.py: strip trailing thematic break from DESCRIPTION
  body so index.md no longer renders a double --- separator
- Regenerate docs/wiki/ with 11-installation.md and
  12-personalization.md; all nav bars updated
2026-06-08 16:46:48 -04:00
rootiest 8e32196a79 docs: slim README to overview+docs pointer; expand offline manual
- README now contains only Overview, Documentation, Installation,
  Personalization, Attribution, and License; all detailed reference
  content has been removed since it is covered in the wiki
- Add Documentation section above Installation pointing to docs/wiki/
- docs/fish-config.md: add §4.11 Shell Aliases (navigation dots, color
  overrides, safety wrappers, archives, system logs)
- docs/fish-config.md: add Prompt and Theme subsection to §7 with
  Starship OSC 133 marker detail and FZF Catppuccin color values
- Regenerate docs/wiki/ with all new content
2026-06-08 16:44:15 -04:00
Gitea Actions 38bdc3df65 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-08 20:28:13 +00:00
rootiest 21437d1881 feat(docs): add auto-generated Markdown wiki
Generate documentation / build-docs (push) Successful in 32s
Offline docs drift reminder / remind (push) Successful in 10s
Adds docs/split-wiki.py, a Python script that splits fish-config.md
into a multi-page Markdown wiki under docs/wiki/:

- index.md: DESCRIPTION intro + full section ToC
- one file per numbered section (1-configuration-variables.md … 9-viewing-this-manual.md)
- each section page has a nav bar at the top linking to every other section

The build-docs.yml workflow now runs the script alongside pandoc so all
three formats (man page, HTML, wiki) are regenerated together from a
single source in one CI run.

README slimmed down to a pointer to the wiki; docs/fish-config.md §9
gains an "As a wiki" subsection.
2026-06-08 16:27:35 -04:00
rootiest fe6670f188 chore(docs): reset fish-config.md to stock format
Generate documentation / build-docs (push) Successful in 31s
2026-06-08 15:39:55 -04:00
Gitea Actions 27fd6e4e05 chore(docs): regenerate man page and HTML docs 2026-06-08 19:38:21 +00:00
rootiest 9cb9fff5ce ci: touch docs to trigger build-docs action
Generate documentation / build-docs (push) Successful in 32s
2026-06-08 15:37:44 -04:00
rootiest a9ce4b9ada ci(docs): merge man-page and html-docs workflows into build-docs
Both workflows triggered on the same path change, installed pandoc
separately, and raced to commit — the second always failed on push
due to new commits from the first. A single job installs pandoc once,
generates both outputs, and commits them together.
2026-06-08 15:36:31 -04:00
Gitea Actions 5e1fa470cb chore(docs): regenerate offline HTML docs 2026-06-08 19:31:34 +00:00
rootiest bf2ad2f1e7 Merge pull request 'feat(config-help): add --html and --man flags; add config-update function' (#36) from feat/config-help-flags-and-updater into main
Offline docs drift reminder / remind (push) Successful in 11s
Generate HTML docs / build-html-docs (push) Successful in 27s
Generate man page / build-manpage (push) Failing after 29s
Reviewed-on: #36
2026-06-08 19:30:52 +00:00
rootiest de07040c16 feat(config-help): add --html and --man flags; add config-update function
config-help gains two new flags:
- --html / -w: opens docs/html/index.html in the default browser using
  smart browser detection (xdg-mime https scheme handler → known binaries
  → xdg-open fallback) to avoid MIME-type mismatches with non-browser apps
- --man / -m: opens the compiled docs/fish-config.1 man page via man -l

config-update is a new function that pulls the latest fish config from the
hard-coded upstream URL without requiring a configured git remote. Suppresses
git output and reports status with colored messages. Supports --dry-run and
--force flags.

README updated to document all new commands.
2026-06-08 15:29:57 -04:00
rootiest 9795164eda feat(docs): add dark-mode HTML styling and drop per-page ToC
- Add docs/html-style.html with Catppuccin Latte/Mocha palette,
  auto-selected via prefers-color-scheme
- Update html-docs workflow: embed stylesheet via --include-in-header,
  remove --toc so per-page sidebar is gone (index.html remains the ToC)
- Touch docs/fish-config.md to trigger the HTML generation workflow

fix(ci): clear docs/html/ before pandoc to avoid directory-exists error

fix(docs): restore toc on index, hide it on section pages via JS, fix
full-page bg

fix(docs): fix nav alignment by grouping label+link pairs as flex units

chore(docs): regenerate offline HTML docs
2026-06-08 11:57:04 -04:00
Gitea Actions c098498f0c chore(docs): regenerate offline HTML docs 2026-06-08 11:28:28 -04:00
rootiest 8ea448adb8 ci(html-docs): add automatically generated html docs 2026-06-08 11:28:28 -04:00
rootiest 8541ef2658 chore(gitignore): ignore agent planning artifacts 2026-06-07 01:14:48 -04:00
rootiest 761ac9eb1b docs(welcome): update offline doc command and add deps check instruction 2026-06-06 23:44:55 -04:00
rootiest 9779dcc8ec docs(readme): Keep intro text line length under 80 characters
Offline docs drift reminder / remind (push) Successful in 5s
2026-06-06 23:24:56 -04:00
rootiest ea1aa20ac7 Merge pull request 'fix(ci): replace nonexistent gitea-issue-create action with curl API call' (#35) from fix/docs-drift-workflow-action into main
Reviewed-on: #35
2026-06-07 03:20:53 +00:00
rootiest b6aa81f3b1 fix(ci): replace nonexistent gitea-issue-create action with curl API call
The `actions/gitea-issue-create@v1` action does not exist on GitHub,
causing the docs-drift workflow to fail at clone time. Replace it with
a direct call to the Gitea REST API using curl. Also corrects the label
from `documentation` to `Kind/Documentation`.
2026-06-06 23:20:18 -04:00
rootiest 91ee993302 docs(readme): fix minor table alignment formatting
Offline docs drift reminder / remind (push) Failing after 3s
2026-06-06 23:15:58 -04:00
Gitea Actions 97b65c56a8 chore(docs): regenerate fish-config.1 man page 2026-06-07 03:14:43 +00:00
rootiest 9959bd4dc6 Merge pull request 'feat: first-run initialization routine' (#34) from feat/first-run-init into main
Offline docs drift reminder / remind (push) Failing after 0s
Generate man page / build-manpage (push) Successful in 17s
Reviewed-on: #34
2026-06-07 03:14:13 +00:00
rootiest 278ceb2c06 docs(readme): document first_run.fish and update Fisher bootstrap reference 2026-06-06 23:12:30 -04:00
rootiest 945b8ddabf docs: add first-run initialization design spec 2026-06-06 23:09:10 -04:00
rootiest bc8339895a docs: document first-run initialization in fish-config.md 2026-06-06 23:09:00 -04:00
rootiest c9d360809d fix: improve error handling in first_run.fish 2026-06-06 23:09:00 -04:00