Commit Graph

162 Commits

Author SHA1 Message Date
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
rootiest e2738f2ab4 feat: add first_run.fish for one-time shell initialization 2026-06-06 23:09:00 -04:00
rootiest d4f99a79fe refactor: move Fisher bootstrap to first_run.fish 2026-06-06 23:09:00 -04:00
rootiest b03ec287b2 docs: add first-run implementation plan 2026-06-06 23:09:00 -04:00
Gitea Actions 0959d82018 chore(docs): regenerate fish-config.1 man page 2026-06-07 02:34:25 +00:00
rootiest fe1ef6f2ee Merge pull request 'feat(help): integrate config-help into fish's help command' (#33) from feat/help-config-integration into main
Offline docs drift reminder / remind (push) Failing after 0s
Generate man page / build-manpage (push) Successful in 18s
Reviewed-on: #33
2026-06-07 02:32:19 +00:00
rootiest 569d17a342 feat(help): integrate config-help into fish's help command
Rename config_help → config-help and add a help wrapper that
intercepts 'help config [section]', forwarding sub-topics to
config-help. Update README and docs to use 'help config' as the
preferred interface so offline docs feel like a natural extension
of fish's built-in help system.
2026-06-06 22:31:24 -04:00
Gitea Actions cf56f58dcd chore(docs): regenerate fish-config.1 man page 2026-06-06 08:39:18 +00:00
rootiest 4117b0ddb6 feat(tricks): auto-create fish-config.1 symlink on shell start
Offline docs drift reminder / remind (push) Failing after 3s
Generate man page / build-manpage (push) Successful in 16s
The symlink from ~/.local/share/man/man1/fish-config.1 to
docs/fish-config.1 is now created automatically alongside the
existing MANPATH setup, making `man fish-config` work out of the
box on any machine after cloning. Simplified docs accordingly.
2026-06-06 04:37:58 -04:00
Gitea Actions b2dd199e2f chore(docs): regenerate fish-config.1 man page 2026-06-06 08:35:39 +00:00
rootiest 7359c12e79 docs: document man fish-config and fish_config naming distinction
Offline docs drift reminder / remind (push) Failing after 4s
Generate man page / build-manpage (push) Successful in 17s
Adds man page viewing instructions to README Offline Documentation
section and to docs/fish-config.md section 9, including a note that
fish-config (hyphen) is this config's man page while fish_config
(underscore) is fish's built-in browser tool.
2026-06-06 04:35:21 -04:00
rootiest c9a5577c11 feat(manpath): expose user-local man pages for man fish-config
Adds ~/.local/share/man to MANPATH so the generated fish-config.1
(symlinked from docs/) is accessible via `man fish-config`.
2026-06-06 04:31:48 -04:00
rootiest 329dae0f08 docs(readme): add docs/ directory to Structure section
Offline docs drift reminder / remind (push) Failing after 3s
Co-documents fish-config.md and fish-config.index in the repo layout.
2026-06-06 04:27:02 -04:00
Gitea Actions dbddc4c1de chore(docs): regenerate fish-config.1 man page 2026-06-06 08:26:01 +00:00
rootiest 103f99b9f7 Merge pull request 'feat(docs): offline documentation, config_help viewer, and CI pipelines' (#32) from feat/offline-documentation into main
Offline docs drift reminder / remind (push) Failing after 1m22s
Generate man page / build-manpage (push) Successful in 1m26s
Reviewed-on: #32
2026-06-06 08:24:34 +00:00
rootiest ba92267a80 feat(config_help): colorize --help output
Section headers in bold blue, argument/flag names in yellow, command
examples in green, navigation keys in cyan, fallback chain numbers
dimmed. All reset to normal after each colored span.
2026-06-06 04:23:58 -04:00
rootiest cb4d74423a feat(config_help): add --help flag and persistent nav hint header
- config_help --help / -h prints full usage, section keyword examples,
  ov navigation key reference, and the pager fallback chain.
- Prepend a dim nav hint line to the ov input stream and pin it with
  --header 1 so "Space=next section  ^=prev  Alt+u=sections  /=search
  q=quit" is always visible at the top of the screen.
2026-06-06 04:16:13 -04:00
rootiest 368b714a98 fix(config_help): reliable section lookup and jump via index + tail-slice
- Add docs/fish-config.index mapping 100+ keyword aliases to exact heading
  text; config_help looks up here first, falls back to normalized heading
  scan (strips non-alphanumeric, lowercases both sides) for unknown terms.
- Resolve line numbers at runtime with grep -F so the index never goes
  stale from doc edits — only heading renames require an update.
- Fix section jump: --section-header pins delimiter lines as sticky headers
  removing them from ov pattern-search scope. Replace --pattern with
  tail -n +$start_line piped before ov; the target section is the first
  line so no search is needed and forward section nav still works.
- Fix empty sections sidebar: ov matches --section-delimiter against
  logical (ANSI-stripped) text, so "^#" is correct for bat-colored output;
  the previous ANSI escape-sequence regex never matched anything.
2026-06-06 04:09:12 -04:00
rootiest 02c27c6907 feat(docs): add offline documentation, config_help viewer, and CI pipelines
- docs/fish-config.md: curated terminal-optimized manual covering all
  public functions, keybindings, abbreviations, configuration variables,
  dependency catalog, and customization guide. Written for ov/bat/less
  readability rather than browser rendering — no callouts, no hyperlinks.
  Pandoc-compatible YAML front matter for man page compilation.

- functions/config_help.fish: viewer function with fallback chain
  ov -> bat -> man -l -> less -> cat. Accepts an optional section
  keyword to jump directly to the first matching heading.

- .gitea/workflows/man-page.yml: compiles docs/fish-config.md to
  docs/fish-config.1 via pandoc on every push to main that touches the
  source doc, then commits the result automatically.

- .gitea/workflows/docs-drift.yml: opens a reminder issue whenever
  README.md changes without a corresponding docs/fish-config.md update
  in the same push.

- README.md: documents config_help and the offline manual.
- AGENTS.md: adds Convention 10 requiring offline doc to be updated
  alongside any function, keybinding, or config change.
2026-06-06 03:14:36 -04:00
rootiest b37f5c1d74 Merge pull request 'feat(pkg): cross-platform package manager support' (#31) from feat/cross-platform-pkg-manager into main
Reviewed-on: #31
2026-06-06 06:49:07 +00:00
rootiest 014a8c3515 remove(functions): drop claude.fish wrapper
Remote-control is now enabled directly in the Claude Code config,
making the shell wrapper redundant.
2026-06-06 02:41:26 -04:00
rootiest 00055a7c38 feat(pkg): add cross-platform package manager support
Refactor pkg.fish to auto-detect the system package manager via
_fish_deps_detect_pm instead of hard-requiring paru/yay. Supports
install, uninstall, and auto (toggle) modes across paru, yay, pacman,
apt, dnf, zypper, yum, brew, and pkg. Package installed-checks now use
the correct query tool per PM (pacman -Qi, dpkg -s, rpm -q, etc.).

Also adds zypper to the _fish_deps_detect_pm detection priority list.
2026-06-06 02:41:10 -04:00
rootiest 0dfd75923d Merge pull request 'docs(functions): standardize all function doc blocks to UNIX man-page style' (#30) from docs/standardize-function-doc-blocks into main
Reviewed-on: #30
2026-06-06 00:20:17 +00:00
rootiest 1341e2559e docs(functions): standardize all function doc blocks to UNIX man-page style
Replace all ad-hoc inline comments between license headers and function
declarations with consistent SYNOPSIS / DESCRIPTION / ARGUMENTS / RETURNS /
EXAMPLE blocks across all 99 project-owned functions/ files. No executable
logic, variable names, or exit codes were modified.

Completes Task #6 from AGENTS.md (Retroactive Function Documentation
Standardization).
2026-06-05 20:18:49 -04:00
rootiest 0396d685fd Merge pull request 'feat(shell): add fzf inline picker, variable-check utility, and PATH cleanup' (#29) from feat/fzf-inline-picker-and-config-utilities into main
Reviewed-on: #29
2026-06-05 23:49:03 +00:00
rootiest 90a813c9d3 refactor(config): annotate PATH entries and fix cargo append flag
Adds inline comments to all fish_add_path entries for self-documentation.
Removes the unused $HOME/Applications path. Changes cargo bin flag from
-mg to -mga so the cargo bin directory is appended to PATH rather than
prepended, avoiding conflicts with system-installed Rust tools.
2026-06-05 19:48:14 -04:00
rootiest 8b9daf40c5 feat(shell): add __fish_variable_check utility function
Provides a reusable helper for evaluating configuration variable
truthiness. Returns 0 (true), 1 (false), 2 (empty/unset), or
3 (unrecognized value) — enables future strict-mode and opinionated-
components guards without repeating inline logic.
2026-06-05 19:47:05 -04:00
rootiest 2a08e1acef feat(shell): add fzf inline picker bound to @@
Adds __fzf_inline_picker function and @@ keybinding (Emacs + all Vi
modes). Opens an fzf session and injects the selected item at the
cursor position in the current command line. Includes SYNOPSIS/
DESCRIPTION doc block per project conventions. Updates README with
new binding in the User Bindings table.
2026-06-05 19:46:54 -04:00
rootiest fe1905ec85 Merge pull request 'feat(shell): add poke, _fish_mkdir_p utility, and update fish-deps for ov/yay' (#28) from feat/poke-and-fish-deps-ov-yay into main
Reviewed-on: #28
2026-06-04 03:31:24 +00:00
rootiest 13b9ba5828 docs(readme): update mkdir, mkcd, poke entries for _fish_mkdir_p integration 2026-06-03 23:26:21 -04:00
rootiest c2afa1201f feat(shell): integrate _fish_mkdir_p into mkdir and mkcd
- mkdir: loop over path args calling _fish_mkdir_p --path; falls back
  to command mkdir -p when flag args (e.g. -m 755) are present
- mkcd: default to _fish_mkdir_p --tree for new dirs; add -s/--silent
  flag to suppress tree output (mkcd's own status message still prints)
2026-06-03 23:22:30 -04:00
rootiest 4df10a7a2c fix(shell): clarify poke tree header to 'Created missing directories:' 2026-06-03 23:11:02 -04:00
rootiest e063763c0e refactor(shell): extract _fish_mkdir_p utility; improve poke output
- Add _fish_mkdir_p: reusable mkdir -p with three output modes:
  --path (default): "Created: ~/full/path/" on one line
  --tree: dimmed existing anchor + cyan tree of newly-created dirs
  --silent: no output
  HOME is substituted with ~ in all output paths
- Refactor poke to delegate to _fish_mkdir_p --tree; removes inline
  mkdir/echo logic and gains ~ substitution and per-dir tree output
2026-06-03 23:08:56 -04:00
rootiest c97c2290eb feat(shell): add poke function and update fish-deps for ov and yay
- Add poke: touch with automatic parent directory creation; prints
  colored notice when new dirs are created; handles multiple file args
- Refactor config.fish CachyOS override block: consolidate copy into
  the erase+source loop alongside ls/lt/cleanup
- fish-deps: replace most with ov (cargo crate + AUR pkg); add yay as
  rec dep with yay-build special (paru -S yay or AUR makepkg); add
  update handling for yay-build in _fish_deps_update
- README: document poke in Directory & File Listing table
2026-06-03 22:52:49 -04:00
rootiest 40021dcc21 Merge pull request 'fix(shell): preserve scrollback prompt colors in ov sticky headers' (#27) from feat/preserve-scrollback-header-colors into main
Reviewed-on: #27
2026-06-04 01:39:37 +00:00
rootiest 7610a4121d docs(readme): simplify return sentinel callout wording 2026-06-03 21:11:34 -04:00
rootiest fd1ddddbf0 fix(shell): preserve scrollback prompt colors in ov sticky headers
Use a per-invocation temp ov config to set SectionLine Background/Foreground
to empty strings, preventing ov from overriding the ANSI colors embedded in
the starship prompt when it is pinned as a sticky section header.

Also adds a second return sentinel inside the interactive block of config.fish
to guard against tool-injected init lines that target the inner scope, and
updates README accordingly.
2026-06-03 20:43:00 -04:00
rootiest 15596bae5f Merge pull request 'feat(shell): enhance log browser, add yay wrapper, and integrate starship OSC prompt markers' (#26) from feat/log-browser-yay-ov-and-starship-osc into main
Reviewed-on: #26
2026-06-03 05:04:00 +00:00
rootiest db33d9cff7 feat(shell): enhance log browser, add yay wrapper, and integrate starship OSC prompt markers
- logs.fish: add yay category, ov-powered viewing for paru/yay (section
  headers, color highlights, ==> AUR build markers) and scrollback logs
  (OSC 133;A sticky prompt headers); add fzf Ctrl-D delete with Y/n
  confirm and list refresh, ? toggleable help overlay; run
  _scrollback_prune_junk before building file list
- _scrollback_prune_junk: new utility to remove empty, single-line, and
  Kitty tab-rename noise logs before display and before max-file pruning;
  called from both logs and smart_exit
- smart_exit: call _scrollback_prune_junk before counting toward max files
- conf.d/yay-wrapper.fish: auto-generate ~/.local/bin/yay logging wrapper
  mirroring paru-wrapper; tees output to timestamped logs, prunes old ones
- conf.d/starship.fish: move fish_prompt from config.fish; emit OSC 133;A
  after the prompt's leading newline so the marker lands on the info-bar
  line rather than the blank line above it; guard with type -q starship so
  clean fish sessions use built-in markers unchanged
- config.fish: remove inline fish_prompt block (now in conf.d/starship.fish);
  add return sentinel at EOF to prevent tool-injected init lines from running
- completions/ov.fish: add ov tab completions
- README.md: document all of the above
2026-06-03 01:02:55 -04:00
rootiest 3bc28fd9d5 Merge pull request 'feat(shell): replace pager with ov, add logs browser, and auto-generate paru wrapper' (#25) from feat/ov-pager-logs-and-wrappers into main
Reviewed-on: #25
2026-06-01 00:41:55 +00:00
rootiest f97272d0ec feat(shell): replace pager with ov, add logs browser, and auto-generate paru wrapper
- Set $PAGER to ov in config.fish (falls back to less); remove LESS=-R
- Rewrite less wrapper with full hierarchy: $PAGER → ov → less → more → cat
- Simplify view.fish fallback to delegate to the less wrapper
- Add logs function: fzf browser for scrollback and paru logs, opens in $PAGER
- Add claude wrapper: auto-injects --remote-control unless already present
- Add conf.d/paru-wrapper.fish: generates ~/.local/bin/paru on first run,
  versioned so future template changes auto-propagate on next shell start
- Sync README.md and requirements.md to document all of the above
2026-05-31 20:39:52 -04:00
rootiest 0298e5a483 Merge pull request 'feat(shell): add scrollback history capture on shell exit' (#24) from feat/scrollback-history-on-exit into main
Reviewed-on: #24
2026-05-30 05:21:47 +00:00
rootiest 378cb6b221 feat(shell): add scrollback history capture on shell exit
- Add smart_exit function: captures Kitty scrollback to a timestamped
  log file on exit; --no-log/-n skips capture; auto-prunes oldest logs
  once count exceeds SCROLLBACK_HISTORY_MAX_FILES
- Wire exit → smart_exit in config.fish for interactive sessions;
  export SCROLLBACK_HISTORY_DIR and SCROLLBACK_HISTORY_MAX_FILES with
  sane defaults (~/.terminal_history and 100 respectively)
- Update cat to detect files in SCROLLBACK_HISTORY_DIR or containing
  raw ANSI escape sequences and pass them through command cat instead
  of bat, preserving color output
- Remove redundant alias rm="rm -i" from tricks.fish (superseded by
  functions/rm.fish trash-aware wrapper)
- Sync README: new Scrollback History integration section, smart_exit
  added to System functions table, cat description updated, stale rm
  Safety Wrapper entry and note removed
2026-05-30 01:20:40 -04:00