---
layout: developer-doc
title: Shortcuts
category: product
tags: [product,ui]
---
## 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.
#### Keyboard-only Workflow
The GUI and all shortcuts were designed in a way to allow both efficient mouse-only as well as
keyboard-only workflows. In most cases, there is a relation between mouse and keyboard shortcuts,
namely, the `left-mouse-button` corresponds to `enter`. For example, stepping into a node is done
by either double clicking the node, or just pressing the enter key.
#### Missing / not working shortcuts
Some of the shortcuts presented below are marked with the :warning: icon, which means, that they are
planned, but not yet implemented. Feel free to contribute and help us implement them!
Shortcuts marked with the :bangbang: icon should work, but are reported to be broken and require
further investigation.
## Graph Editor
#### General Shortcuts
| Shortcut | Action |
| -------- | ------ |
| cmd+alt+shift+t | Toggle light/dark application style. Currently doesn't work properly, as the Theme Switcher is not created yet. (https://github.com/enso-org/ide/issues/795)|
| ctrl+` | Show Code Editor |
| meta+s | Save module |
| cmd+q | Close the application (MacOS) |
| ctrl+q | Close the application (Linux) |
| alt+F4 | Close the application (MacOS, Windows, Linux) |
| ctrl+w | Close the application (Windows, Linux) |
#### 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 node name | Step into the node.
| :warning: LMB double press background | Step out of the current node.
| enter | Step in the last selected node.
| alt+enter | Step out of the current node.
#### Node Layout
| Shortcut | Action |
| -------- | ------ |
| LMB drag non-selected node name | Move the node to new position (dragging do not modify selection). |
| LMB drag selected node name | Move all selected nodes the node to new positions. |
#### Node Selection
| Shortcut | Action |
| --- | --- |
| LMB click node name | Deselect all nodes. Select the target node. |
| LMB click background | Deselect all nodes. |
| :warning: LMB drag background | Select nodes using selection-box. |
| shift + LMB click node name | Add / remove node to the selection group. |
| :warning: shift + LMB drag background | Add / remove nodes to the selection group. |
| :warning: *-arrow | Select node on the right side of the newest selected node. |
| :warning: cmd + a | Select all nodes. |
| :warning: escape | Deselect all nodes (if not in a mode, like edit mode). |
| shift + ctrl + LMB click node name | Add node to the selection group. |
| :warning: shift + ctrl + LMB drag background | Add nodes to the selection group. |
| shift + alt + LMB click node name | Remove node to the selection group. |
| :warning: shift + alt + LMB drag background | Remove nodes to the selection group. |
| shift + ctrl + alt + LMB click node name | Inverse node selection. |
| :warning: shift + ctrl + alt + LMB drag background | Inverse nodes selection. |
#### Node Editing
| Shortcut | Action |
| -------- | ------ |
| tab | Show / hide node searcher. |
| backspace | Remove selected nodes. |
| cmd+g | Collapse (group) selected nodes. |
| meta+LMB | Start editing node expression. |
| meta+enter | Start editing node expression. |
| enter or LMB on suggestion | Pick selected suggestion and commit editing. |
#### Visualization
| Shortcut | Action |
| -------- | ------ |
| space | Toggle visualization visibility of the selected node. |
| space hold | Preview visualization of the selected node (hide on release). |
| :warning: space double press | Toggle visualization fullscreen mode |
| ctrl + space | Cycle visualizations of the selected node. |
| :bangbang: cmd + \\ | Toggle documentation view visibility |
#### Visualizations Implementations
| Shortcut | Action |
| -------- | ------ |
| meta + a | Show all points if available in visualization. |
| meta + z | Zoom into selection if available in visualization. |
#### Debug
| Shortcut | Action |
| -------- | ------ |
| ctrl + alt + shift + i | Open the developer console. |
| ctrl + alt + shift + r | Reload the visual interface. |
| ctrl + alt + 0 - 10 | Switch between debug rendering modes (0 is the normal mode). |
| ctrl + alt + ` | Toggle profiling monitor (performance, memory usage, etc). |
| ctrl + d | Send test data to the selected node. |
| ctrl + shift + enter | Push a hardcoded breadcrumb without navigating. |
| ctrl + shift + arrow up | Pop a breadcrumb without navigating. |
| cmd + i | Reload visualizations. To see the effect in the currently shown visualizations, you need to switch to another and switch back. |