## General Assumptions
#### The Meta key.
The Meta key was introduced to make the shortcuts consistent across
platforms. It is defined as Command ⌘ on macOS, and as Ctrl
on Windows and Linux.
#### Mouse Buttons
Shortcuts are designed to work well with both the mouse and the touchpad.
- LMB corresponds to Left Mouse Button
- MMB corresponds to Middle Mouse Button
- RMB corresponds to Right Mouse Button
## Graph Editor
#### General Shortcuts
| Shortcut | Action |
| --------------------------------------------------------------------------------- | ------------------------------ |
| Escape | Cancel current interaction |
| Meta+` | Show/hide Code Editor |
| Meta+D | Show/hide Documentation Editor |
| Meta+, | Show Settings |
| Meta+/ | Show About Window |
| Meta+Z | Undo last action |
| Meta+Y or Meta + Shift + Z | Redo last undone action |
#### Navigation
| Shortcut | Action |
| ------------------------------------------------- | ------------------------------------ |
| Drag gesture (two fingers) | Pan the scene. |
| Pinch gesture (two fingers) | Zoom the scene. |
| MMB drag | Pan the scene. |
| RMB drag | Zoom the scene. |
| LMB double press component | Step into the component. |
| LMB double press background | Step out of the current component. |
| Meta+E | Step in the last selected component. |
| Meta+Shift+E | Step out of the current component. |
| Meta + Shift + A | Zoom to selected components. |
#### Component Layout
| Shortcut | Action |
| ------------------------------------------ | ---------------------------------------------------------------------- |
| LMB drag non-selected component | Move the component to new position (dragging do not modify selection). |
| LMB drag selected component | Move all selected components the component to new positions. |
#### Component Selection
| Shortcut | Action |
| ------------------------------------------------------------------------------------ | ----------------------------------------------------------- |
| LMB click component | Deselect all components. Select the target component. |
| LMB click background | Deselect all components. |
| LMB drag background | Select components using selection-box. |
| Shift + LMB click component | Add / remove component to the selection group. |
| Shift + LMB drag background | Add / remove components to the selection group. |
| Meta + A | Select all components. |
| Escape | Deselect all components (if not in a mode, like edit mode). |
| Meta + Shift + LMB click component | Add component to the selection group. |
| Meta + Shift + LMB drag background | Add components to the selection group. |
| Shift + Alt + LMB click component | Remove component to the selection group. |
| Shift + Alt + LMB drag background | Remove components to the selection group. |
| Meta + Shift + Alt + LMB click component | Inverse component selection. |
| Meta + Shift + Alt + LMB drag background | Inverse components selection. |
#### Component Browser
| Shortcut | Action |
| ------------------------------------------------ | ----------------------------------------------------------------------------- |
| Enter | Open component browser |
| Tab | Apply currently selected suggestion (insert it without finishing the editing) |
| Enter or LMB on suggestion | Accept currently selected suggestion (insert it and finish editing) |
| Meta + Enter | Accept raw input and finish editing |
| ↑ | Move selection up |
| ↓ | Move selection down |
#### Component Editing
| Shortcut | Action |
| ------------------------------------------------- | ------------------------------------- |
| Meta + C | Copy selected components. |
| Meta + V | Paste copied components. |
| BackSpace or Delete | Remove selected components. |
| Meta+G | Collapse (group) selected components. |
| Meta+LMB | Start editing component expression. |
| Meta + Shift + C | Change color of selected components. |
#### Visualization
| Shortcut | Action |
| ----------------------------------- | ----------------------------------------------------------------- |
| Space | Toggle visualization visibility of the selected component. |
| Meta hold | Preview visualization of the hovered component (hide on release). |
| Shift + Space | Toggle visualization fullscreen mode. |
| Escape | Exit visualization fullscreen mode. |
| Meta + Space | Cycle visualizations of the selected component. |
| F1 | Open documentation view |