⋅𝕭𝖆𝖘𝖆𝖑𝖙⋅
CONFIGURATION

Key mappings

Key mappings can be modified or extended by defining them in the configuration file.

Each key mapping is associated with a specific pane and becomes active when that pane has focus. The global section applies to all panes and is evaluated first.

[global]
key_bindings = [
  { key = "q", command = "quit" },
  { key = "?", command = "help_modal_toggle" },
]

[explorer]
key_bindings = [
  { key = "k", command = "explorer_up" },
  { key = "j", command = "explorer_down" },
]

Key sequence syntax#

A key can be a single character, a named key, a modified key or a sequence of keystrokes. Sequences are written as a multi-character string and only fire when all keys are pressed in order with nothing in between. This makes it possible to define vim- or Helix-style bindings like gg.

[note_editor]
key_bindings = [
  { key = "gg", command = "note_editor_scroll_to_top" },
  { key = "G",  command = "note_editor_scroll_to_bottom" },
]

An uppercase letter like G is shorthand for shift+g. Shift is implied automatically.

Named keys in sequences#

A multi-character string splits into one keystroke per character, so a named key like space or enter cannot start a sequence directly (<space>f would otherwise read as the keys s p a c e ...). Wrap a named or modified key in <...> to group it into a single keystroke. This enables Helix-style leader bindings:

[global]
key_bindings = [
  { key = "<space>f",       command = "vault_selector_modal_toggle" },
  { key = "<space><space>", command = "help_modal_toggle" },
  { key = "<ctrl+w>q",      command = "quit" },
]

< and > are reserved for this syntax; bind the literal keys with <lt> and <gt>.

Leader key#

<leader> is a placeholder for a prefix key of your choosing, so a whole set of bindings can be moved to a different prefix by changing one line. It defaults to <space> and is set at the top level of the configuration file:

leader = ","

[global]
key_bindings = [
  { key = "<leader>f", command = "explorer_toggle" },
]

The leader applies to the defaults as well as to your own bindings, so the above turns Space v into ,v, Space d into ,d, and binds ,f on top.

Default bindingCommand
<leader>sToggle full-text search
<leader>vToggle vault selector modal
<leader>dToggle debug log overlay
<leader>eOpen the note in vi
<leader>oOpen the note in Obsidian

The leader may be any key, including a modified one (leader = "ctrl+w") or a sequence (leader = "gs"), and it may appear more than once in a binding (<leader><leader>). It cannot refer to itself: leader = "<leader>" is an error.

Available commands#

Global commands#

CommandDescription
quitExit the application
search_toggleToggle full-text search
vault_selector_modal_toggleToggle vault selector modal
help_modal_toggleToggle help modal
tab_nextFocus the next open note tab
tab_previousFocus the previous open note tab
tab_closeClose the active note tab

Splash commands#

CommandDescription
splash_upMove selector up
splash_downMove selector down
splash_openOpen the selected vault

Explorer commands#

CommandDescription
explorer_upMove selector up
explorer_downMove selector down
explorer_openOpen selected note in note editor
explorer_sortToggle sort between A-z and Z-a
explorer_toggleToggle explorer pane
explorer_toggle_outlineToggle outline pane
explorer_toggle_input_renameOpen rename dialog for selected item
explorer_new_untitled_noteCreate a new untitled note
explorer_new_untitled_folderCreate a new untitled folder
explorer_hide_paneHide pane (stepped)
explorer_expand_paneExpand pane (stepped)
explorer_switch_pane_nextSwitch focus to next pane
explorer_switch_pane_previousSwitch focus to previous pane
explorer_scroll_up_oneScroll selector up by one
explorer_scroll_down_oneScroll selector down by one
explorer_scroll_up_half_pageScroll selector up half a page
explorer_scroll_down_half_pageScroll selector down half a page
explorer_scroll_to_topJump to the first item
explorer_scroll_to_bottomJump to the last item

Outline commands#

CommandDescription
outline_upMove selector up
outline_downMove selector down
outline_toggleToggle outline pane
outline_toggle_explorerToggle explorer pane
outline_switch_pane_nextSwitch focus to next pane
outline_switch_pane_previousSwitch focus to previous pane
outline_expandExpand or collapse heading
outline_selectJump to heading in editor

Note editor commands#

CommandDescription
note_editor_cursor_upMove cursor up
note_editor_cursor_downMove cursor down
note_editor_scroll_up_oneScroll up by one
note_editor_scroll_down_oneScroll down by one
note_editor_scroll_up_half_pageScroll up half page
note_editor_scroll_down_half_pageScroll down half page
note_editor_scroll_to_topJump to the top of the note
note_editor_scroll_to_bottomJump to the bottom of the note
note_editor_toggle_explorerToggle explorer pane
note_editor_toggle_outlineToggle outline pane
note_editor_switch_pane_nextSwitch focus to next pane
note_editor_switch_pane_previousSwitch focus to previous pane
note_editor_cursor_screen_upMove cursor up one visible row
note_editor_cursor_screen_downMove cursor down one visible row
note_editor_follow_linkFollow the link under the cursor

note_editor_cursor_up and note_editor_cursor_down move by whole line, so a soft-wrapped line counts once. note_editor_cursor_screen_up and note_editor_cursor_screen_down move by visible row instead, which matches vim gk and gj.

note_editor_follow_link travels to the note a wiki-link names and creates that note when it does not exist. On a plain URL it opens your browser.

Experimental editor commands#

CommandDescription
note_editor_experimental_set_edit_viewSwitch to edit view
note_editor_experimental_toggle_viewToggle between edit and read
note_editor_experimental_set_read_viewSwitch to read view
note_editor_experimental_saveSave note changes
note_editor_experimental_exitCancel editing, switch to read
note_editor_experimental_cursor_leftMove cursor left
note_editor_experimental_cursor_rightMove cursor right
note_editor_experimental_cursor_word_forwardMove cursor forward by word
note_editor_experimental_cursor_word_backwardMove cursor backward by word
note_editor_insert_modeEnter insert mode
note_editor_appendEnter insert mode after the cursor
note_editor_visual_modeStart a charwise selection
note_editor_visual_line_modeStart a linewise selection

note_editor_experimental_set_edit_mode, note_editor_experimental_set_read_mode and note_editor_experimental_exit_mode are deprecated aliases of the _view and _exit commands above. They still work but will be removed in the next major version.

Vim mode motions#

These commands need vim_mode = true in [note_editor]. They act in Normal mode. The key in brackets is the default binding from the vim preset.

CommandDescription
note_editor_cursor_line_startMove to the start of the line (0)
note_editor_cursor_first_non_blankMove to the first non-blank character (^)
note_editor_cursor_line_endMove to the end of the line ($)
note_editor_cursor_doc_startMove to the start of the note (gg)
note_editor_cursor_doc_endMove to the end of the note (G)
note_editor_cursor_word_endMove to the end of the word (e)
note_editor_cursor_word_forward_bigMove forward by whitespace-delimited word (W)
note_editor_cursor_word_backward_bigMove backward by whitespace-delimited word (B)
note_editor_cursor_word_end_bigMove to the end of the whitespace-delimited word (E)
note_editor_paragraph_forwardMove to the next paragraph (})
note_editor_paragraph_backwardMove to the previous paragraph ({)
note_editor_matching_pairJump to the matching bracket (%)
note_editor_find_forwardJump forward to the next typed character (f)
note_editor_find_backwardJump backward to the next typed character (F)
note_editor_till_forwardJump forward, stopping before the character (t)
note_editor_till_backwardJump backward, stopping after the character (T)
note_editor_repeat_findRepeat the last find (;)
note_editor_repeat_find_reverseRepeat the last find in reverse (,)

Vim mode operators and edits#

CommandDescription
note_editor_deleteDelete operator; takes a motion (d)
note_editor_changeChange operator; deletes then enters insert (c)
note_editor_yankYank operator; copies to the clipboard (y)
note_editor_delete_under_cursorDelete the character under the cursor (x)
note_editor_delete_to_line_endDelete to the end of the line (D)
note_editor_change_to_line_endChange to the end of the line (C)
note_editor_substitute_charDelete the character and enter insert mode (s)
note_editor_replace_charReplace the character with the next one typed (r)
note_editor_paste_afterPaste after the cursor (p)
note_editor_paste_beforePaste before the cursor (P)
note_editor_undoUndo the last change (u)
note_editor_redoRedo the undone change (Ctrl+R)

Theme selector modal commands#

CommandDescription
theme_selector_modal_toggleToggle the theme picker
theme_selector_modal_upMove selector up and preview the theme
theme_selector_modal_downMove selector down and preview the theme
theme_selector_modal_openKeep the highlighted theme and close the picker
theme_selector_modal_closeClose the picker and revert to the previous theme

Debug log commands#

CommandDescription
debug_log_toggleToggle the debug log overlay
debug_log_closeClose the debug log overlay
debug_log_clearClear all captured log entries
debug_log_cycle_levelCycle the minimum visible level (trace → error)
debug_log_scroll_up_oneScroll up by one
debug_log_scroll_down_oneScroll down by one
debug_log_scroll_up_half_pageScroll up half page
debug_log_scroll_down_half_pageScroll down half page

Input modal commands#

CommandDescription
input_modal_edit_modeEnter edit mode for typing
input_modal_acceptAccept changes and close modal
input_modal_cancelCancel and close modal
input_modal_leftMove cursor left
input_modal_rightMove cursor right
input_modal_word_forwardMove cursor forward by word
input_modal_word_backwardMove cursor backward by word

Help modal commands#

CommandDescription
help_modal_toggleToggle help modal
help_modal_closeClose help modal
help_modal_scroll_up_oneScroll up by one
help_modal_scroll_down_oneScroll down by one
help_modal_scroll_up_half_pageScroll up half page
help_modal_scroll_down_half_pageScroll down half page

Vault selector modal commands#

CommandDescription
vault_selector_modal_upMove selector up
vault_selector_modal_downMove selector down
vault_selector_modal_closeClose vault selector modal
vault_selector_modal_openOpen selected vault
vault_selector_modal_toggleToggle vault selector modal