TUIOSTUIOS

Keybindings

Complete keyboard shortcut reference for TUIOS

Keybindings Reference

Complete keyboard shortcut reference for TUIOS. All keybindings are customizable through the configuration file.

Quick Tip

Press Ctrl+B then ? from anywhere in TUIOS to see the help overlay!

Modes

Mode switching is configured in [keybindings.mode_control]. TUIOS has two main modes:

  • Window Management Mode - Navigate and manage windows (default on startup)
  • Terminal Mode - Input goes directly to the focused terminal

Mode Switching

  • i or Enter - Enter Terminal Mode
  • Alt+Esc or Opt+Esc - Exit Terminal Mode (direct shortcut)
  • Ctrl+B then Esc - Return to Window Management Mode (from Terminal Mode)
  • ? (Window Mode) or Ctrl+B then ? (universal) - Toggle help overlay
  • q (Window Mode) or Ctrl+B then q (universal) - Quit TUIOS

Esc and d are not the same thing

Ctrl+B Esc leaves terminal mode and returns you to window mode. It never detaches.

Ctrl+B d detaches from a daemon session, leaving it running in the background. These were one action in older versions and are now separate: prefix_exit_mode and prefix_detach.

Terminal Mode Shortcuts

These shortcuts work directly in Terminal Mode without requiring the prefix key. Configured in [keybindings.terminal_mode].

PlatformNext WindowPrevious WindowExit Terminal Mode
macOSOpt+TabOpt+Shift+TabOpt+Esc
Linux/WindowsAlt+NAlt+PAlt+Esc

Why different keybindings?

On Linux and Windows, Alt+Tab is captured by the OS window switcher, so TUIOS uses Alt+N/Alt+P instead. On macOS, Opt+Tab produces a unicode character that TUIOS can intercept.

Window Management

Window mode, from [keybindings.window_management] (and [keybindings.restore_minimized] for the last row).

  • z - Toggle zoom (fullscreen focused window). Shared borders hidden when zoomed, dockbar shows Z indicator.
  • n - Create new window
  • w or x - Close focused window
  • r - Rename focused window
  • m - Minimize focused window
  • Shift+M - Restore all minimized windows
  • Tab - Focus next window
  • Shift+Tab - Focus previous window
  • 1-9 - Select window by number
  • Shift+1-9 or !@#$%^&*( - Restore minimized window by number

Workspaces

TUIOS supports 9 workspaces for organizing windows. Configured in [keybindings.workspaces].

  • Alt+1 through Alt+9 - Switch to workspace 1-9
  • Alt+Shift+1 through Alt+Shift+9 - Move window to workspace and follow

macOS Users

Use Option+1 through Option+9 (automatically configured by default)

Window Layout

Manual Snapping (Non-Tiling Mode)

Keyboard Snapping

  • h - Snap window to left half
  • l - Snap window to right half
  • f - Fullscreen window
  • u - Unsnap/restore window
  • 1 - Snap to top-left corner
  • 2 - Snap to top-right corner
  • 3 - Snap to bottom-left corner
  • 4 - Snap to bottom-right corner

Mouse Edge Snapping

In floating mode (non-tiling), drag a window to the screen edges to snap it:

EdgeAction
Top centerFullscreen
Left edgeSnap to left half
Right edgeSnap to right half
Top-left cornerSnap to top-left quarter
Top-right cornerSnap to top-right quarter
Bottom-left cornerSnap to bottom-left quarter
Bottom-right cornerSnap to bottom-right quarter

Edge Detection

Simply drag a window by its title bar and release when the cursor reaches the screen edge (within 5 pixels of the edge).

Tiling Mode

TUIOS uses Binary Space Partitioning (BSP) for automatic tiling. Windows are arranged in an alternating vertical/horizontal split pattern (spiral layout).

  • t - Toggle automatic tiling mode
  • Shift+H or Ctrl+Left - Swap with window to the left
  • Shift+L or Ctrl+Right - Swap with window to the right
  • Shift+K or Ctrl+Up - Swap with window above
  • Shift+J or Ctrl+Down - Swap with window below
  • < or Shift+, - Decrease master window width (from right edge)
  • > or Shift+. - Increase master window width (from right edge)
  • { or Shift+[ - Decrease focused window height (from bottom edge)
  • } or Shift+] - Increase focused window height (from bottom edge)
  • . - Increase master window width from the left edge
  • [ - Decrease focused window height from the top edge
  • ] - Increase focused window height from the top edge

One default binding you cannot reach

resize_master_shrink_left is bound to a bare , by default, and you will never trigger it. In window mode, , is intercepted for the settings page before any keybinding lookup runs.

Rebinding , in [keybindings.layout] does not help either, because the intercept is not registry-driven. Bind resize_master_shrink_left to a different key if you want it.

BSP Split Controls

In window mode, from [keybindings.layout]:

  • - - split_horizontal
  • | or \ - split_vertical
  • R - rotate_split
  • = - equalize_splits
  • Alt+h Alt+j Alt+k Alt+l - preselect_left / preselect_down / preselect_up / preselect_right, choosing where the next window lands (Opt on macOS)

The same four split operations are also on the prefix key, as separate actions in [keybindings.prefix_mode]:

  • Ctrl+B then - - prefix_split_horizontal
  • Ctrl+B then | or \ - prefix_split_vertical
  • Ctrl+B then R - prefix_rotate_split
  • Ctrl+B then = - prefix_equalize_splits

Rebinding one does not rebind the other. They are two independent sets.

Split Indicator

The dock shows the next split direction (V for vertical, H for horizontal) when tiling mode is active.

Copy Mode

Enter copy mode with Ctrl+B then [ to navigate scrollback and select text using vim-style commands.

Vim Users

Copy mode supports 50+ vim motions including word movements, paragraph jumps, and search!

Basic Navigation

  • Ctrl+B then [ - Enter copy mode
  • h j k l - Move cursor left/down/up/right
  • w b e - Word forward / word backward / word end
  • 0 ^ $ - Start of line / first non-blank / end of line
  • gg - Jump to top of scrollback
  • G - Jump to bottom (live output)
  • {number}G - Jump to line number (e.g., 10G)
  • { } - Jump to previous/next paragraph
  • Ctrl+U Ctrl+D - Half page up/down
  • Ctrl+B Ctrl+F - Full page up/down
  • i - Return to terminal mode
  • q or Esc - Exit copy mode

Count Prefix

Prefix any motion with a number to repeat it:

  • 10j - Move down 10 lines
  • 5w - Move forward 5 words
  • 3{ - Jump up 3 paragraphs
  • f{char} - Find next occurrence of char on line
  • F{char} - Find previous occurrence of char on line
  • t{char} - Move cursor before next char
  • T{char} - Move cursor after previous char
  • ; - Repeat last character search
  • , - Repeat last search (opposite direction)
  • / - Search forward
  • ? - Search backward
  • n - Next match
  • N - Previous match
  • Ctrl+L - Clear search highlights

Visual Selection

  • v - Enter visual character mode
  • V - Enter visual line mode
  • y or c - Yank (copy) selection to clipboard
  • Esc or q - Exit visual mode

Command Palette

  • Ctrl+P - Open Command Palette (works from any mode)
  • Ctrl+B then P - Open Command Palette (prefix alternative)

The command palette provides fuzzy-searchable access to all TUIOS commands, keybindings, and actions.

Prefix Commands

Press Ctrl+B, release, then press the command key (tmux-style).

Leader Key

The leader key (Ctrl+B by default) is configurable. See Configuration Guide for details.

Main Prefix (Ctrl+B)

Every row below is an action in [keybindings.prefix_mode] and can be rebound.

KeyAction nameDoes
cprefix_new_windowCreate new window
xprefix_close_windowClose current window
rprefix_rename_windowRename window
,prefix_settingsOpen the settings page
n or Tabprefix_next_windowNext window
p or Shift+Tabprefix_prev_windowPrevious window
0-9prefix_select_0 to prefix_select_9Jump to window
Spaceprefix_toggle_tilingToggle tiling mode
zprefix_fullscreenToggle zoom on current pane
-prefix_split_horizontalSplit horizontally (top/bottom)
| or \prefix_split_verticalSplit vertically (left/right)
Rprefix_rotate_splitRotate split direction
=prefix_equalize_splitsEqualize all split ratios
[prefix_selectionEnter copy mode
sprefix_scrollbackOpen the scrollback browser
Sprefix_session_switcherOpen the session switcher
Pprefix_command_paletteOpen the command palette
Lprefix_layoutEnter layout prefix menu
wprefix_workspaceEnter workspace prefix menu
mprefix_minimizeEnter minimize prefix menu
tprefix_windowEnter window prefix menu
Dprefix_debugEnter debug prefix menu
Tprefix_tapeEnter tape prefix menu
dprefix_detachDetach; a daemon session keeps running
Escprefix_exit_modeLeave terminal mode, never detaches
qprefix_quitQuit; in daemon mode this kills the session
?prefix_helpToggle help

Ctrl+B then Ctrl+B sends a literal Ctrl+B to the terminal.

Copy mode and the scrollback browser are different

Ctrl+B [ enters copy mode, with vim motions and text selection. Ctrl+B s opens the scrollback browser, which is for reading back through history. They are separate actions with separate bindings.

Window Prefix (Ctrl+B then t)

Configured in [keybindings.window_prefix].

  • n - window_prefix_new, create new window
  • x - window_prefix_close, close current window
  • r - window_prefix_rename, rename window
  • Tab - window_prefix_next, next window
  • Shift+Tab - window_prefix_prev, previous window
  • t - window_prefix_tiling, toggle tiling mode
  • Esc - window_prefix_cancel, cancel

Minimize Prefix (Ctrl+B then m)

Configured in [keybindings.minimize_prefix].

  • m - minimize_prefix_focused, minimize the focused window
  • 1-9 - minimize_prefix_restore_1 to minimize_prefix_restore_9, restore minimized window by position
  • M - minimize_prefix_restore_all, restore all minimized windows
  • Esc - minimize_prefix_cancel, cancel

Tape Prefix (Ctrl+B then T)

Record and replay .tape automation scripts. Configured in [keybindings.tape_prefix].

  • m - tape_prefix_manager, open the tape manager
  • r - tape_prefix_record, start recording
  • s - tape_prefix_stop, stop recording
  • Esc - tape_prefix_cancel, cancel

Workspace Prefix (Ctrl+B then w)

Configured in [keybindings.workspace_prefix].

  • 1-9 - workspace_prefix_switch_1 to workspace_prefix_switch_9, switch to workspace
  • ! @ # $ % ^ & * ( - workspace_prefix_move_1 to workspace_prefix_move_9, move window to workspace and follow
  • Esc - workspace_prefix_cancel, cancel

Debug Prefix (Ctrl+B then D)

Debug and development tools. Configured in [keybindings.debug_prefix].

  • l - debug_prefix_logs, toggle log viewer
  • c - debug_prefix_cache, toggle cache statistics
  • k - debug_prefix_showkeys, toggle showkeys overlay
  • a - debug_prefix_animations, toggle animations
  • Esc - debug_prefix_cancel, cancel

Layout Prefix (Ctrl+B then L)

Save and load window layout templates:

  • Ctrl+B then L then l - Load layout template
  • Ctrl+B then L then s - Save layout template
  • Ctrl+B then L then Esc - Cancel

Layout loading is non-destructive: existing windows are repositioned to match the template rather than being killed. Extra windows are minimized.

The only prefix menu you cannot rebind

Entering this menu is the configurable prefix_layout action, but l and s inside it are literal. The layout sub-prefix has no config section of its own.

Mouse Controls

  • Left Click - Focus window
  • Left Drag - Move window (non-tiling) or swap windows (tiling)
  • Right Drag - Resize window (non-tiling only)
  • Title Bar Buttons - Minimize, maximize, or close window
  • Click Dock Item - Restore minimized window
  • Copy Mode Click - Move cursor to position
  • Copy Mode Drag - Select text (enters visual mode). Dragging above/below the pane auto-scrolls via a timer.
  • Mouse Wheel Up - Enter copy mode and scroll up (when the application is not tracking the mouse and is not on the alternate screen)
  • Right Border Click/Drag - Interactive scrollbar for navigating scrollback history

Customization

Every binding on this page lives in one of 14 sections under [keybindings] in config.toml, and every one is rebindable. The section is named next to each group above. See the Configuration Guide for the full list and the key syntax.

# Edit your keybindings
tuios config edit

# View current configuration
tuios keybinds list

# View your customizations
tuios keybinds list-custom

Prefix bindings work now

Six sections used to be parsed and then ignored, so rebinding anything under the leader key silently did nothing: prefix_mode, window_prefix, minimize_prefix, workspace_prefix, debug_prefix, and tape_prefix. They all resolve properly now, as does terminal_mode. If you gave up on customizing your prefix menus, try again.

list-custom is not a full audit

tuios keybinds list-custom compares 9 of the 14 sections. It ignores navigation, restore_minimized, debug_prefix, tape_prefix, and terminal_mode, and it never reports a customized leader_key. A config that changes only those prints "No custom keybindings configured".

Most keybinding changes need a restart

TUIOS hot-reloads part of [appearance], but keybindings are not in that subset. Restart the client after editing them.

Platform-Specific Notes

macOS

Default workspace switching uses Option key:

  • Option+1 through Option+9 - Switch workspace
  • Option+Shift+1 through Option+Shift+9 - Move window to workspace

Terminal mode shortcuts:

  • Opt+Tab / Opt+Shift+Tab - Cycle windows
  • Opt+Esc - Exit terminal mode

You can still type Option key unicode characters (¡™£¢∞§¶•ª) in Terminal Mode.

Linux/Windows

Uses standard Alt key for workspace switching:

  • Alt+1 through Alt+9
  • Alt+Shift+1 through Alt+Shift+9

Terminal mode shortcuts:

  • Alt+N / Alt+P - Cycle windows (next/previous)
  • Alt+Esc - Exit terminal mode

Note

Alt+Tab is not used on Linux/Windows because it conflicts with the OS window switcher.

On this page