Keybindings

Keyboard shortcuts, presets, and custom binding configuration.

Default Preset

The default preset includes 8 core keybindings. These are always available unless overridden by a custom binding.

KeysAction
Ctrl+Shift+CCopy selection to clipboard
Ctrl+Shift+VPaste from clipboard
Ctrl+Shift+FToggle search overlay
Ctrl+=Increase font size
Ctrl+-Decrease font size
Ctrl+0Reset font size
Ctrl+Shift+UpScroll up
Ctrl+Shift+DownScroll down

Tab Management

Tab shortcuts are built-in and available regardless of the selected preset.

KeysAction
Ctrl+Shift+TNew tab
Ctrl+Shift+WClose tab
Ctrl+TabNext tab
Ctrl+Shift+TabPrevious tab

Vim Preset

Includes all 8 default bindings plus 6 vim-style additions. Activate with preset = "vim".

KeysAction
Ctrl+Shift+JScroll down
Ctrl+Shift+KScroll up
Ctrl+Shift+HPrevious tab
Ctrl+Shift+LNext tab
Ctrl+Shift+TNew tab
Ctrl+Shift+WClose tab

Emacs Preset

Includes all 8 default bindings plus 6 emacs-style additions. Activate with preset = "emacs".

KeysAction
Ctrl+Shift+NScroll down
Ctrl+Shift+PScroll up
Ctrl+Shift+TNew tab
Ctrl+Shift+WClose tab
Ctrl+Shift+RightNext tab
Ctrl+Shift+LeftPrevious tab

Available Actions

These action names can be used in preset and custom keybinding definitions.

ActionDescription
copyCopy selection to clipboard
pastePaste from clipboard
searchToggle search overlay
scroll_upScroll up in scrollback
scroll_downScroll down in scrollback
increase_font_sizeIncrease font size
decrease_font_sizeDecrease font size
reset_font_sizeReset font size to default
new_tabOpen a new tab
close_tabClose the current tab
next_tabSwitch to next tab
prev_tabSwitch to previous tab
toggle_fullscreenToggle fullscreen mode
send_bytesSend raw bytes to the PTY (requires bytes field)

Custom Keybindings

Add custom keybindings in your blade.toml using the [[keybindings.custom]] array. Custom bindings are applied on top of the selected preset.

[keybindings] preset = "default" # Open new tab with Ctrl+N [[keybindings.custom]] keys = "ctrl+n" action = "new_tab" # Toggle fullscreen with F11 [[keybindings.custom]] keys = "f11" action = "toggle_fullscreen"

Sending raw escape sequences

Use the send_bytes action to send raw byte sequences to the terminal. This is useful for sending custom escape sequences.

# Send Ctrl+L (clear screen) with Ctrl+Shift+L [[keybindings.custom]] keys = "ctrl+shift+l" action = "send_bytes" bytes = [12] # Send ESC (0x1B) with Ctrl+[ [[keybindings.custom]] keys = "ctrl+[" action = "send_bytes" bytes = [27]
Tip: See Configuration for the full config reference.