Skip to main content

Keyboard shortcuts

Keep your hands on the keyboard while you build: add a widget, group a few, run your app or undo a mistake without reaching for the mouse. This page lists the editor's shortcuts, grouped by where you use them. You don't need to learn them all at once. Start with these five:

  • Ctrl/Cmd + K opens the Library so you can add a widget.
  • Ctrl/Cmd + Z undoes your last change.
  • Ctrl/Cmd + G groups the selected widgets.
  • Ctrl/Cmd + P runs your app in the Embedded preview.
  • Ctrl/Cmd + . shows the Shortcuts sheet, in case you forget the rest.

Most shortcuts use Ctrl on Windows and Linux and Cmd on macOS, so the tables below list both. On a Mac, tooltips and menus show Control as ⌃, Option as ⌥, Shift as ⇧ and Cmd as ⌘, always in that order, as in ⇧⌘Z or ⌥⌘]. On Windows and Linux they show Ctrl, Alt and ⇧ in the same order. You can't change the shortcuts.

tip

Hover a board tool, or open a right-click menu, to see its shortcut next to the name.

Open the Shortcuts sheet​

The editor has a built-in cheat sheet with common shortcuts, handy while you're still learning them.

  1. Click the keyboard icon (Shortcuts) at the bottom of the left sidebar, or press Ctrl + . (Cmd + . on macOS). The sheet opens over the editor.
  2. Close it with the same keys, the close button, Esc or a click outside the sheet.

The sheet shows its shortcuts in four groups, General, Tab Actions, Widgets and Designer, and leaves out many that are on this page. Tab Actions holds Back, Forward and Boards. Designer holds Add a widget and Go to a widget. Widgets holds Bring forward, Send backward, Bring to front and Send to back.

Two entries don't match what the keys really do:

Sheet entryThe sheet showsWhat happens
Show/Hide panelsCtrl/Cmd + \Not bound to anything. To open or close a sidebar panel, use Ctrl/Cmd and a number, as in Sidebar panels.
Group/UngroupCtrl/Cmd + GIt only groups. To ungroup, right-click the group and choose Ungroup.

General​

These work across the project editor. Some act on the area you're in.

ActionWindows / LinuxmacOS
Save (shows Saved!)Ctrl + SCmd + S
UndoCtrl + ZCmd + Z
RedoCtrl + Shift + Z or Ctrl + YCmd + Shift + Z or Cmd + Y
Open Action HistoryCtrl + Shift + HCmd + Shift + H
Copy the selected widgetsCtrl + CCmd + C
Cut the selected widgetsCtrl + XCmd + X
Paste widgets you copied, or an image or text from another appCtrl + VCmd + V
Remove the selection, such as widgets and board items on the board, files in Files (code mode), or routes in RouterDeleteBackspace (⌫)
Go to a widget: in the designer, open the Library with its search ready (the field reads Go to...). In code mode, open Search for a fileCtrl + OCmd + O
Open SettingsCtrl + ,Cmd + ,
Show or hide the Shortcuts sheetCtrl + .Cmd + .
Open the Boards list with its search ready (not in code mode or the Run view)Ctrl + BCmd + B
Back: go back to the editor you were in before, like a browser's back buttonCtrl + -Control + -
Forward: go forward againCtrl + Shift + -Control + Shift + -

The Library has no Delete key: right-click a row and choose Delete. Back and Forward step through the editors you opened and keep your last 50 places. The Back and Forward arrows in the top bar do the same and grey out when there's nowhere to go. They're hidden in code mode and in the Run view, where the keys still work.

Undo and Redo work on the area you're in, and each area keeps its own history: every board or open screen, the Library, Files (code mode), Themes, Api, the Router editor and Circuit. So undoing in Circuit doesn't touch your design on the board. Action History lists the changes of that area. Click an entry to undo it and every change after it.

Press Ctrl (Cmd on macOS) and a number to open a panel. Press the keys again to close it.

PanelWindows / LinuxmacOS
AssistantCtrl + 1Cmd + 1
Library (Files in code mode)Ctrl + 2Cmd + 2
ThemesCtrl + 3Cmd + 3
SearchCtrl + 4 or Ctrl + Shift + FCmd + 4 or Cmd + Shift + F
GitCtrl + 5Cmd + 5
OutlineCtrl + 6Cmd + 6
ApiCtrl + 7Cmd + 7
SupabaseCtrl + 8Cmd + 8

Router has no shortcut. In the playground, and in a public project you open as a guest, there's no Git panel, so the panels after Search move up one number.

Design on the board​

These work on a board, on a screen or component opened on its own, and in the Outline panel. See Select, move and resize and Add widgets for what they do.

ActionWindows / LinuxmacOS
Add a widget: open the Library with its search ready (the field reads Add...). The shortcut does nothing while the Library has the focus: click the board first. Enter inserts the highlighted resultCtrl + KCmd + K
Switch to the Select toolVV
Switch to the Shape tool (draws a Container)RR
Switch to the Text toolTT
Select all: the selected widget and its siblings, or every board item when nothing or a board item is selectedCtrl + ACmd + A
Zoom the board to the selectionFF
Group the selected widgetsCtrl + GCmd + G
Bring forward: move the selected widget one step later in its parentCtrl + ]Cmd + ]
Send backward: move it one step earlierCtrl + [Cmd + [
Bring to front: move it to the last placeAlt + Ctrl + ]Option + Cmd + ]
Send to back: move it to the first placeAlt + Ctrl + [Option + Cmd + [
Nudge a widget you place freely (in a Stack, where widgets sit on top of each other, or loose on the board) by 1 px← ↑ → ↓← ↑ → ↓
Nudge by 10 pxShift + an arrow keyShift + an arrow key
Move a widget one place inside a Row (← →) or a Column (↑ ↓)an arrow keyan arrow key
Open the screen or component that holds the selection on its ownCtrl + ICmd + I
Create a board (opens New Board)Ctrl + Shift + BCmd + Shift + B
Finish editing text on the boardEscEsc

In a Stack, later widgets are drawn in front, so ] brings a widget forward and [ sends it back. To ungroup, right-click the group and choose Ungroup.

Mouse and trackpad​

ActionWindows / LinuxmacOS
Pan the boardScroll, or slide two fingers on a trackpadScroll, or slide two fingers on a trackpad
Pan sidewaysShift + scrollShift + scroll
Pan by draggingHold Space and drag, or drag with the middle mouse buttonHold Space and drag, or drag with the middle mouse button
Zoom toward the pointerCtrl + scroll, or pinch on a trackpadCmd + scroll, or pinch on a trackpad
Select several itemsDrag a box on an empty part of the boardDrag a box on an empty part of the board
Add to the selection (board, Outline, screen and component titles)Shift + clickShift + click
Select a range in Files (code mode)Shift + clickShift + click
Add or remove one item in Files (code mode)Ctrl + clickCmd + click
Select the innermost widget under the pointerCtrl + clickCmd + click
Select the widget inside the selected one, or edit a Text widget's textDouble-clickDouble-click
Zoom the board to a widgetDouble-click it in OutlineDouble-click it in Outline
Rename a screen or componentDouble-click its title, type, press EnterDouble-click its title, type, press Enter
Move along one axis onlyHold Shift while draggingHold Shift while dragging
Drag a copy of the selectionHold Alt while draggingHold Option while dragging
Keep the proportions while resizing, or while drawing with Shape or TextHold ShiftHold Shift
Resize or draw from the centerHold AltHold Option
Close a tab in code modeMiddle-click the tabMiddle-click the tab

Snapping is off while you hold Shift or Alt/Option to resize. For more on panning and zooming, see Work with boards.

Run your app​

ActionWindows / LinuxmacOS
Run your app in the Embedded preview (from a board or an open screen or component)Ctrl + PCmd + P
Restart the app while the Embedded preview is openShift + RShift + R
Show the app fullscreen while the Embedded preview is openCtrl + FCmd + F

The restart key does what the restart button in the top bar does: it puts your latest saved changes into the running app. In a local project that's Hot Reload, which updates the app in place. In a cloud project it's Hot Restart, which starts the app again. Instant Play has no shortcut: hover a screen's title and click Play. See Run your app and Play your app on the board.

Chat with Nowa AI​

These work in the chat field of the AI Assistant panel. See Chat with Nowa AI and Give Nowa AI context.

ActionWindows / LinuxmacOS
Send your messageEnterReturn
Add a new lineShift + Enter or Ctrl + EnterShift + Return or Cmd + Return
Delete the previous wordAlt + BackspaceOption + Backspace (⌫)
Paste text or an imageCtrl + VCmd + V
Mention a screen, component or classType @, pick with ↑ ↓ and EnterType @, pick with ↑ ↓ and Return
Close the mention listEscEsc

Pickers​

Pickers are search lists with a field at the top, such as Search for a file (code mode), the widget picker dialog, the template picker and Add context in the AI chat. Type to filter the list, then use these keys.

ActionWindows / LinuxmacOS
Move through the results↑ ↓↑ ↓
Choose the highlighted resultEnterReturn
Go back one step (when the search field is empty and the footer shows to cancel selected action)BackspaceBackspace (⌫)
Close the pickerEscEsc

The search at the top of the Library works like a picker, with a few extras.

ActionWindows / LinuxmacOS
Move down through the results. While you type, the first result is already highlighted, so the first press goes to the second↓↓
Go back to the search from the first result. The first press stops on its group heading, and the next one reaches the search↑↑
Act on the highlighted result: open it when the field reads Go to..., insert it when it reads Add...EnterReturn
Do the other one: insert it when the field reads Go to..., open it when it reads Add...Ctrl + EnterCmd + Return
Clear the search. On an empty search, give the keys back to the board so shortcuts work againEscEsc
Jump from a row into the search. The letter you type stays selected, so the next one replaces itType a letter, digit or symbolType a letter, digit or symbol
Rename the row you're onF2F2
Put the details card awayEscEsc

Circuit​

These work in the Circuit logic editor, where each step of your logic is a node.

ActionWindows / LinuxmacOS
Select the previous or next node↑ ↓↑ ↓
Move the selected node up or downShift + ↑ or ↓Shift + ↑ or ↓
Remove the selected nodeBackspace (Delete works too)Backspace (⌫)
UndoCtrl + ZCmd + Z
RedoCtrl + Shift + Z or Ctrl + YCmd + Shift + Z or Cmd + Y

Tabs in code mode​

In code mode, files open as tabs. See Edit code in Nowa.

ActionWindows / LinuxmacOS
Open a New Tab (only one can be open)Ctrl + TCmd + T
Go to the next tabCtrl + TabControl + Tab
Go to the previous tabCtrl + Shift + TabControl + Shift + Tab
Close the current tabCtrl + WCmd + W

On macOS, switching tabs uses Control, not Cmd. In the designer, Ctrl/Cmd + W closes the board or screen you're on and shows Nothing is open.

Code editor​

These work in the code editor in code mode.

ActionWindows / LinuxmacOS
SaveCtrl + SCmd + S
FindCtrl + FCmd + F
ReplaceCtrl + Alt + FCmd + Option + F
Turn match case (Aa) on or off in FindCtrl + Alt + CCmd + Option + C
Turn regular expressions (.*, search patterns) on or off in FindCtrl + Alt + RCmd + Option + R
Close FindEscEsc
Comment or uncomment the lineCtrl + /Cmd + /
Comment or uncomment a blockCtrl + Shift + /Cmd + Shift + /
Delete the lineCtrl + DCmd + D
Select the lineCtrl + LCmd + L
Move the line up or downAlt + ↑ or ↓Option + ↑ or ↓
Indent or outdentTab or Shift + TabTab or Shift + Tab
Go to the definition of a name (Dart files)Ctrl + clickCmd + click

Select all, cut, copy, paste and undo use the usual keys (Ctrl/Cmd + A, X, C, V, Z). Redo is Ctrl/Cmd + Shift + Z. Home, End and the arrow keys move the cursor.

When a shortcut does nothing​

  • Focus. Designer shortcuts work when the board or Outline has focus. Click the board or an item on it first.
  • Typing. While you type in a field, the tool keys (V, R, T), F, the arrow keys, [ and ], select all, copy, cut, paste, remove, undo and redo are ignored, so they don't change your design by accident.
  • Playing. Designer shortcuts are off while an item plays on the board. Click Stop, then try again.
  • View only. If you have the View Only role, only copy, the two tab-switching keys and Ctrl/Cmd + W work. Panning and zooming still work.
  • Pop-ups. Ctrl/Cmd + O and Ctrl/Cmd + K don't open while the Shortcuts sheet or a picker is already open.
  • Browser. A browser keeps some combinations for itself, such as Ctrl/Cmd + W, so a few shortcuts may not reach the web app. Use the buttons instead.

Two exceptions in Nowa 3.13 go the other way: a / you type in a Details field doesn't appear, and while you name something in the Variables list, the letters t, r, v and f can trigger board shortcuts instead of typing. Known issues has a workaround for each: the / in Details and the letters in the Variables list.

If you used an older version​

If you learned Nowa from older videos, tutorials or an older Shortcuts sheet, two shortcuts may not do what you remember:

You may knowNow
Ctrl/Cmd + P opens the widget pickerIt runs your app in the Embedded preview. To add a widget, press Ctrl/Cmd + K, which opens the Library ready to search.
Ctrl/Cmd + G groups and ungroupsIt only groups. To ungroup, right-click the group and choose Ungroup.

Next steps​