# Keyboard Shortcuts

## Default Keymaps

| Command                                        | MacOS            | Windows           | Linux             |
| ---------------------------------------------- | ---------------- | ----------------- | ----------------- |
| File > New                                     | `Cmd+N`          | `Ctrl+N`          | `Ctrl+N`          |
| File > Open                                    | `Cmd+O`          | `Ctrl+O`          | `Ctrl+O`          |
| File > Save                                    | `Cmd+S`          | `Ctrl+S`          | `Ctrl+S`          |
| File > Save As                                 | `Cmd+Shift+S`    | `Ctrl+Shift+S`    | `Ctrl+Shift+S`    |
| File > Preferences                             | `Cmd+,`          | n/a               | n/a               |
| File > Quit                                    | `Cmd+Q`          | `Ctrl+Q`          | `Ctrl+Q`          |
| Edit > Undo                                    | `Cmd+Z`          | `Ctrl+Z`          | `Ctrl+Z`          |
| Edit > Redo                                    | `Cmd+Y`          | `Ctrl+Y`          | `Ctrl+Y`          |
| Edit > Cut                                     | `Cmd+X`          | `Ctrl+X`          | `Ctrl+X`          |
| Edit > Copy                                    | `Cmd+C`          | `Ctrl+C`          | `Ctrl+C`          |
| Edit > Copy Diagram As Image                   | `Cmd+Shift+C`    | `Ctrl+Shift+C`    | `Ctrl+Shift+C`    |
| Edit > Paste                                   | `Cmd+V`          | `Ctrl+V`          | `Ctrl+V`          |
| Edit > Delete                                  | `Delete`         | `Delete`          | `Delete`          |
| Edit > Delete from Model                       | `Cmd+Delete`     | `Ctrl+Delete`     | `Ctrl+Delete`     |
| Edit > Move Up                                 | `Cmd+Shift+Up`   | `Ctrl+Shift+Up`   | `Ctrl+Shift+Up`   |
| Edit > Move Down                               | `Cmd+Shift+Down` | `Ctrl+Shift+Down` | `Ctrl+Shift+Down` |
| Edit > Select All                              | `Cmd+A`          | `Ctrl+A`          | `Ctrl+A`          |
| Edit > Select In Explorer                      | `Cmd+E`          | `Ctrl+E`          | `Ctrl+E`          |
| Edit > Select In Diagram                       | `Cmd+D`          | `Ctrl+D`          | `Ctrl+D`          |
| Format > Font                                  | `Cmd+Shift+F`    | `Ctrl+Shift+F`    | `Ctrl+Shift+F`    |
| Format > Fill Color                            | `Cmd+Shift+I`    | `Ctrl+Shift+I`    | `Ctrl+Shift+I`    |
| Format > Line Color                            | `Cmd+Shift+L`    | `Ctrl+Shift+L`    | `Ctrl+Shift+L`    |
| Format > Line Style > Rectilinear              | `Cmd+L`          | `Ctrl+L`          | `Ctrl+L`          |
| Format > Line Style > Oblique                  | `Cmd+B`          | `Ctrl+B`          | `Ctrl+B`          |
| Format > Line Style > RoundRect                | `Cmd+Option+L`   | `Ctrl+Alt+L`      | `Ctrl+Alt+L`      |
| Format > Line Style > Curve                    | `Cmd+Option+B`   | `Ctrl+Alt+B`      | `Ctrl+Alt+B`      |
| Format > Auto Resize                           | `Cmd+Shift+R`    | `Ctrl+Shift+R`    | `Ctrl+Shift+R`    |
| Format > Show Shadow                           | `Cmd+Shift+H`    | `Ctrl+Shift+H`    | `Ctrl+Shift+H`    |
| Format > Stereotype Display > None             | `Cmd+Shift+0`    | `Ctrl+Shift+0`    | `Ctrl+Shift+0`    |
| Format > Stereotype Display > Label            | `Cmd+Shift+1`    | `Ctrl+Shift+1`    | `Ctrl+Shift+1`    |
| Format > Stereotype Display > Decoration       | `Cmd+Shift+2`    | `Ctrl+Shift+2`    | `Ctrl+Shift+2`    |
| Format > Stereotype Display > Decoration Label | `Cmd+Shift+3`    | `Ctrl+Shift+3`    | `Ctrl+Shift+3`    |
| Format > Stereotype Display > Icon             | `Cmd+Shift+4`    | `Ctrl+Shift+4`    | `Ctrl+Shift+4`    |
| Format > Stereotype Display > Icon Label       | `Cmd+Shift+5`    | `Ctrl+Shift+5`    | `Ctrl+Shift+5`    |
| Format > Word Wrap                             | `Cmd+Shift+W`    | `Ctrl+Shift+W`    | `Ctrl+Shift+W`    |
| Format > Show Visibility                       | `Cmd+Shift+V`    | `Ctrl+Shift+V`    | `Ctrl+Shift+V`    |
| Format > Show Namespace                        | `Cmd+Shift+N`    | `Ctrl+Shift+N`    | `Ctrl+Shift+N`    |
| Format > Show Property                         | `Cmd+Shift+P`    | `Ctrl+Shift+P`    | `Ctrl+Shift+P`    |
| Format > Show Type                             | `Cmd+Shift+Y`    | `Ctrl+Shift+Y`    | `Ctrl+Shift+Y`    |
| Format > Show Multiplicity                     | `Cmd+Shift+M`    | `Ctrl+Shift+M`    | `Ctrl+Shift+M`    |
| Format > Show Operation Signature              | `Cmd+Shift+G`    | `Ctrl+Shift+G`    | `Ctrl+Shift+G`    |
| Format > Suppress Attributes                   | `Cmd+Shift+A`    | `Ctrl+Shift+A`    | `Ctrl+Shift+A`    |
| Format > Suppress Operations                   | `Cmd+Shift+O`    | `Ctrl+Shift+O`    | `Ctrl+Shift+O`    |
| Format > Suppress Receptions                   | `Cmd+Shift+E`    | `Ctrl+Shift+E`    | `Ctrl+Shift+E`    |
| Format > Suppress Literals                     | `Cmd+Shift+T`    | `Ctrl+Shift+T`    | `Ctrl+Shift+T`    |
| Format > Suppress Columns                      | `Cmd+Shift+U`    | `Ctrl+Shift+U`    | `Ctrl+Shift+U`    |
| Model > Find                                   | `Cmd+F`          | `Ctrl+F`          | `Ctrl+F`          |
| View > Close Diagram                           | `F4`             | `F4`              | `F4`              |
| View > Close Other Diagrams                    | `Cmd+F4`         | `Ctrl+F4`         | `Ctrl+F4`         |
| View > Close All Diagrams                      | `Shift+F4`       | `Shift+F4`        | `Shift+F4`        |
| View > Next Diagram                            | `Cmd+Shift+]`    | `Ctrl+Shift+]`    | `Ctrl+Shift+]`    |
| View > Previous Diagram                        | `Cmd+Shift+[`    | `Ctrl+Shift+[`    | `Ctrl+Shift+[`    |
| View > Zoom In                                 | `Cmd++`          | `Ctrl++`          | `Ctrl++`          |
| View > Zoom Out                                | `Cmd+-`          | `Ctrl+-`          | `Ctrl+-`          |
| View > Actual Size                             | `Cmd+0`          | `Ctrl+0`          | `Ctrl+0`          |
| View > Fit To Window                           | `Cmd+Option+1`   | `Ctrl+Alt+1`      | `Ctrl+Alt+1`      |
| View > Show Grid                               | `Cmd+G`          | `Ctrl+G`          | `Ctrl+G`          |
| View > Sidebar                                 | `Cmd+1`          | `Ctrl+1`          | `Ctrl+1`          |
| View > Navigator                               | `Cmd+2`          | `Ctrl+2`          | `Ctrl+2`          |
| View > Toolbar                                 | `Cmd+3`          | `Ctrl+3`          | `Ctrl+3`          |
| View > Statusbar                               | `Cmd+4`          | `Ctrl+4`          | `Ctrl+4`          |
| View > Toolbox                                 | `Cmd+5`          | `Ctrl+5`          | `Ctrl+5`          |
| View > Editors                                 | `Cmd+6`          | `Ctrl+6`          | `Ctrl+6`          |
| View > Diagram Thumbnails                      | `Cmd+Option+T`   | `Ctrl+Alt+T`      | `Ctrl+Alt+T`      |
| View > Markdown Documentation                  | `Cmd+Option+D`   | `Ctrl+Alt+D`      | `Ctrl+Alt+D`      |
| View > Minimap                                 | `Cmd+Option+M`   | `Ctrl+Alt+M`      | `Ctrl+Alt+M`      |
| View > Relationships                           | `Cmd+Option+R`   | `Ctrl+Alt+R`      | `Ctrl+Alt+R`      |
| Debug > Show DevTools                          | `Shift+Option+T` | `Shift+Alt+T`     | `Shift+Alt+T`     |
| Debug > Reload                                 | `Cmd+R`          | `Ctrl+R`          | `Ctrl+R`          |

## Making Custom Keymaps

If you want to make custom keymaps, you can create `keymap.json` at the user configuration path:

* `/Users/<user>/Library/Application Support/StarUML` for Mac OS.
* `C:\Users\<user>\AppData\Roaming\StarUML` for Windows.
* `~/.config/StarUML` for Linux.

You can get how to edit the custom keymap file (`keymap.json`) at [Keymaps](https://docs.staruml.io/v3/developing-extensions/keymaps).

Here is an example:

```javascript
{
  "cmdctrl-alt-1": null,
  "cmdctrl-alt-g": "view:show-grid"
}
```

The first entry is to release the `Ctrl+Alt+1` (`Cmd+Option+1` in MacOS) key binding and the second entry is to change key binding of **View > Show Grid** (Command ID is `view:show-grid`) to `Ctrl+Alt+G` (`Cmd+Option+G` in MacOS).

If you want to know all command IDs, enter the following expression at **Console** (Debug > Show DevTools > Console tab).

```javascript
Object.keys(app.commands.commands)
```
