mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 11:32:42 +00:00
docs(docs): update ctrl‑a keybinding docs to use omp‑session and add omp‑session script description
This commit is contained in:
1 parent
8b4a52a66d
commit
945cf46048
7 files changed
+57
-11
No files matched your search
+37
-1
@@ -46,6 +46,7 @@ Several scripts below also exist as fish functions of the same name (`ai`, `c2p`
|
||||
| [`mdcp`](#mdcp) | sh | Fetch a URL as Markdown, copy it, preview it |
|
||||
| [`mdp`](#mdp) | sh | fzf Markdown picker with mdfried preview |
|
||||
| [`mtime-sort`](#mtime-sort) | sh + perl | Sort path lines newest-first by mtime |
|
||||
| [`omp-session`](#omp-session) | python3 | Resume or start omp for the current repo; backend of the `omp-sessions` cable |
|
||||
| [`pj`](#pj) | bash | Task runner across every project task source, on a tv cable |
|
||||
| [`yazi-nvim-open`](#yazi-nvim-open) | sh | yazi opener that targets the host Neovim |
|
||||
|
||||
@@ -236,10 +237,45 @@ Lists `*.md` files up to 3 directories deep with `fd`. fzf shows an `mdfried` pr
|
||||
|
||||
Reads lines on stdin and prints them newest-first by the mtime of each line's last tab-separated field (the whole line when it has no tab). With `--repo`, it stats `<path>/.git/index` first, so a repo sorts by its last git activity. Lines whose path does not exist are dropped. Ties keep input order.
|
||||
|
||||
**Used by:** every custom [television](/tools/television) cable and `pj --list`. tv layers match quality and frecency on top of this order.
|
||||
**Used by:** every custom [television](/tools/television) cable except `agents` and `omp-sessions`, and `pj --list`. tv layers match quality and frecency on top of this order.
|
||||
|
||||
**Needs:** `perl`.
|
||||
|
||||
## omp-session
|
||||
|
||||
```sh
|
||||
omp-session
|
||||
```
|
||||
|
||||
Starts or resumes [omp](/ai/omp) for the current git repo by fixed rules, so <kbd>ctrl-a</kbd> never asks when the answer is obvious.
|
||||
|
||||
| HEAD | Does |
|
||||
| --- | --- |
|
||||
| Default branch | Resumes the newest session on it when that session was written less than 3 hours ago. Otherwise opens the `omp-sessions` [television](/tools/television#omp-sessions) cable over all of the repo's sessions; <kbd>enter</kbd> resumes the pick, <kbd>esc</kbd> returns to the prompt. With no sessions at all it starts a new one |
|
||||
| Any other branch | Resumes the newest session on that branch, or starts a new one |
|
||||
| Detached | Opens the `omp-sessions` cable (a new session when there are none) |
|
||||
| Outside a git repo | Plain `omp` |
|
||||
|
||||
Resuming runs `omp --resume <session file>`; omp switches to the session's own cwd.
|
||||
|
||||
**Sessions.** Every `*/*.jsonl` under `$PI_CODING_AGENT_DIR/sessions` (default `~/.omp/agent/sessions`) whose `session` header `cwd` is the worktree root or below it, excluding worktrees nested inside it. Session age is the file's mtime (the last write).
|
||||
|
||||
**Branches.** omp does not record the git branch. A session's branch is the one HEAD was on when the file was last written, replayed from the worktree's `git reflog` (`checkout: moving from A to B`, `Branch: renamed`, `rebase (finish): returning to`). Sessions older than the oldest reflog move belong to the branch that move left; with no moves they all belong to the current branch. The default branch is `origin/HEAD`, else `init.defaultBranch`, `main`, or `master`, whichever exists.
|
||||
|
||||
**Entry points.** The cable calls back into the script:
|
||||
|
||||
| Command | Does |
|
||||
| --- | --- |
|
||||
| `omp-session --list` | Prints `<age> <branch> <title>[ · <subdir>]<TAB><session file>` per session, newest first. The title is omp's session title, else the first user message |
|
||||
| `omp-session --preview FILE` | Title, last-write time, cwd, then the text of every user and assistant message (thinking, tool calls, and tool results skipped) |
|
||||
| `omp-session --resume FILE` | Writes `ran` to `$OMP_SESSION_STATE` when set, then `exec omp --resume FILE` (enter) |
|
||||
|
||||
**Prompt redraw.** The launcher runs `tv omp-sessions --inline` with `OMP_SESSION_STATE` set to a temp file. When the picker is cancelled (no `ran`), it prints `\033[A` to `/dev/tty` so the shell redraws the prompt in place; the key bindings just repaint.
|
||||
|
||||
**Launched by:** <kbd>ctrl-a</kbd> in fish and zsh.
|
||||
|
||||
**Needs:** `python3`, `git`, `omp`, `tv`.
|
||||
|
||||
## pj
|
||||
|
||||
```sh
|
||||
|
||||
Reference in new issue
Block a user