docs / using rodeo / key binds

Key binds

rodeo starts from the keys of Herdr TUI 0.9.5, with the same actions, defaults and syntax. Set them in [keys], and press prefix+? in rodeo to see every bind.

The prefix

Most binds start with the prefix, ctrl+b. Press the prefix, let go, then press the key. prefix+v means ctrl+b, then v.

  • Press the prefix two times to send it to the pane.
  • esc cancels.
  • A key with no bind is dropped.
  • After the key, rodeo goes back to the mode you came from: copy mode if the pane was in copy mode, else terminal mode.

Coming from tmux? The prefix is ctrl+b here too. Set prefix = "ctrl+a" in [keys] to move it.

Modes

rodeo is always in one of five modes. Outside terminal mode, a bar at the bottom of the panes shows the mode and its keys.

terminaldefault
Keys go to the focused pane. Binds without the prefix run first, then the prefix, then the pane.
prefixctrl+b
The next key runs a prefix+ bind.
navigateprefix+w
Move through spaces with ↑ ↓, and focus one with enter or 1..9. h j k l move between panes. The bare key of any prefix+ bind runs it, so c makes a new tab.
resizeprefix+r
h j k l or the arrows resize the pane. Modifiers do nothing here.
copyprefix+[
Move, search and select in the scrollback, then copy with y or enter.

Default keys

Every action is a field in [keys]. An action marked unset has no default: bind it yourself.

General

Action Default Does
prefix ctrl+b Enter prefix mode.
help prefix+? Show every key bind, with a filter.
settings prefix+s Theme, state marks, sound and toasts.
goto prefix+g Find a machine, space, pane or agent.
open_notification_target prefix+o Go to the pane of the last toast.
reload_config prefix+shift+r Reload the config.
detach prefix+q Quit rodeo. Terminals keep running in hc.

Spaces

Action Default Does
new_workspace prefix+shift+n New space, in the shared layout.
rename_workspace prefix+shift+w Rename the space.
close_workspace prefix+shift+d Close the space and end its terminals.
workspace_picker prefix+w Enter navigate mode.
switch_workspace unset Go to space 1 to 9. Takes a 1..9 bind.
previous_workspace / next_workspace unset Step through spaces on all machines.
new_worktree prefix+shift+g Add a git worktree, then a space in it.
open_worktree unset Open a space in a worktree of the repo.
remove_worktree unset Delete the worktree of the space.

Tabs

Action Default Does
new_tab prefix+c New tab.
rename_tab prefix+shift+t Rename the tab.
previous_tab / next_tab prefix+p prefix+n Step through tabs.
switch_tab prefix+1..9 Go to tab 1 to 9.
move_tab_previous / move_tab_next unset Move the tab left or right.
close_tab prefix+shift+x Close the tab.

Panes

Action Default Does
split_vertical prefix+v Split side by side.
split_horizontal prefix+minus Split top and bottom.
focus_pane_left / _down / _up / _right prefix+h/j/k/l Focus the next pane that way.
swap_pane_left / _down / _up / _right prefix+shift+h/j/k/l Swap with the next pane that way.
cycle_pane_next / _previous prefix+tab prefix+shift+tab Cycle through panes.
last_pane unset Go back to the pane you focused before.
zoom prefix+z Zoom the pane.
resize_mode prefix+r Enter resize mode.
resize_pane_left / _down / _up / _right unset Resize the pane one step.
copy_mode prefix+[ Enter copy mode.
rename_pane prefix+shift+p Name the pane.
edit_scrollback prefix+e Open the scrollback in $EDITOR.
clear_pane unset Clear the screen and scrollback of the pane.
close_pane prefix+x Close the pane and end its terminal.
toggle_sidebar prefix+b Fold or show the sidebar.
remote_image_paste ctrl+v Paste a clipboard image into the pane.

Agents

Action Default Does
previous_agent / next_agent unset Step through agents in the agent list.
focus_agent unset Go to agent 1 to 9. Takes a 1..9 bind.

These work in navigate mode only, without the prefix.

Action Default Does
navigate_workspace_up / _down up down Move through the space list.
navigate_pane_left / _down / _up / _right h j k l Focus the next pane that way.

Change a key

~/.config/rodeo/config.toml
[keys]
prefix = "ctrl+a"
split_vertical = ["prefix+v", "prefix+backslash"]
close_pane = ""                  # unbind
switch_workspace = "alt+1..9"
  • prefix+X fires after the prefix. A combo without prefix+ fires at once, in terminal mode.
  • Modifiers: ctrl, shift, alt, cmd. Named keys: minus, backslash, tab, space, enter, esc, f1 and more.
  • 1..9 makes nine binds, for switch_tab, switch_workspace and focus_agent.
  • A value is one bind or a list of binds. "" or [] removes the default.
  • A bind without the prefix on a plain letter is refused, so you can still type. Use prefix+X, or add a modifier such as ctrl+alt.

Run rodeo config check to see each bind that rodeo refused, and why. rodeo config reset-keys drops [keys] and keeps a backup.

Custom commands

Bind a key to a command with [[keys.command]]. The command runs on the machine of the focused space.

~/.config/rodeo/config.toml
[[keys.command]]
key = "prefix+y"
type = "popup"
command = "lazygit"
description = "lazygit"
width = "80%"
height = "80%"
Type Does
shell Runs the command in the background. This is the default.
pane Opens a zoomed pane that closes when the command exits.
popup Opens a terminal over the tab. width and height are cells or a percent.

The description is the label in prefix+?. A shell command gets the ids and the folder of the focused space, tab and pane in HERDR_ACTIVE_* variables.

Edit this page on GitHub