Appearance
Key bindings
Every window action ~/.config/pomelo/keymap.json can bind, by the name the file uses, with its default keys. How to write the file is in Keyboard shortcuts; the editor, terminal and pane keys listed there are fixed and cannot be rebound.
Pomelo runs on macOS today; the Windows / Linux column shows the keys those platforms will use.
The context says where a binding works: Workspace everywhere in the window, ProjectPanel only while the file tree has the keyboard, TabSwitcher only while the tab switcher is open. A keymap file section binds a context with "context": "ProjectPanel".
| Action | Name | Context | macOS | Windows / Linux |
|---|---|---|---|---|
| Command Palette | command_palette::Toggle | Workspace | P | Ctrl+Shift+P |
| Go to File | file_finder::Toggle | Workspace | P | Ctrl+P |
| Find in Project | project_search::Deploy | Workspace | F | Ctrl+Shift+F |
| Project Diagnostics | diagnostics::Deploy | Workspace | M | Ctrl+Shift+M |
| Open Settings | pomelo::OpenSettings | Workspace | , | Ctrl+, |
| Open Keymap | pomelo::OpenKeymap | Workspace | KS | Ctrl+KCtrl+S |
| Open Project | workspace::Open | Workspace | O | Ctrl+O |
| New Workspace | workspace::NewWorkspace | Workspace | N | Ctrl+N |
| New Project | workspace::NewProject | Workspace | N | Ctrl+Shift+N |
| Switch Workspace | workspace::SwitchWorkspace | Workspace | O | Ctrl+Alt+O |
| Next Theme | theme::Cycle | Workspace | KT | Ctrl+KCtrl+T |
| Toggle Left Dock | workspace::ToggleLeftDock | Workspace | B | Ctrl+B |
| Toggle Right Dock | workspace::ToggleRightDock | Workspace | R | Ctrl+R |
| Toggle Bottom Dock | workspace::ToggleBottomDock | Workspace | J | Ctrl+J |
| Files | project_panel::ToggleFocus | Workspace | E | Ctrl+Shift+E |
| Git | git_panel::ToggleFocus | Workspace | C | Ctrl+Shift+C |
| Services | services_panel::ToggleFocus | Workspace | S | Ctrl+Shift+S |
| Database | database_panel::ToggleFocus | Workspace | D | Ctrl+Shift+D |
| Pull Requests | git_panel::PullRequests | Workspace | R | Ctrl+Shift+R |
| Agent | agent::ToggleFocus | Workspace | ? | Ctrl+? |
| Terminal | terminal_panel::ToggleFocus | Workspace | ` | Ctrl+` |
| New Terminal | workspace::NewTerminal | Workspace | T | Ctrl+T |
| Close Tab | pane::CloseActiveItem | Workspace | W | Ctrl+W |
| Close All Tabs | pane::CloseAllItems | Workspace | W | Ctrl+Alt+W |
| Open in External Editor | workspace::OpenInExternalEditor | Workspace | - | - |
| Export Config | workspace::ExportConfig | Workspace | - | - |
| Import Config | workspace::ImportConfig | Workspace | - | - |
| Markdown Preview | markdown::OpenPreview | Workspace | V | Ctrl+Shift+V |
| Markdown Preview to the Side | markdown::OpenPreviewToTheSide | Workspace | KV | Ctrl+KV |
| Open Jira Ticket | workspace::OpenTicket | Workspace | - | - |
| Open Project Config | pomelo::OpenProjectConfig | Workspace | - | - |
| Set Up Project with AI | pomelo::SetUpProjectWithAi | Workspace | - | - |
| Add Repository | pomelo::AddRepository | Workspace | - | - |
| Clone Missing Repos into Main | pomelo::CloneMissingRepos | Workspace | - | - |
| Agent Usage | pomelo::OpenAgentUsage | Workspace | U | Ctrl+Shift+U |
| Dev Requests | pomelo::OpenDevRequests | Workspace | - | - |
| node_modules Store | pomelo::OpenModuleStore | Workspace | - | - |
| Select Language | language_selector::Toggle | Workspace | KM | Ctrl+KM |
| Go to Tab 1 | ["pane::ActivateItem", 0] | Workspace | 1 | Ctrl+1 |
| Go to Tab 2 | ["pane::ActivateItem", 1] | Workspace | 2 | Ctrl+2 |
| Go to Tab 3 | ["pane::ActivateItem", 2] | Workspace | 3 | Ctrl+3 |
| Go to Tab 4 | ["pane::ActivateItem", 3] | Workspace | 4 | Ctrl+4 |
| Go to Tab 5 | ["pane::ActivateItem", 4] | Workspace | 5 | Ctrl+5 |
| Go to Tab 6 | ["pane::ActivateItem", 5] | Workspace | 6 | Ctrl+6 |
| Go to Tab 7 | ["pane::ActivateItem", 6] | Workspace | 7 | Ctrl+7 |
| Go to Tab 8 | ["pane::ActivateItem", 7] | Workspace | 8 | Ctrl+8 |
| Go to Tab 9 | ["pane::ActivateItem", 8] | Workspace | 9 | Ctrl+9 |
| Go to Last Tab | pane::ActivateLastItem | Workspace | 0 | Ctrl+0 |
| Previous Tab | pane::ActivatePreviousItem | Workspace | or [ | Ctrl+PageUp or Ctrl+Shift+[ |
| Next Tab | pane::ActivateNextItem | Workspace | or ] | Ctrl+PageDown or Ctrl+Shift+] |
| Files: Open | project_panel::Open | ProjectPanel | Space | Space |
| Files: Rename | project_panel::Rename | ProjectPanel | or F2 | Return or F2 |
| Files: New File | project_panel::NewFile | ProjectPanel | N | Ctrl+N |
| Files: New Folder | project_panel::NewDirectory | ProjectPanel | N | Ctrl+Alt+N |
| Files: Cut | project_panel::Cut | ProjectPanel | X | Ctrl+X |
| Files: Copy | project_panel::Copy | ProjectPanel | C | Ctrl+C |
| Files: Paste | project_panel::Paste | ProjectPanel | V | Ctrl+V |
| Files: Duplicate | project_panel::Duplicate | ProjectPanel | D | Ctrl+D |
| Files: Copy Path | project_panel::CopyPath | ProjectPanel | C | Ctrl+Alt+C |
| Files: Copy Relative Path | project_panel::CopyRelativePath | ProjectPanel | C | Ctrl+Alt+Shift+C |
| Files: Move to Trash | project_panel::Trash | ProjectPanel | or or | Backspace or Backspace or Ctrl+Backspace |
| Files: Delete | project_panel::Delete | ProjectPanel | or | Ctrl+Alt+Backspace or Ctrl+Backspace |
| Files: Reveal in Finder | project_panel::RevealInFileManager | ProjectPanel | R | Ctrl+Alt+R |
| Files: Collapse | project_panel::CollapseSelectedEntry | ProjectPanel | Left | |
| Files: Expand | project_panel::ExpandSelectedEntry | ProjectPanel | Right | |
| Files: Collapse All | project_panel::CollapseAllEntries | ProjectPanel | Ctrl+Left | |
| Files: Expand All | project_panel::ExpandAllEntries | ProjectPanel | Ctrl+Right | |
| Switch Tab | tab_switcher::Toggle | Workspace | Ctrl+Tab | |
| Switch Tab (Oldest First) | tab_switcher::ToggleSelectLast | Workspace | Ctrl+Shift+Tab | |
| Tab Switcher: Close Selected Tab | tab_switcher::CloseSelectedItem | TabSwitcher | Ctrl+Backspace | |
| Previous Workspace | workspace::ActivatePreviousWorkspace | Workspace | Ctrl+Alt+Up | |
| Next Workspace | workspace::ActivateNextWorkspace | Workspace | Ctrl+Alt+Down | |
| Next Workspace Waiting for You | workspace::ActivateNextWorkspaceNeedingAttention | Workspace | A | Ctrl+Alt+A |
| Git: Open | git_panel::OpenSelectedEntry | GitPanel | Return | |
| Git: Toggle Staged | git::ToggleStaged | GitPanel | Space or Y | Space or Ctrl+Alt+Y |
| Git: Stage File | git::StageFile | GitPanel | Y | Alt+Y |
| Git: Unstage File | git::UnstageFile | GitPanel | Y | Alt+Shift+Y |
| Git: Stage All | git::StageAll | GitPanel | Y | Ctrl+Space |
| Git: Unstage All | git::UnstageAll | GitPanel | Y | Ctrl+Shift+Space |
| Git: Discard Changes | git::RestoreFile | GitPanel | or or or | Backspace or Backspace or Ctrl+Backspace or Ctrl+Backspace |
| Git: Copy Path | git_panel::CopyPath | GitPanel | C | Ctrl+Alt+C |
| Git: Copy Relative Path | git_panel::CopyRelativePath | GitPanel | C | Ctrl+Alt+Shift+C |
| Git: Focus Commit Message | git_panel::FocusEditor | GitPanel | or | Tab or Shift+Tab |
| Git: Collapse | git_panel::CollapseSelectedEntry | GitPanel | Left | |
| Git: Expand | git_panel::ExpandSelectedEntry | GitPanel | Right | |
| Git: Fetch | git::Fetch | GitPanel | GG | Ctrl+GCtrl+G |
| Git: Push | git::Push | GitPanel | G | Ctrl+GUp |
| Git: Pull | git::Pull | GitPanel | G | Ctrl+GDown |
| Git: Changes | git_panel::ActivateChangesTab | GitPanel | 1 | Ctrl+1 |
| Git: Remote | git_panel::ActivateRemoteTab | GitPanel | 2 | Ctrl+2 |
| Git: History | git_panel::ActivateHistoryTab | GitPanel | 3 | Ctrl+3 |
| Services: Open | services_panel::Open | ServicesPanel | Return | |
| Services: Start or Stop | services_panel::ToggleRunning | ServicesPanel | S | S |
| Services: Restart | services_panel::Restart | ServicesPanel | R | R |
| Services: Open in Browser | services_panel::OpenInBrowser | ServicesPanel | O | O |
| Services: View Logs | services_panel::ViewLogs | ServicesPanel | L | L |
| Services: Collapse | services_panel::CollapseSelectedEntry | ServicesPanel | Left | |
| Services: Expand | services_panel::ExpandSelectedEntry | ServicesPanel | Right | |
| Database: Open | database_panel::Open | DatabasePanel | Return | |
| Database: Collapse | database_panel::CollapseSelectedEntry | DatabasePanel | Left | |
| Database: Expand | database_panel::ExpandSelectedEntry | DatabasePanel | Right | |
| Database: Copy Connection URL | database_panel::CopyUrl | DatabasePanel | C | Ctrl+Alt+C |
| Database: New Console | database_panel::NewConsole | DatabasePanel | N | Ctrl+N |
| Agent: New Side Agent | agent::NewSideAgent | Workspace | KA | Ctrl+KA |
| Agent: Take Over | agent::TakeOver | Workspace | KO | Ctrl+KO |
| Agent: Allow Pending Tool | agent::Allow | Workspace | KY | Ctrl+KY |
| Agent: Deny Pending Tool | agent::Deny | Workspace | KN | Ctrl+KN |
| Agent: Stop | agent::StopAgent | Workspace | K. | Ctrl+K. |
| Notification: Run Action | notification::RunAction | Workspace | K | Ctrl+KReturn |
| Notification: Dismiss | notification::Dismiss | Workspace | KEscape | Ctrl+KEscape |
| Close Other Tabs | pane::CloseOtherItems | Workspace | T | Ctrl+Alt+T |
| Close Tabs to the Left | pane::CloseItemsToTheLeft | Workspace | KE | Ctrl+KE |
| Close Tabs to the Right | pane::CloseItemsToTheRight | Workspace | KT | Ctrl+KT |
| Close Saved Tabs | pane::CloseCleanItems | Workspace | KU | Ctrl+KU |
| Focus the Editor | workspace::FocusCenter | Workspace | Escape | Ctrl+Escape |
| Focus Next Region | workspace::ActivateNextRegion | Workspace | K | Ctrl+KTab |
| Focus Previous Region | workspace::ActivatePreviousRegion | Workspace | K | Ctrl+KShift+Tab |
| Toggle Vim Mode | workspace::ToggleVimMode | Workspace | - | - |
| List: Next | menu::SelectNext | Workspace | - | - |
| List: Previous | menu::SelectPrevious | Workspace | - | - |
| List: First | menu::SelectFirst | Workspace | - | - |
| List: Last | menu::SelectLast | Workspace | - | - |
