Command palette and shortcuts
The command palette gives you every yaggui action plus the branches, tags, commits, changed files and tabs of the window from one search field. Every action and most global keys have a stable identifier and a shortcut you can change.
Open the command palette
Section titled “Open the command palette”Press ⌘K (Ctrl+K on Windows and Linux). The same shortcut closes it, and so do Esc and a click outside. It works from anywhere, including the integrated terminal.
Type to filter. The search is fuzzy: fpu finds Force push (with lease). Use ↑ and ↓ to move (the list wraps), Home and End when the field is empty, and Enter to run the highlighted entry. The footer shows the number of results.
What the palette searches
Section titled “What the palette searches”| Kind | What you get | What Enter does |
|---|---|---|
| Action | Every command of yaggui: open, clone, fetch, push, create a branch, toggle panels, open preferences… | Runs it |
| Branch | Local and remote branches of the active repository | Selects its commit in the graph and adds it to the recent branches. It does not check it out |
| Tag | Tags, with the tag message as detail | Selects its commit in the graph |
| Commit | Commits whose message, author or SHA prefix matches, with <short SHA> · <author> as detail |
Selects the commit in the graph |
| File | The files of the commit selected in the graph or, with no selection, your staged and unstaged changes (detail staged or working tree) |
Opens the file’s diff |
| Tab | The other tabs of the window | Switches to it |
The file search does not cover every file in the repository, only the changed files listed above. Commit search runs in the background and starts once the query has 2 characters; “Searching…” shows while it runs, and up to 12 commits are listed. At most 50 results show at once.
Actions that cannot run right now (no repository open, no commit selected, no operation in progress…) stay listed, greyed out, with the detail “Coming soon”, and do nothing.
Narrow the search with a prefix
Section titled “Narrow the search with a prefix”Start the query with one of these characters to search a single kind. The footer recalls them.
| Prefix | Searches |
|---|---|
> |
Actions only |
@ |
Branches and tags |
# |
Commits (from the first character) |
/ |
Changed files |
Without a prefix, every kind is searched, and tabs only appear in this mode.
Recents and order
Section titled “Recents and order”With an empty query, your 8 most recently run entries come first, then actions grouped as Repository, Tabs, View, Application and Git, then tabs, branches and tags, and files. Recents are stored on this computer only. When you type, the best matches come first; recents and the current branch get a small boost, and disabled actions sink to the bottom.
Shortcuts in the results
Section titled “Shortcuts in the results”An action that has a shortcut shows it on the right of its row, with your current binding. Other rows show their kind there: Action, Branch, Tag, Commit, File or Tab.
See every shortcut
Section titled “See every shortcut”Press ⌘/ (Ctrl+/ on Windows and Linux) or run Show keyboard shortcuts to open the Keyboard shortcuts sheet. It lists every bound command with your current shortcut, grouped as Repository, Tabs, View, Application, Git and Graph. Edit shortcuts… opens the preferences on the Shortcuts tab.
On macOS, shortcuts use the symbols ⌘ ⌃ ⌥ ⇧ ↵; on Windows and Linux they read Ctrl, Alt, Shift, Enter.
The complete list of default shortcuts is in the keyboard shortcuts reference.
Rebind a shortcut
Section titled “Rebind a shortcut”- Open Preferences › Shortcuts (or click Edit shortcuts… in the cheat sheet).
- Find the command. Filter commands or shortcuts matches the label, the action id or the shortcut text.
- Click Edit on its row. The button reads “Press the shortcut… (Esc to cancel)”.
- Press the new combination. Pressing only modifiers keeps waiting; Esc or clicking elsewhere cancels.
The shortcut is saved at once and applies everywhere: palette hints, the cheat sheet, tooltips and, on macOS, the menu bar.
Rules for a shortcut
Section titled “Rules for a shortcut”- It needs at least one of ⌘, Ctrl or Alt (⌥) plus a key. Shift alone does not count. Function keys F1 to F12 are the exception: they can be used alone.
- The Windows key cannot be used on Windows and Linux.
- Otherwise you see “Use a modifier (⌘, Ctrl, Alt) with a key, or a function key.” and the capture waits for another combination.
- On macOS, ⌘ and ⌃ are distinct. On Windows and Linux, Ctrl plays the role of ⌘.
- yaggui does not detect shortcuts reserved by your OS or window manager. If a shortcut never reaches yaggui, pick another.
Resolve a conflict
Section titled “Resolve a conflict”If the combination already belongs to another command, the row shows “Already used by: command” with two buttons:
- Reassign gives the shortcut to this command and removes it from the other one, in one save.
- Cancel keeps everything as it was.
Conflicts that come from a hand-edited file show on each affected row as “Same shortcut as: command”.
Remove or reset shortcuts
Section titled “Remove or reset shortcuts”- Remove leaves the command without a shortcut (“No shortcut”). It stays available in the palette.
- Default restores the command’s default shortcut. It is enabled only for commands you changed; changed shortcuts are highlighted.
- Reset all to defaults in the toolbar removes all your changes.
Edit keybindings.json
Section titled “Edit keybindings.json”Your changes are stored in keybindings.json, in yaggui’s configuration folder (see Data and privacy). The full path is shown under Stored in at the bottom of the Shortcuts tab. The file only holds what differs from the defaults:
{ "git.push": "Mod+Alt+P", "graph.copyMessage": null, "view.log": "F2"}- Keys are action ids. The Shortcuts tab shows them when you filter, and the reference lists them all.
- A string sets the shortcut;
nullremoves it; a missing id keeps the default. - Shortcut syntax: modifiers among
Mod,Ctrl,AltandShift, each at most once, then one key, joined by+.Modis ⌘ on macOS and Ctrl on Windows and Linux;Ctrlis the physical Control key everywhere. Keys:AtoZ, digits,F1toF12,Space,Enter,Escape,Tab,ArrowLeft,ArrowRight,ArrowUp,ArrowDown,`, and punctuation such as,and/.
yaggui reads the file at startup and again each time you open the Shortcuts tab, so hand edits take effect there without a restart. When yaggui saves a change, it rewrites the whole file (sorted, pretty-printed).
If the file cannot be read or is not valid JSON, yaggui uses the default shortcuts and the Shortcuts tab shows a banner “keybindings.json has a problem: detail”. If only some entries are wrong, the others apply and the banner reads “Ignored entries: ids”. yaggui does not touch the file until you change a shortcut in the tab; at that point it is rewritten with the shortcuts the tab shows, which drops the invalid content.
Keys that cannot be rebound
Section titled “Keys that cannot be rebound”Some keys only make sense inside one panel and are fixed:
| Where | Keys |
|---|---|
| Graph (focused) | ↑ ↓ move, with Shift to extend the selection; Page Up Page Down; Home End; Shift+F10 or the Menu key for the context menu; Esc |
| Diff view | n / p next or previous hunk; j / k next or previous file; ⌘D (Ctrl+D) split or unified; Esc clears the line selection, then closes the diff |
| Diff lines | ↑ ↓ (with Shift to extend); Space selects a line; Enter stages (unstages in the staged diff); Backspace or Delete discards the selected lines |
| Changed files | ↑ ↓ select and open the diff (with Shift to extend); Space stages or unstages |
| Refs sidebar | Arrow keys, Home End, Page Up Page Down, Enter or Space to activate, type-ahead letters, ⌘C (Ctrl+C) copies the ref name |
| Tab strip | ← → previous or next tab, Home End, Delete closes the focused tab |
| Conflict view | ⌥↓ / ⌥↑ (Alt+↓ / Alt+↑) next or previous conflict, ⌘S (Ctrl+S) saves |
| Interactive rebase | ⌥↑ / ⌥↓ moves a commit; p r s f d e set the action |
The complete list is in the keyboard shortcuts reference.
How shortcuts behave
Section titled “How shortcuts behave”- While a dialog is open, global shortcuts and menu commands are ignored. The palette shortcut still closes the palette.
- In a text field, ⌘Z and ⌘⇧Z (Ctrl+Z, Ctrl+Shift+Z, Ctrl+Y) undo and redo the typing, not the last Git operation. See Undo and redo.
- When the integrated terminal has focus, it receives every key except the palette shortcut and the two terminal shortcuts (⌃
</kbd> and <kbd>⌃⇧, which use Control on macOS too). - A shortcut for an action that cannot run does nothing. Undo and redo are the exception: they explain why nothing can be undone.
- ⌘C and ⌘⇧C (Ctrl+C, Ctrl+Shift+C) copy the SHA or message of the selected commits only when the graph has focus.
Navigate with the keyboard
Section titled “Navigate with the keyboard”Every control shows a visible focus ring. Tab and Shift+Tab move between the toolbar, the refs sidebar, the graph, the details panel and the changes lists; arrow keys then move inside the list or tree that has focus. A few global shortcuts jump straight to a place:
| Shortcut | Goes to |
|---|---|
| ⌘K (Ctrl+K) | Command palette |
| ⌘F (Ctrl+F) | Graph search |
| ⌘⇧H (Ctrl+Shift+H) | HEAD in the graph |
| ⌘⇧R (Ctrl+Shift+R) | Filter field of the refs sidebar |
| ⌘⌥B / ⌘⌥I (Ctrl+Alt+B / Ctrl+Alt+I) | Show or hide the refs or details panel |
| ⌘1 to ⌘9 (Ctrl+1 to Ctrl+9) | Tab 1 to 9 |
| ⌃Tab / ⌃⇧Tab (Ctrl+Tab / Ctrl+Shift+Tab) | Next or previous tab |
Panel resizers can be focused and moved with the arrow keys.