docs: document tmux.conf bindings and new nav/archive keys in README
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -31,6 +31,62 @@ hqt
|
|||||||
| `Enter` | Attach to session (auto-resumes if not running) |
|
| `Enter` | Attach to session (auto-resumes if not running) |
|
||||||
| `r` | Rename session |
|
| `r` | Rename session |
|
||||||
| `s` | Stop session |
|
| `s` | Stop session |
|
||||||
|
| `h` / `l` | Focus the Projects / Sessions column |
|
||||||
|
| `x` | Archive selected session (instant; keeps the row, kills the window) |
|
||||||
|
| `A` | Toggle the Sessions column between active and archived |
|
||||||
|
| `u` | Restore (unarchive) the selected session — archived view only |
|
||||||
|
|
||||||
|
## tmux configuration
|
||||||
|
|
||||||
|
hqt runs inside tmux and tags each harness window with an `@hqt_label` user
|
||||||
|
option automatically — **it never edits your `~/.tmux.conf`**. The TUI itself
|
||||||
|
needs no tmux config to run. The bindings below are opt-in: add the ones you
|
||||||
|
want to your own `~/.tmux.conf` (`-n` = no prefix key).
|
||||||
|
|
||||||
|
### Tool palette — `Alt+p` (required for the palette feature)
|
||||||
|
|
||||||
|
Pops an fzf palette for the current session's project (nvim / lazygit / shell /
|
||||||
|
clone / reset-windows) from inside a harness window. Requires `hqt` on your
|
||||||
|
`PATH` (see Quick Start) and `fzf`. `run-shell` expands `#{window_name}` to a
|
||||||
|
concrete window name before `hqt` builds its `display-popup`:
|
||||||
|
|
||||||
|
```tmux
|
||||||
|
bind -n M-p run-shell -b "hqt palette '#{window_name}'"
|
||||||
|
```
|
||||||
|
|
||||||
|
If you run hqt from a checkout instead of installing it, point `uv run` at the
|
||||||
|
repo so the virtualenv self-heals when deps change:
|
||||||
|
|
||||||
|
```tmux
|
||||||
|
bind -n M-p run-shell -b "uv run --project /path/to/hq-term hqt palette '#{window_name}'"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Session switcher — `Alt+o` (optional)
|
||||||
|
|
||||||
|
Pops an fzf switcher over whatever you're doing (works inside a harness too).
|
||||||
|
Rows are built from the `@hqt_label` hqt sets; `cut` takes the leading window
|
||||||
|
index and `select-window` jumps to it:
|
||||||
|
|
||||||
|
```tmux
|
||||||
|
bind -n M-o display-popup -E -w 50% -h 40% -T ' switch session ' \
|
||||||
|
"tmux list-windows -F '#{window_index} #{?@hqt_label,#{@hqt_label},#{window_name}}' \
|
||||||
|
| fzf --reverse --no-info --prompt='session ' \
|
||||||
|
| cut -d' ' -f1 \
|
||||||
|
| xargs -r tmux select-window -t"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scrollback passthrough — `PageUp` (optional)
|
||||||
|
|
||||||
|
The TUI uses tmux's alternate screen. This sends `PageUp` straight through to
|
||||||
|
full-screen apps (the TUI) while still entering copy-mode scrollback in normal
|
||||||
|
panes:
|
||||||
|
|
||||||
|
```tmux
|
||||||
|
bind -n PageUp if-shell -F '#{alternate_on}' 'send-keys PageUp' 'copy-mode -eu'
|
||||||
|
```
|
||||||
|
|
||||||
|
After editing `~/.tmux.conf`, reload it with `tmux source-file ~/.tmux.conf`
|
||||||
|
(or restart the server).
|
||||||
|
|
||||||
## Worktree-isolated sessions
|
## Worktree-isolated sessions
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user