Keyboard Shortcuts

Tabularis ships with a set of keyboard shortcuts for common actions across navigation, the editor, and the data grid. All shortcuts use Cmd on macOS and Ctrl on Windows/Linux.


Action macOS Windows / Linux
Command palette: actions and objects together (since v0.26.0) ⌘+K Ctrl+K
Command palette: object search (tables, views, routines, triggers) ⌘+P Ctrl+P
Command palette: actions ⌘+Shift+A Ctrl+Shift+A
Open settings (since v0.26.0) ⌘+, Ctrl+,
Focus the sidebar table filter ⌘+Shift+F Ctrl+Shift+F
Toggle sidebar ⌘+B Ctrl+B
Toggle row editor sidebar (right) ⌘+Shift+B Ctrl+Shift+B
Open connections page ⌘+Shift+C Ctrl+Shift+C
New connection (opens modal) ⌘+Shift+N Ctrl+Shift+N
Switch to Nth open connection ⌘+Shift+1–9 Ctrl+Shift+1–9
Paste / import from clipboard ⌘+Shift+V Ctrl+Shift+V

Editor

Action macOS Windows / Linux
Run query ⌘+F5 Ctrl+F5
Run query (from Monaco editor) ⌘+Enter Ctrl+Enter
New console tab ⌘+T Ctrl+T
Close current tab ⌘+W Ctrl+W
Save SQL file (file-backed console tab, since v0.23.0) ⌘+S Ctrl+S
Switch tab (circular) Ctrl+Tab Ctrl+Tab
Copy selection ⌘+C Ctrl+C
Format SQL (buffer or selection) ⇧+⌥+F Shift+Alt+F
Multi-Cursor (click) ⌘+Click Ctrl+Click
Add next occurrence ⌘+D Ctrl+D
Select all occurrences ⌘+Shift+L Ctrl+Shift+L
Cursors at line ends ⌥+Shift+I Alt+Shift+I
Copy line up ⌥+Shift+↑ Ctrl+Shift+↑
Copy line down ⌥+Shift+↓ Ctrl+Shift+↓

Notebook

Action macOS Windows / Linux
Run All Cells ⌘+Shift+Enter Ctrl+Shift+Enter

Data Grid

Action macOS Windows / Linux
Next page ⌘+→ Ctrl+→
Previous page ⌘+← Ctrl+←
Save grid changes ⌘+S Ctrl+S
Move the focused cell ↑ ↓ ← → ↑ ↓ ← →
Extend the cell range by one step Shift+↑ Shift+↓ Shift+← Shift+→ Shift+↑ Shift+↓ Shift+← Shift+→
Jump the focused cell to the grid edge ⌘+↑ ⌘+↓ ⌘+← ⌘+→ Ctrl+↑ Ctrl+↓ Ctrl+← Ctrl+→
Extend the cell range to the grid edge ⌘+Shift+Arrow Ctrl+Shift+Arrow
First / last column of the row Home / End Home / End
First / last cell of the grid ⌘+Home / ⌘+End Ctrl+Home / Ctrl+End
Move one viewport of rows PageUp / PageDown PageUp / PageDown
Select the row(s) of the focused cell or range Shift+Space Shift+Space
Select the column(s) of the focused cell or range ⌘+Space or ⌘+Shift+Space Ctrl+Space or Ctrl+Shift+Space
Edit the focused cell Enter or F2 Enter or F2
Select all loaded rows ⌘+A Ctrl+A
Copy the current selection ⌘+C Ctrl+C
Paste at the selection (staged as pending changes) ⌘+V Ctrl+V

Cell navigation is bound to the grid you last interacted with, so a notebook with one grid per SQL cell does not move them all at once. Keys are left alone inside text inputs, open cell editors, the foreign-key and BLOB buttons, and the sort buttons in column headers. See Data Grid → Keyboard Navigation.

Since v0.22.0 the selection shortcuts (Shift+Arrow, Ctrl/Cmd+Arrow, Shift+Space, Ctrl/Cmd+Space) are relative to the focused cell and are not overridable. Ctrl/Cmd+Shift+Space is offered as an alternative for column selection because plain Ctrl+Space is often captured by an input method (ibus, fcitx) on Linux or by Spotlight on macOS. Note that with a focused cell, Ctrl/Cmd+← / → jumps to the grid edge; the Next page / Previous page shortcuts still apply when no cell is focused and from the pagination buttons.


Customizing Shortcuts

Most shortcuts can be reassigned from Settings → Keyboard Shortcuts. Each row in the table shows:

  • A lock icon for built-in shortcuts that cannot be changed (Monaco editor bindings, browser-level shortcuts).
  • An Edit button for customizable shortcuts.

Click Edit on any customizable row, then press the key combination you want to assign. The recorder captures modifier keys (Cmd/Ctrl, Shift, Alt) plus the final key. Press Escape to cancel. Changes are saved immediately to keybindings.json in your config directory.

Since v0.26.0 the editor validates the combination before saving it. A combination without a modifier is refused with "Add a modifier key, such as Ctrl or Alt.", and one already used by another shortcut names it ("This shortcut conflicts with “Toggle sidebar”.") instead of silently replacing it.

The shortcut editor reporting a conflict with an existing binding

Shortcuts also record the physical key (code) next to the character (key), so they keep working on non-US layouts such as AZERTY or QWERTZ. An override matches either one, which means that on some layouts a shortcut has two triggers: on AZERTY, Open settings fires on both Ctrl+, and Ctrl+;. This is intended.

To revert a customized shortcut to its default, click the ↺ (reset) button on its row.


keybindings.json

Tabularis stores your overrides in a JSON file in the OS config directory:

Platform Path
macOS ~/Library/Application Support/tabularis/keybindings.json
Linux ~/.config/tabularis/keybindings.json
Windows %APPDATA%\tabularis\keybindings.json

The file is only created when you first customize a shortcut. Its format is a map from shortcut ID to platform-specific KeyMatch objects:

{
  "toggle_sidebar": {
    "mac": { "metaKey": true, "key": "e", "code": "KeyE" },
    "win": { "ctrlKey": true, "key": "e", "code": "KeyE" }
  },
  "new_tab": {
    "mac": { "metaKey": true, "key": "n" },
    "win": { "ctrlKey": true, "key": "n" }
  }
}

Each KeyMatch supports the following fields:

Field Type Description
key string The key value (e.g. "b", "ArrowRight", "F5")
code string Optional physical key (e.g. "KeyB", "Digit1", "Comma"), matched independently of the keyboard layout (since v0.26.0)
ctrlKey boolean Ctrl modifier
metaKey boolean Cmd/Meta modifier
shiftKey boolean Shift modifier
altKey boolean Alt/Option modifier

You can edit this file manually if you prefer. Tabularis reads it at startup; changes while the app is running take effect after a restart.