ecliptic

Keyboard shortcuts

Every action is a command with a VS Code id, and the Command Palette (Ctrl+Shift+P or F1) runs any of them by name. The menus and the keys below are the defaults; keybindings.json changes them.

Menu Commands
File New Column Ctrl+T, Open Repository… Ctrl+O, Close Column Ctrl+W, Settings Ctrl+,, Open Settings (JSON), Keyboard Shortcuts Ctrl+K Ctrl+S, Open Keyboard Shortcuts (JSON), Quit Ctrl+Q
View Command Palette… Ctrl+Shift+P, Source Control Ctrl+Shift+G, Extensions Ctrl+Shift+X, Primary Side Bar Ctrl+B, Activity Bar, Status Bar, Refresh All F5, Mark All as Seen, Expand All Sections, Collapse All Graphs, Two Rows, Fit Columns to Window, Color Theme… Ctrl+K Ctrl+T, Follow the Desktop's Theme, Close Diff
Column Move Left Ctrl+Shift+PgUp, Move Right Ctrl+Shift+PgDn, Move Up Ctrl+Shift+↑, Move Down Ctrl+Shift+↓, Refresh Column Ctrl+R
Help About

In the active column

Key In the active column
↑ ↓ PgUp PgDn Home End Move through the focused list (Changes or Graph)
Tab, Shift+Tab Switch between Changes and Graph
← → Previous / next column
Enter, Space Open the selected file or commit (a group header folds)
Esc Close the Command Palette, the Settings editor or the diff drawer

With the drawer open, it follows the selection, so the arrows step through diffs. The selected row of the focused list has a blue outline.

Changing them

Every shortcut is a keybinding of a command, as in VS Code, and ~/.config/ecliptic/keybindings.json changes them: an array of entries with a key (VS Code's spelling: ctrl+alt+r, a chord ctrl+k ctrl+h, f9), a command and, if wanted, a when clause and args. A command written with a leading - removes the default binding of that key. The file is read again the moment it changes; one that cannot be read is reported in a banner and the last good keybindings stay in effect.

[
    { "key": "ctrl+alt+r", "command": "ecliptic.refreshColumn" },
    { "key": "ctrl+r", "command": "-ecliptic.refreshColumn" },
    { "key": "ctrl+shift+c", "command": "ecliptic.copySelectionAsPatch", "when": "drawerOpen" },
]

File → Keyboard Shortcuts (Ctrl+K Ctrl+S) lists every command with its keys, when it applies and where the binding came from (Default, User, or an extension), searchable; File → Open Keyboard Shortcuts (JSON) opens the file in the editor, creating it from a template the first time. A user's binding wins over an extension's, which wins over a default; the menus show the binding in effect.