Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,12 @@ Bindings follow GNU screen's defaults, including the `C-x` variants
| `C-a l`, `C-a C-l` | redraw |
| `C-a a` | send a literal `C-a` |

`boo ui` adds bindings for switching (`C-a n`/`C-a p`/`C-a C-a`),
creating (`C-a c`), killing (`C-a k`), and renaming (`C-a r`)
sessions; pressing `C-a` alone lists them in the bottom bar. See
`boo help ui`.
`boo ui` adds a command palette: pressing `C-a` opens a modal to
fuzzy-find sessions or run commands (new, kill, rename, quit, ...),
and prompts such as kill confirmation and renaming open as modals
too. Control variants run commands directly: `C-a C-c` create,
`C-a C-k` kill, `C-a C-r` rename, `C-a C-n`/`C-a C-p`/`C-a C-a`
switch, `C-a C-d` quit. See `boo help ui`.

## Automation

Expand Down
45 changes: 29 additions & 16 deletions src/help.zig
Original file line number Diff line number Diff line change
Expand Up @@ -116,31 +116,44 @@ pub const commands = [_]Entry{
\\Manage sessions in a full-screen interface: a sidebar lists
\\every session (window title underneath) and the focused
\\session runs in a viewport on the right, rendered live from
\\terminal state.
\\terminal state. Prompts and confirmations open as modals
\\over the screen.
\\
\\mouse:
\\ click a session focus it (steals politely, like attach)
\\ click its 'x' kill it (asks for confirmation)
\\ click + new session start a session running $SHELL
\\ click its 'x' kill it (opens a confirmation modal)
\\ click + new session open the new-session modal
\\ click on a modal close it
\\ scroll the sidebar scroll the session list
\\ in the viewport forwarded to the application when it
\\ asked for mouse reporting; otherwise
\\ dragging selects text and copies it on
\\ release (OSC 52)
\\
\\keys (prefix C-a, control variants match GNU screen):
\\ C-a c create a session and focus it
\\ C-a k kill the focused session (asks y/n)
\\ C-a r rename the focused session
\\ C-a n focus the next session
\\ C-a p focus the previous session
\\ C-a C-a focus the previously focused session
\\ C-a d quit the UI (sessions keep running)
\\ C-a l redraw
\\ C-a a send a literal C-a to the application
\\ C-a Esc cancel the armed prefix
\\
\\Pressing C-a alone lists these bindings in the bottom bar.
\\keys (prefix C-a):
\\ C-a open the palette: fuzzy-find a session or run
\\ a command (new, kill, rename, quit, ...)
\\ C-a C-c open the new-session modal
\\ C-a C-k kill the focused session (confirmation modal)
\\ C-a C-r rename the focused session
\\ C-a C-n focus the next session
\\ C-a C-p focus the previous session
\\ C-a C-a focus the previously focused session
\\ C-a C-d quit the UI (sessions keep running)
\\ C-a C-l redraw
\\ C-a Esc close the palette / cancel the prefix
\\
\\In the palette, type to filter, move with up/down (or C-n/
\\C-p), run the selection with enter, and close with esc.
\\Printable keys after C-a feed the filter, so C-a k searches
\\for "k"; the single-letter screen bindings live on as
\\palette commands and as the control variants above. A
\\literal C-a is sent with the palette's "send a literal
\\C-a" command.
\\
\\The new-session modal creates a session running $SHELL;
\\leave the name empty to pick one automatically, like
\\'boo new'.
\\
\\Everything else is typed into the focused session. Unlike a
\\plain attach, pasted text may contain C-a bytes safely
Expand Down
Loading
Loading