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.
prefix+ bind.
prefix+ bind runs it, so c makes a new tab.
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. |
Navigate mode
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
[keys]
prefix = "ctrl+a"
split_vertical = ["prefix+v", "prefix+backslash"]
close_pane = "" # unbind
switch_workspace = "alt+1..9"prefix+Xfires after the prefix. A combo withoutprefix+fires at once, in terminal mode.- Modifiers:
ctrl,shift,alt,cmd. Named keys:minus,backslash,tab,space,enter,esc,f1and more. 1..9makes nine binds, forswitch_tab,switch_workspaceandfocus_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 asctrl+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.
[[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.