Keyboard shortcuts
Every keyboard shortcut in the Jotura desktop app, covering global chords, editor and formatting keys, tables, the file tree, and the Escape cascade.
This is the complete shortcut reference for the Jotura desktop app. Shortcuts fall into two groups that behave differently, and the tables make more sense once you know how each group reads the modifier keys.
How the modifier keys work
Jotura binds shortcuts in two separate layers, and they treat Cmd and Ctrl differently.
The global layer listens on the whole window and tests for either modifier. It accepts Cmd or Ctrl interchangeably on every platform, so Ctrl+P opens quick open on a Mac just as Cmd+P does. Every global chord also requires that Alt (Option) is not held.
The editor layer lives inside the note editor and uses the strict per-platform mapping. On macOS these chords need Cmd, and on Windows and Linux they need Ctrl, with no fallback to the other modifier.
The command palette prints a shortcut label next to some commands. That label is display text and binds nothing on its own. For three of the twenty-one commands the label is true only while the note editor has focus, which the editor section below spells out.
Global shortcuts are registered in the capture phase, so they run before the editor sees the key. The practical consequence is the Tab caveat below: Tab is claimed whenever a modifier is held, so it never reaches the editor in that state.
Global shortcuts
These fire from anywhere in the app, whether or not the editor has focus. The last column gives the name to type in the command palette, which is the only reliable way to find a command there.
| Action | macOS | Windows and Linux | Command palette name | Notes |
|---|---|---|---|---|
| Toggle the command palette | Cmd+Shift+P | Ctrl+Shift+P | Open Command Palette | Toggles, so the same chord closes it |
| Open the search page | Cmd+Shift+F | Ctrl+Shift+F | Search Vault | Opens the full search tab |
| Toggle quick open | Cmd+P | Ctrl+P | Open Quick Open | Matches file names and frontmatter aliases |
| Toggle the sidebar | Cmd+\ | Ctrl+\ | View: Toggle Sidebar | Left sidebar only |
| Close the active tab | Cmd+W | Ctrl+W | Close Tab | Does nothing when no tab is active |
| Reopen the last closed tab | Cmd+Shift+T | Ctrl+Shift+T | Reopen Recently Closed Tab | The list holds 30 entries per vault |
| Next tab | Cmd+Tab | Ctrl+Tab | Next Tab | See the caveat below |
| Previous tab | Cmd+Shift+Tab | Ctrl+Shift+Tab | Previous Tab | See the caveat below |
| Dismiss the top overlay | Escape | Escape | No command | Follows the cascade below |
Two caveats sit with the tab chords. First, the handler claims Tab whenever a modifier key is held, so Tab does not indent inside the editor while you hold Cmd or Ctrl. Second, macOS normally routes Cmd+Tab to the system application switcher before the app ever sees it. If that happens on your Mac, use Ctrl+Tab instead, which the global layer accepts on every platform. You can also run Next Tab or Previous Tab from the command palette.
Quick open and the search page do different jobs. Quick open matches file base names and the aliases a note declares in its frontmatter, and the search page searches content. Search covers the difference in full.
The Escape cascade
Escape resolves against a strict priority order and stops at the first match.
- If the command palette is open, close it.
- Otherwise, if the settings modal is open, close it.
- Otherwise, if quick open is open, close it.
- Otherwise, if the active tab is a search tab, close that tab.
If none of those apply, Escape falls through to whatever has focus.
Modal dialogs handle their own Escape separately, through a shared focus trap. That trap is why Escape also closes the share modal, the sign-in modal, the sync setup wizard, the sync unlock modal, the restore vault modal, the template picker, quick open, and the command palette.
The sync setup wizard behaves differently. Its enabling step cannot be closed at all, and closing on the recovery phrase step warns you first that the phrase will not be shown again.
Editor shortcuts
These chords are bound inside the editor, so they only fire while the note editor has focus. From a search tab, the file tree, or the dashboard, the chord itself does nothing.
| Action | macOS | Windows and Linux | Command palette name |
|---|---|---|---|
| Insert a link to another note | Cmd+L | Ctrl+L | Insert Link to Note… |
Insert an embed, ![[file]] |
Cmd+Shift+L | Ctrl+Shift+L | Insert Embed… |
| Set or edit a link on the selection | Cmd+K | Ctrl+K | No command |
| Toggle source mode | Cmd+Shift+E | Ctrl+Shift+E | Editor: Toggle Source Mode |
Three of these have a palette fallback. Insert Link to Note, Insert Embed and Editor: Toggle Source Mode all appear in the palette with their chord printed beside them, and running them from there reaches the editor by a different route. Cmd/Ctrl+K has no command at all, so there is no palette fallback for it. Its non-keyboard route is the Link button in the bubble menu that appears over a selection, which runs exactly the same logic.
The link chords produce different results. Cmd/Ctrl+L opens the note picker and inserts a wikilink such as [[Meeting notes]], or [[Meeting notes|the notes]] when you had text selected. Cmd/Ctrl+Shift+L opens the same picker in embed mode and inserts ![[Meeting notes]]. Cmd/Ctrl+K works on the current selection and writes a standard Markdown link instead.
Typing [[ opens the picker in link mode and typing ![[ opens it in embed mode, so neither chord is required. The picker matches file names and frontmatter aliases, and picking an alias inserts [[Note|Alias]]. See The editor.
Cmd/Ctrl+K opens a plain system prompt dialog labeled Link URL (leave empty to remove):, prefilled with the current link address when the selection already carries one. Submitting a value sets the link, submitting an empty value removes it, and canceling leaves the document untouched.
Source mode also has a button in the editor header labeled Source or Preview. See The editor for what changes between the two modes.
Formatting
Every formatting chord below is live in the note editor.
| Action | macOS | Windows and Linux |
|---|---|---|
| Bold | Cmd+B | Ctrl+B |
| Italic | Cmd+I | Ctrl+I |
| Strikethrough | Cmd+Shift+S | Ctrl+Shift+S |
| Inline code | Cmd+E | Ctrl+E |
| Heading 1 through 6 | Cmd+Option+1 to Cmd+Option+6 | Ctrl+Alt+1 to Ctrl+Alt+6 |
| Plain paragraph | Cmd+Option+0 | Ctrl+Alt+0 |
| Blockquote | Cmd+Shift+B | Ctrl+Shift+B |
| Code block | Cmd+Option+C | Ctrl+Alt+C |
| Bullet list | Cmd+Shift+8 | Ctrl+Shift+8 |
| Ordered list | Cmd+Shift+7 | Ctrl+Shift+7 |
| Task list | Cmd+Shift+9 | Ctrl+Shift+9 |
Highlight, ==text== |
Cmd+Shift+H | Ctrl+Shift+H |
Inline math, $...$ |
Cmd+Shift+M | Ctrl+Shift+M |
Inline comment, %% ... %% |
Cmd+Shift+/ | Ctrl+Shift+/ |
| Hard line break | Cmd+Enter or Shift+Enter | Ctrl+Enter or Shift+Enter |
| Undo | Cmd+Z | Ctrl+Z |
| Redo | Cmd+Y or Cmd+Shift+Z | Ctrl+Y or Ctrl+Shift+Z |
Backspace at the start of a blockquote lifts the line out of the quote rather than deleting backwards.
The slash menu offers headings 1 to 3 only. Headings 4, 5, and 6 are reachable with the chords above or by typing #### at the start of a line.
Highlight also has a button in the bubble menu over a selection. Callouts, math blocks, block comments, and footnotes have no chord; they are slash menu items, described in The editor.
Cmd/Ctrl+U is not bound. Markdown has no underline syntax, so the editor leaves underline out.
Lists and tasks
| Key | Effect |
|---|---|
| Enter in a non-empty item | Split the item and start a new one |
| Enter in an empty item | Leave the list entirely, in one press |
| Tab | Indent the item one level |
| Shift+Tab | Outdent the item one level |
| Backspace or Delete | List-aware join with the neighboring item |
| Cmd/Ctrl+Backspace or Cmd/Ctrl+Delete | List-aware delete across the item boundary |
The empty-item Enter rule fires only when the item holds no text and has nothing nested under it. An empty item that still holds a sublist does not exit the list, and Enter falls through to the ordinary split instead.
When the rule does fire, it exits the whole list in one press. An empty item nested two levels deep leaves the list entirely rather than outdenting one level at a time.
Typing - followed by [ ] or [x] converts a bullet into a task item. Clicking the checkbox toggles between todo and done, and right-clicking the checkbox offers Todo, Done, In progress, Cancelled, Forwarded, and Question, written as [ ], [x], [/], [-], [>], and [?]. Daily notes, tasks, and templates covers what happens to those tasks elsewhere in the app.
Tables
Tables override three keys inside a cell, and inherit the rest.
| Key | Effect |
|---|---|
| Tab | Move to the next cell. At the last cell this adds a row and moves into it. |
| Shift+Tab | Move to the previous cell |
| Enter | Insert a line break inside the cell instead of splitting the block |
| Cmd/Ctrl+Enter | Add a row below and move into the next cell |
| Cmd/Ctrl+Shift+Backspace | Delete the current row |
| Backspace, Delete, Cmd/Ctrl+Backspace, or Cmd/Ctrl+Delete | Delete the whole table when every cell is selected |
| Esc while dragging a column edge | Cancel the resize |
Cmd/Ctrl+Enter therefore does something different inside a table than it does in ordinary text, where it inserts a hard line break. Row and column insertion, deletion, alignment, and resizing are also available from the gutter handles around the table. Double-clicking a column edge fits that column to its content.
What Enter does, in order
Enter is claimed by several features, and they resolve in a fixed order. Inside a table cell, the table wins and inserts a line break. Otherwise, if the cursor sits in an empty list item that meets the condition above, the list exit rule wins. Otherwise, the list item splits. Everywhere else Enter starts a new paragraph.
Source mode
Source mode is a plain CodeMirror pane with the standard editing keymap plus undo and redo. Standard cursor and selection keys behave the way they do in any CodeMirror editor.
Undo and redo do not match the WYSIWYG editor exactly, because CodeMirror maps redo differently on macOS.
| Action | macOS | Windows and Linux |
|---|---|---|
| Undo | Cmd+Z | Ctrl+Z |
| Redo | Cmd+Shift+Z | Ctrl+Y, or Ctrl+Shift+Z on Linux |
Cmd+Y does nothing in source mode on a Mac, even though it redoes in the WYSIWYG editor.
There is no in-pane find in source mode. Cmd/Ctrl+F is not bound anywhere in the app, so to find text you use Cmd/Ctrl+Shift+F, which searches the whole vault rather than the open file. The same keymap applies to plain text files opened outside the Markdown editor.
File tree navigation
The file tree in the left sidebar is fully keyboard navigable. These keys work whenever focus is inside the tree.
| Key | Effect |
|---|---|
| Down arrow | Move to the next visible row |
| Up arrow | Move to the previous visible row |
| Right arrow | Expand a collapsed folder, or move down one row in an expanded folder. Does nothing on a file. |
| Left arrow | Collapse an expanded folder, or jump to the parent folder row |
| Enter | Open the focused file |
| F2 | Start renaming the focused row |
| Shift+Up or Shift+Down | Extend the selection |
| Cmd+A / Ctrl+A | Select every visible row |
| Cmd+X / Ctrl+X | Cut the selected rows |
| Cmd+V / Ctrl+V | Paste cut rows into the focused folder |
| Cmd+Z / Ctrl+Z | Undo the last move |
| Escape | Clear a multi-row selection or a pending cut |
Rows inside collapsed folders are skipped, so arrow navigation only walks what you can see.
Inline rename and create inputs share two keys and differ on a third. Enter submits and Escape cancels in both. Clicking away submits a rename but cancels a create. A create input preselects the file name up to the last dot so the extension survives typing, while a rename selects the whole name. Double-clicking a file row also starts a rename.
Resizing the sidebar
The divider between the left sidebar and the editor is reachable with Tab. Once it has focus, Left arrow and Right arrow resize the sidebar in 16 pixel steps. The width is clamped between 200 and 600 pixels, defaults to 300, and saves immediately.
The right sidebar resizes with the mouse only.
Moving through lists and menus
The overlay lists in the app take arrow keys and Enter, but they do not all wrap at the ends. The image context menu is the exception and takes only Escape.
| Surface | Keys | At the ends |
|---|---|---|
| Quick open | Up, Down, Enter | Stops |
| Command palette | Up, Down, Enter, Escape | Stops |
| Template picker | Up, Down, Enter | Stops |
| Link picker | Up, Down, Enter | Wraps around |
| Slash menu | Up, Down, Enter, Escape | Wraps around |
| Sidebar search pane | Up, Down, Enter, Escape | Stops |
| Image context menu | Escape | Not applicable |
Escape in the sidebar search pane blurs the input and returns focus to the Files pane rather than closing anything.
The slash menu does not handle Tab at all. Unlike the modal dialogs below, it lets the key through to whatever would normally receive it.
The search page ignores arrow keys: its results are ordinary buttons, and you move between them with Tab.
Inside any modal dialog, Tab cycles through the focusable elements and wraps at both ends, focus cannot escape the dialog, and closing it returns focus to wherever you were before.
Commands with no shortcut
Ten of the app’s twenty-one commands have no key binding at all. Open the command palette with Cmd/Ctrl+Shift+P and type a few letters of the name.
| Command | Group |
|---|---|
| Open Settings | App |
| Open Home | App |
| Open Agent Memory | Vault |
| Open Search Panel | Search |
| New Note (in vault root) | Files |
| New Note from Template… | Files |
| Share Current Note… | Files |
| History for Current Note | Files |
| Export as HTML… | Editor |
| Print / Save as PDF | Editor |
Share Current Note silently does nothing on a search, history, home or Agent Memory tab, and History for Current Note does nothing unless the active tab is a Markdown note. Sharing a note also requires a paid Sync subscription, which is priced on the pricing page.
Palette matching is a fuzzy subsequence search over the command name, so nft finds New Note from Template. See Settings reference, Version history, and Sync and sharing for what those commands open.
There is no save shortcut
Cmd/Ctrl+S is not bound to anything, because Jotura has no manual save. The editor writes to disk one second after you stop typing, and also flushes immediately when the editor loses focus or the window is hidden. Read-only tabs never become dirty and never write.
A dirty tab shows a single dot next to its title in the tab bar until the write lands. If you want to force a write before switching away, clicking outside the editor is enough.
Why the dashboard shows Mac symbols on Windows
The dashboard appears on the Home tab and whenever no tab is open, and it offers four quick action buttons: New note, Quick open, Search vault, and Command palette. Three of them print a shortcut hint, and every hint uses macOS symbols on every platform. A Windows or Linux user sees the Cmd glyph even though Ctrl is the key that works.
Those three chords are otherwise correct, because the global layer accepts either modifier. New note carries no hint because it has no key binding at all, and it is one of the ten palette-only commands listed above.
One card does not agree with its own hint. The Search vault button opens the sidebar search pane, while the chord printed beside it opens the search page as a tab. They are two different surfaces with the same name, and only the chord gives you the search page. Search explains what each one does, and Getting started walks through the other quick actions.