mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-10-05 16:02:07 +00:00
* feat(search): replace the command palette with tabbed Search Everywhere The palette was one flat list that every new kind of row had to be squeezed into: tabs and SSH hosts rode along as "Switch to Tab: …" and "SSH: …" commands, and the only way to narrow to one kind was a magic seed word. Search Everywhere splits it into sources behind one trait — All, Actions, Terminals, Hosts — each with its own empty-query layout and ranking. The All tab shows each source's top rows, ordered by best match, with a row that opens the full tab. Tab / Shift-Tab walk the tabs and keep the query. - Terminals lists every open tab of every workspace (reusing the switcher's tab rows) and jumps to it wherever it lives, plus the shells and agents. - Hosts replaces the separate "Add Connection" input: a typed address or full `ssh …` line offers to connect. - Fixes Return doing nothing after a search that found nothing, or when the search opens pre-filtered: gpui-component re-picks the row from a stale frame; the delegate now re-arms the first row. - Fixes `ssh -p 2222 me@box` being offered as a quick-connect address with user `ssh -p 2222 me`. The keymap action stays `TogglePalette` so custom bindings keep working. * feat(search): a Sessions tab to resume past agent sessions Search Everywhere gains a Sessions tab listing the Claude Code and Codex sessions on this computer, read from ~/.claude/projects and ~/.codex/sessions ($CODEX_HOME). Sessions that ran in the focused tab's directory lead; the All tab offers the last three of them before anything is typed. Return opens a new tab in the session's directory and runs the agent's resume command with its configured launch flags. - Only each transcript's head and tail are read, off the window thread, and cached by path, size and mtime: ~170ms cold for 50 sessions, under 1ms warm. The search opens on the cached list and fills in. - Titles: /rename name, then the agent's own title (ai-title, Codex's session_index.jsonl), then the first thing typed, skipping harness injections. Codex rollouts it ran for itself (subagent/internal) and sessions never asked anything are left out. - A session whose directory is gone is refused with a notice rather than resumed where the agent cannot find it.
63 lines
2.1 KiB
Plaintext
63 lines
2.1 KiB
Plaintext
---
|
|
title: "Selection and clipboard"
|
|
description: "Smart double-click, copy on select, and the settings around them."
|
|
---
|
|
|
|
## Selecting
|
|
|
|
| | |
|
|
|---|---|
|
|
| Drag | Select a range |
|
|
| Double-click | Select the thing under the cursor — see below |
|
|
| Triple-click | Select the line |
|
|
| <kbd>⇧</kbd>-click | Extend the current selection to where you clicked |
|
|
| <kbd>⌘ A</kbd> *(macOS)* | Select all — also in the right-click menu and Search Everywhere on every platform |
|
|
|
|
### Smart double-click
|
|
|
|
A double-click does not just grab a word bounded by spaces. It works out what
|
|
you are pointing at:
|
|
|
|
| Under the cursor | What you get |
|
|
|---|---|
|
|
| A URL | The whole URL — including one the shell wrapped across two lines |
|
|
| A file path | The whole path |
|
|
| An email address | The whole address |
|
|
| A bracket or quote | The matching pair, and everything between them |
|
|
| CJK text | The word, segmented by dictionary rather than by character |
|
|
|
|
Turn it off with **Settings → Keyboard & Mouse → Selection & clipboard → Smart selection**.
|
|
With it off, double-click falls back to plain word selection using the
|
|
`word_separators` list from `config.json` — by default:
|
|
|
|
```
|
|
,│`|:"' ()[]{}<>⇥
|
|
```
|
|
|
|
## Copying and pasting
|
|
|
|
| | macOS | Windows / Linux |
|
|
|---|---|---|
|
|
| Copy | <kbd>⌘ C</kbd> | <kbd>Ctrl ⇧ C</kbd> |
|
|
| Paste | <kbd>⌘ V</kbd> | <kbd>Ctrl ⇧ V</kbd> · <kbd>⇧ Insert</kbd> |
|
|
|
|
Two settings shape what lands where, both under **Settings → Keyboard & Mouse → Selection
|
|
& clipboard**:
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="Copy on select" icon="clipboard">
|
|
Selecting with the mouse copies immediately, no <kbd>⌘ C</kbd>. Off by
|
|
default.
|
|
</Card>
|
|
<Card title="Trim trailing spaces on copy" icon="scissors">
|
|
Strips trailing whitespace from every copied line — useful when copying out
|
|
of a TUI that pads to the pane width. Off by default.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
<Note>
|
|
Pasting multiple lines sends them as typed input, exactly as any terminal
|
|
does. If the shell supports bracketed paste it will treat the block as one
|
|
paste rather than running each line.
|
|
</Note>
|