Keyboard reference
Generated by cargo xtask keyboard from crates/textweaver-keymap; do not edit by hand.
The in-app keyboard help shows the same table with your own overrides applied.
What changed
In 0.1.0-alpha.6: F10 opens the menus in the terminal, as F10 does in Windows programs (File, Edit, View, Reading, Speech, Tools, and Help). Previous chapter keeps Alt+PageUp and Shift+D; next chapter keeps F11, Alt+PageDown, and d. On macOS the GUI uses Mac keys, not Ctrl renamed: Option with the arrows moves by word and paragraph, Command with the arrows goes to the ends of the line and the document, Command runs commands, and nothing takes VoiceOver's Ctrl+Option (see the GUI on macOS column). New keys: Ctrl+F9 cycles the interface announcements (off, minimal, normal, full), Ctrl+Shift+F9 starts and stops dictation, and Shift+F1 says what the next key does.
In 0.1.0-alpha.4 the default keys became the quick navigation keys of NVDA's and JAWS's browse mode. To keep the earlier keys, set preset = "classic" under [keyboard] in settings.toml (see the classic preset). Old key, then where its command went, in the terminal:
.(next sentence): nowAlt+DownorAlt+...says the current sentence.,(previous sentence): nowAlt+UporAlt+,.,says the current paragraph.s(say the sentence): now.orAlt+Shift+S.smoves to the next separator.Shift+S(say the paragraph): now,.Shift+Smoves to the previous separator.l(say the line): nowAlt+Shift+L(Ctrl+Lin the GUI).lmoves to the next list.oandShift+O(next and previous list): nowlandShift+L.odoes nothing.Shift+H(history back): nowBackspaceorAlt+Left.Shift+Hmoves to the previous heading.Shift+L(history forward): now\orAlt+Right.Shift+Lmoves to the previous list.k(scroll up): nowShift+J.kmoves to the next link.Shift+K(say the link address): nowAlt+Shift+K.Shift+Kmoves to the previous link.qandShift+Q(quit): nowCtrl+Qonly, which still asks first.qmoves to the next block quote.Alt+DownandAlt+Up(next and previous note): nowF12andShift+F12, oreandShift+E.Alt+DownandAlt+Upmove by sentence.'and"(next and previous note): removed; useeandShift+E.Alt+Shift+D(add a reference, terminal): nowAlt+B, because Windows Terminal splits its window withAlt+Shift+D. The GUI keepsAlt+Shift+D.Alt+Shift+UpandAlt+Shift+Down(RSVP faster and slower) stay, andAlt+Shift+PageUpandAlt+Shift+PageDowndo the same, because Windows Terminal resizes panes with the first two.
New keys: g and Shift+G (graphics), d and Shift+D (sections or chapters), Ctrl+Down and Ctrl+Up (paragraphs), Alt+Shift+Q (citations on or off while reading), Alt+Shift+X (explore math), Alt+Shift+Z (syllables), and Alt+Shift+J (difficult words). p and Shift+P still move by paragraph: NVDA's and JAWS's p is paragraph too. Say position stays on Shift+W.
Quick navigation, as in NVDA and JAWS
In browse mode, a letter moves to the next item of a kind, and Shift with the letter to the previous one. textweaver follows NVDA's letters:
h: heading.1to6: heading at that level.l: list.i: list item.t: table.k: link (utoo).q: block quote.s: separator (a horizontal rule).g: graphic (an image).d: section or chapter, the nearest thing a document has to a landmark.Backspace: back to where you were before the last jump.
Where JAWS differs:
- JAWS moves between links with
u(unvisited) andv(visited), and itskmoves between place markers. In textweaverualso moves by link; place markers are bookmarks (b). - JAWS's
qmoves to the main region, not a block quote. - JAWS moves to a separator with the dash key. In textweaver the dash makes speech slower; use
s. - JAWS moves between regions (landmarks) with
r, and itsdmoves to the next different element. In textweaverrreads the paragraph again; usedfor sections. - Sentences with
Alt+DownandAlt+Up, and paragraphs withCtrl+DownandCtrl+Up, are JAWS's keys; NVDA uses the same paragraph keys.
Help keys
?in browse mode lists the keyboard shortcuts in both frontends; the GUI also opens that list with F3.- F1 opens the help in both frontends.
- In the terminal, F3 is Find next and F4 Find previous, as in star's terminal reader, so the terminal's keyboard list is on
?only.
Modes and layers
Every binding belongs to a layer. What a key does depends on the mode you are in:
| Mode | Layers searched, in order |
|---|---|
| Reading (browse) | browse, then global |
| Speech Cursor | speech cursor, then browse, then global |
| Editing | edit, then global; other keys type text |
| Find and command prompts | global only; the prompt takes the text you type |
Browse keys are single keys, like a screen reader's browse mode, and work the same in both frontends.
Global chords work in every mode. Speech Cursor keys take over browse keys with the same name while Speech Cursor is on (for example j reads the next line instead of scrolling).
In the tables below a key without a note is global; the others name their layer. The GUI column shows Windows and Linux. The GUI on macOS column shows the Mac's own keys: Command for commands, Option with the arrows for words and paragraphs, Command with the arrows for the ends, and Command+Option for the chords that use Alt with a letter elsewhere, because Option with a letter types a character on a Mac.
Single-key shortcuts
Browse keys are single printable keys. Speech recognition, dictation, and switch or scanning keyboards can type them by accident, so they can be turned off (WCAG 2.1.4, Character Key Shortcuts): press F9, run toggle character keys from the command palette, or set this in settings.toml:
[keyboard]
character_keys = false
While they are off, printable keys and Space never trigger commands in any mode; chords with Ctrl or Alt, the arrow and function keys, and the command palette (F2) keep working. Quitting and deleting a note or highlight always ask first ("Quit textweaver? y or n"), however you start them, so a stray q cannot close a document. The actions listed at the end of this page have only single keys; with single-key shortcuts off, run them from the command palette or give them a chord in keymap.toml.
Changing keys
Put overrides in keymap.toml in the configuration directory. Each line replaces all of an action's keys; an empty list removes them:
next_sentence = ["Alt+.", "x"]
stop = ["Escape", "b:Shift+Z"]
bold = []
A key may name its layer with a prefix: g: global, b: browse, s: Speech Cursor, e: edit.
Without a prefix, a single character goes to the browse layer (so it never gets in the way of typing), and any other chord goes to the action's usual layer.
textweaver warns about unknown actions, keys it cannot read, and keys a terminal cannot send, and keeps going. A key your overrides would bind to two commands in one mode is not applied; the warning names it.
Terminal notes
- Terminals cannot send
Ctrl+H(it is Backspace),Ctrl+I(Tab),Ctrl+MorCtrl+J(Enter),Ctrl+Shift+a letter (it arrives asCtrl+the letter), orCtrlwith digits and most punctuation. The terminal defaults avoid all of them; the browse keys cover what the GUI does with those chords. - F10 opens textweaver's menus. Some terminal programs keep F10 or F11 (full screen) for themselves; then run
menufrom the command palette (F2), and move by chapter withAlt+PageDownandAlt+PageUp. Shiftwith the arrow keys extends the selection in browse mode; most terminals send these keys, but some terminal programs keepShift+UpandShift+Downfor scrolling their own window.Altchords work in the terminal. star's terminal reader lost them to the Escape key; textweaver reads them directly.- The keys
1to6move to the next heading of that level, and Shift with the digit to the previous one, as in a screen reader's browse mode. The tables show Shift with a digit as the character a US keyboard types (!@#$%^); textweaver matches the digit key itself, whatever your layout types. On Windows (Windows Terminal and the classic console) it reads the key from the console, so every layout works, including French AZERTY, where the digit row types&é"without Shift. Elsewhere terminals send only the character, so textweaver knows the shifted digits of the US, UK, German, Spanish, Nordic, and Italian layouts ("£§·¤and&as well as the US ones). French AZERTY types the digits only with Shift, so outside Windows setdigit_row = "azerty"under[keyboard]: then&é"'(-are the digit keys 1 to 6, and the digits typed with Shift go back.
Reading
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Play or pause reading from the current word | Alt+P, Space (browse) |
Ctrl+Shift+Space, Space (browse) |
Cmd+Shift+Space, Space (browse) |
play_pause |
| Stop reading, or finish editing when nothing is being read | Escape, Ctrl+X (browse) |
Escape |
Escape |
stop |
| Read continuously from the cursor | Ctrl+Space, Enter (browse) |
Ctrl+Space, Enter (browse) |
Cmd+Enter, Enter (browse) |
read_from_cursor |
| Read the whole document from the start | Shift+R (browse) |
Shift+R (browse) |
Shift+R (browse) |
read_document |
| Say the character at the cursor | Alt+Shift+C, c (browse) |
Ctrl+Shift+C, c (browse) |
Cmd+Shift+C, c (browse) |
read_current_character |
| Say the word at the cursor | Alt+Shift+W, w (browse) |
Ctrl+Shift+W, w (browse) |
Cmd+Shift+W, w (browse) |
read_current_word |
| Say the sentence at the cursor without moving | Alt+Shift+S, . (browse) |
Ctrl+Shift+E, . (browse) |
Cmd+Shift+E, . (browse) |
read_current_sentence |
| Say the line at the cursor | Alt+Shift+L |
Ctrl+L |
Cmd+L |
read_current_line |
| Say the paragraph at the cursor without moving | , (browse) |
, (browse) |
, (browse) |
read_paragraph |
| Read the selected text | v (browse) |
v (browse) |
v (browse) |
read_selection |
| Say the position: line, percentage, word number, and heading | Alt+Shift+Y, Shift+W (browse) |
Alt+Shift+Y, Shift+W (browse) |
Cmd+Option+Shift+Y, Shift+W (browse) |
say_position |
| Say the last message again, then the status: mode, reading state, position, rate, and speech engine; in a list, the list's introduction | Alt+End, z (browse) |
Alt+End, z (browse) |
Option+End, z (browse) |
say_status |
| Say the last message again | Alt+', ' (browse) |
Alt+', ' (browse) |
Cmd+Option+', ' (browse) |
repeat_message |
| Say how many words are in the document, or in the selection | Alt+Shift+T |
Alt+Shift+T |
Cmd+Option+Shift+T |
word_count |
| Say the address of the link at the cursor | Alt+Shift+K |
Alt+Shift+K |
Cmd+Option+Shift+K |
link_address |
| Read again from the start of the current sentence | Alt+;, ; (browse) |
Alt+;, ; (browse) |
Cmd+Option+;, ; (browse) |
replay_sentence |
| Read again from the start of the current paragraph | Ctrl+R, r (browse) |
Ctrl+R, r (browse) |
Cmd+R, r (browse) |
replay_paragraph |
| Say the sentence at the cursor again more slowly, then go back to the usual rate | Shift+X (browse) |
Shift+X (browse) |
Shift+X (browse) |
repeat_sentence_slower |
| Show or hide RSVP: one word at a time, from the cursor | Alt+Shift+R |
Alt+Shift+R |
Cmd+Option+Shift+R |
rsvp_toggle |
| Start or pause RSVP | Alt+Shift+P |
Alt+Shift+P |
Cmd+Option+Shift+P |
rsvp_play_pause |
| RSVP faster | Alt+Shift+Up, Alt+Shift+PageUp |
Alt+Shift+Up, Alt+Shift+PageUp |
Option+Shift+Up, Option+Shift+PageUp |
rsvp_faster |
| RSVP slower | Alt+Shift+Down, Alt+Shift+PageDown |
Alt+Shift+Down, Alt+Shift+PageDown |
Option+Shift+Down, Option+Shift+PageDown |
rsvp_slower |
| Move the RSVP word to the next place on the screen | Alt+Shift+O |
Alt+Shift+O |
Cmd+Option+Shift+O |
rsvp_position_next |
| Say the reading level of the document or the selection | Alt+Shift+G |
Alt+Shift+G |
Cmd+Option+Shift+G |
reading_level |
| Say the document's title, how many headings, tables, pictures, and footnotes it has, and about how many minutes are left | palette | palette | palette | document_overview |
| Change what reading says: the full text, the first sentence of each paragraph with the headings, or the headings only | Shift+F (browse) |
Shift+F (browse) |
Shift+F (browse) |
reading_pass |
| Define the word at the cursor, or the selected words: senses, examples, synonyms, and pronunciation | Alt+E |
Ctrl+Shift+D |
Cmd+Shift+D |
define_word |
| Summarize the selection, the chapter, or the document: its most central sentences in a list; Enter goes to one | palette | palette | palette | summarize |
| Turn citations on or off in continuous reading: off skips them, on says them in words | Alt+Shift+Q |
Alt+Shift+Q |
Cmd+Option+Shift+C |
toggle_citations |
| Switch a talking book between its recorded narration and speech | palette | palette | palette | toggle_book_audio |
| Explore the math at the cursor term by term: arrows move, Down goes into a part, Up comes out, Escape leaves | Alt+Shift+X |
Alt+Shift+X |
Cmd+Option+Shift+X |
explore_math |
| Listen to the document as it will render, without leaving edit mode | palette | palette | palette | listen_rendered |
Navigation
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Move to the next sentence | Alt+., Alt+Down |
Alt+., Alt+Down |
Cmd+Option+. |
next_sentence |
| Move to the previous sentence, or to the start of this one when more than three words in | Alt+,, Alt+Up |
Alt+,, Alt+Up |
Cmd+Option+, |
previous_sentence |
| Move to the next paragraph | Ctrl+P, p (browse), ] (browse), Ctrl+Down (browse), PageDown (speech cursor) |
Ctrl+P, p (browse), ] (browse), Ctrl+Down (browse), PageDown (speech cursor) |
Option+Down, p (browse), ] (browse), PageDown (speech cursor) |
next_paragraph |
| Move to the previous paragraph | Shift+P (browse), [ (browse), Ctrl+Up (browse), PageUp (speech cursor) |
Ctrl+Shift+P, Shift+P (browse), [ (browse), Ctrl+Up (browse), PageUp (speech cursor) |
Option+Up, Shift+P (browse), [ (browse), PageUp (speech cursor) |
previous_paragraph |
| Read from the next heading | > (browse) |
Ctrl+H, > (browse) |
Cmd+Option+PageDown, > (browse) |
next_heading |
| Read from the previous heading | < (browse) |
Ctrl+Shift+H, < (browse) |
Cmd+Shift+H, Cmd+Option+PageUp, < (browse) |
previous_heading |
| Move to the next heading without reading | Alt+H, h (browse), } (browse) |
h (browse), } (browse) |
h (browse), } (browse) |
skip_next_heading |
| Move to the previous heading without reading | Alt+Shift+H, Shift+H (browse), { (browse) |
Shift+H (browse), { (browse) |
Shift+H (browse), { (browse) |
skip_previous_heading |
| List the headings: type to filter, Enter jumps to one | Alt+O |
Alt+O |
Cmd+Option+O |
outline |
| Move to the next heading at level 1 | 1 (browse) |
1 (browse) |
1 (browse) |
next_heading_level_1 |
| Move to the next heading at level 2 | 2 (browse) |
2 (browse) |
2 (browse) |
next_heading_level_2 |
| Move to the next heading at level 3 | 3 (browse) |
3 (browse) |
3 (browse) |
next_heading_level_3 |
| Move to the next heading at level 4 | 4 (browse) |
4 (browse) |
4 (browse) |
next_heading_level_4 |
| Move to the next heading at level 5 | 5 (browse) |
5 (browse) |
5 (browse) |
next_heading_level_5 |
| Move to the next heading at level 6 | 6 (browse) |
6 (browse) |
6 (browse) |
next_heading_level_6 |
| Move to the previous heading at level 1 | ! (browse) |
! (browse) |
! (browse) |
previous_heading_level_1 |
| Move to the previous heading at level 2 | @ (browse) |
@ (browse) |
@ (browse) |
previous_heading_level_2 |
| Move to the previous heading at level 3 | # (browse) |
# (browse) |
# (browse) |
previous_heading_level_3 |
| Move to the previous heading at level 4 | $ (browse) |
$ (browse) |
$ (browse) |
previous_heading_level_4 |
| Move to the previous heading at level 5 | % (browse) |
% (browse) |
% (browse) |
previous_heading_level_5 |
| Move to the previous heading at level 6 | ^ (browse) |
^ (browse) |
^ (browse) |
previous_heading_level_6 |
| Move to the next table | t (browse) |
Ctrl+T, t (browse) |
Cmd+Option+T, t (browse) |
next_table |
| Move to the previous table | Shift+T (browse) |
Ctrl+Shift+T, Shift+T (browse) |
Cmd+Shift+T, Shift+T (browse) |
previous_table |
| Move to the next list | l (browse) |
l (browse) |
l (browse) |
next_list |
| Move to the previous list | Shift+L (browse) |
Shift+L (browse) |
Shift+L (browse) |
previous_list |
| Move to the next list item | i (browse) |
i (browse) |
i (browse) |
next_list_item |
| Move to the previous list item | Shift+I (browse) |
Shift+I (browse) |
Shift+I (browse) |
previous_list_item |
| Move to the next link | k (browse), u (browse) |
k (browse), u (browse) |
k (browse), u (browse) |
next_link |
| Move to the previous link | Shift+K (browse), Shift+U (browse) |
Shift+K (browse), Shift+U (browse) |
Shift+K (browse), Shift+U (browse) |
previous_link |
| Move to the next block quote | q (browse) |
q (browse) |
q (browse) |
next_block_quote |
| Move to the previous block quote | Shift+Q (browse) |
Shift+Q (browse) |
Shift+Q (browse) |
previous_block_quote |
| Move to the next separator (horizontal rule) | s (browse) |
s (browse) |
s (browse) |
next_separator |
| Move to the previous separator (horizontal rule) | Shift+S (browse) |
Shift+S (browse) |
Shift+S (browse) |
previous_separator |
| Move to the next graphic (image) | g (browse) |
g (browse) |
g (browse) |
next_graphic |
| Move to the previous graphic (image) | Shift+G (browse) |
Shift+G (browse) |
Shift+G (browse) |
previous_graphic |
| Follow the link at the cursor, or go between a footnote and its note | Alt+Shift+F |
Alt+Shift+F |
Cmd+Option+Shift+F |
follow_link |
| In a table, move down a row in the same column | Ctrl+Alt+Down |
Ctrl+Alt+Down |
Cmd+Option+Down |
table_next_row |
| In a table, move up a row in the same column | Ctrl+Alt+Up |
Ctrl+Alt+Up |
Cmd+Option+Up |
table_previous_row |
| In a table, move to the next cell in the row | Ctrl+Alt+Right |
Ctrl+Alt+Right |
Cmd+Option+Right |
table_next_column |
| In a table, move to the previous cell in the row | Ctrl+Alt+Left |
Ctrl+Alt+Left |
Cmd+Option+Left |
table_previous_column |
| Move to the next chapter or section | F11, Alt+PageDown, d (browse) |
Alt+PageDown, d (browse) |
Option+PageDown, d (browse) |
next_chapter |
| Move to the previous chapter or section | Alt+PageUp, Shift+D (browse) |
Alt+PageUp, Shift+D (browse) |
Option+PageUp, Shift+D (browse) |
previous_chapter |
| Go back to where you were before the last jump | Alt+Left, Backspace (browse) |
Alt+Left, Backspace (browse) |
Cmd+[, Backspace (browse) |
history_back |
| Go forward again after going back | Alt+Right, \ (browse) |
Alt+Right, \ (browse) |
Cmd+], \ (browse) |
history_forward |
| Go to a line, percentage, or position | Ctrl+G |
Ctrl+G |
Cmd+G |
go_to |
| Move to the start of the document | Ctrl+Home, Home (browse) |
Ctrl+Home, Home (browse) |
Cmd+Up, Home (browse) |
document_start |
| Move to the end of the document | Ctrl+End, End (browse) |
Ctrl+End, End (browse) |
Cmd+Down, End (browse) |
document_end |
| Move the cursor to the next word | Right (browse) |
Right (browse) |
Right (browse), Option+Right (browse) |
caret_next_word |
| Move the cursor to the previous word | Left (browse) |
Left (browse) |
Left (browse), Option+Left (browse) |
caret_previous_word |
| Move the cursor to the next line | Down (browse) |
Down (browse) |
Down (browse) |
caret_next_line |
| Move the cursor to the previous line | Up (browse) |
Up (browse) |
Up (browse) |
caret_previous_line |
| Extend the selection to the next word | Shift+Right (browse) |
Shift+Right (browse) |
Shift+Right (browse), Option+Shift+Right (browse) |
select_next_word |
| Extend the selection to the previous word | Shift+Left (browse) |
Shift+Left (browse) |
Shift+Left (browse), Option+Shift+Left (browse) |
select_previous_word |
| Extend the selection to the next line | Shift+Down (browse) |
Shift+Down (browse) |
Shift+Down (browse) |
select_next_line |
| Extend the selection to the previous line | Shift+Up (browse) |
Shift+Up (browse) |
Shift+Up (browse) |
select_previous_line |
| Move down one screen | PageDown (browse) |
PageDown (browse) |
PageDown (browse) |
page_down |
| Move up one screen | PageUp (browse) |
PageUp (browse) |
PageUp (browse) |
page_up |
| Scroll down one line without moving the cursor | j (browse) |
j (browse) |
j (browse) |
scroll_down |
| Scroll up one line without moving the cursor | Shift+J (browse) |
Shift+J (browse) |
Shift+J (browse) |
scroll_up |
Speech Cursor
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Enter or leave Speech Cursor (line) mode | Tab (browse), Tab (speech cursor) |
Alt+Shift+S (browse), Alt+Shift+S (speech cursor) |
Cmd+Option+Shift+S (browse), Cmd+Option+Shift+S (speech cursor) |
speech_cursor_toggle |
| Speech Cursor: read the next line | Down (speech cursor), j (speech cursor) |
Down (speech cursor), j (speech cursor) |
Down (speech cursor), j (speech cursor) |
speech_cursor_next_line |
| Speech Cursor: read the previous line | Up (speech cursor), k (speech cursor) |
Up (speech cursor), k (speech cursor) |
Up (speech cursor), k (speech cursor) |
speech_cursor_previous_line |
| Speech Cursor: read the current line again | r (speech cursor) |
r (speech cursor) |
r (speech cursor) |
speech_cursor_reread_line |
| Speech Cursor: leave and read on from this line | Enter (speech cursor) |
Enter (speech cursor) |
Enter (speech cursor) |
speech_cursor_exit_and_read |
Voice
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Speak faster | + (browse), = (browse) |
+ (browse), = (browse) |
Cmd+Option+], + (browse), = (browse) |
rate_up |
| Speak slower | - (browse) |
- (browse) |
Cmd+Option+[, - (browse) |
rate_down |
| Raise the pitch | Alt+=, ) (browse) |
Alt+=, ) (browse) |
Cmd+Option+Shift+Up, ) (browse) |
pitch_up |
| Lower the pitch | Alt+-, ( (browse) |
Alt+-, ( (browse) |
Cmd+Option+Shift+Down, ( (browse) |
pitch_down |
| Louder | F7, 0 (browse) |
F7, 0 (browse) |
F7, 0 (browse) |
volume_up |
| Quieter | Shift+F7, 9 (browse) |
Shift+F7, 9 (browse) |
Shift+F7, 9 (browse) |
volume_down |
| Cycle the speed presets (skim, normal, study, slow) | F8 |
F8 |
F8 |
cycle_speed_preset |
| Choose a voice | Alt+V, Ctrl+Alt+V |
Ctrl+Alt+V |
Cmd+Option+V |
choose_voice |
| Restart speech with the current settings (after the speech engine stopped working) | Shift+F8 |
Shift+F8 |
Shift+F8 |
restart_speech |
| Cycle how much textweaver says: low, normal, high | Alt+Shift+V |
Alt+Shift+V |
Cmd+Option+Shift+V |
cycle_verbosity |
| Cycle how much punctuation is spoken: none, some, all | Alt+Shift+N |
Alt+Shift+N |
Cmd+Option+Shift+N |
cycle_punctuation |
Search
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Find text in the document | Ctrl+F, / (browse) |
Ctrl+F, / (browse) |
Cmd+F, / (browse) |
find |
| Find the next match | F3, n (browse) |
F3, n (browse) |
F3, n (browse) |
find_next |
| Find the previous match | F4, Shift+N (browse) |
Shift+F3, Shift+N (browse) |
Shift+F3, Shift+N (browse) |
find_previous |
| Choose how Find and Replace match: case, whole words, regular expression, across lines | palette | palette | palette | search_options |
| Move to the next misspelled word, and spell it | Alt+M |
Alt+M |
Cmd+; |
next_misspelling |
| Move to the previous misspelled word, and spell it | Alt+Shift+M |
Alt+Shift+M |
Cmd+Option+Shift+M |
previous_misspelling |
| List suggestions for the misspelled word at the cursor, or add it to your word list | Alt+J |
Alt+J |
Cmd+Option+J |
spelling_suggestions |
| Move to the next grammar problem, and say it and its fix | Ctrl+F7 |
Ctrl+F7 |
Cmd+F7 |
next_grammar_problem |
| Move to the previous grammar problem, and say it and its fix | Ctrl+Shift+F7 |
Ctrl+Shift+F7 |
Cmd+Shift+F7 |
previous_grammar_problem |
| In edit mode, move to the next Markdown lint problem, and say it | Ctrl+F8 |
Ctrl+F8 |
Cmd+F8 |
next_lint_problem |
| In edit mode, move to the previous Markdown lint problem, and say it | Ctrl+Shift+F8 |
Ctrl+Shift+F8 |
Cmd+Shift+F8 |
previous_lint_problem |
Bookmarks and notes
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Add a bookmark at the cursor | m (browse) |
Ctrl+M, m (browse) |
Cmd+D, m (browse) |
add_bookmark |
| List bookmarks | Shift+M (browse) |
Shift+M (browse) |
Shift+M (browse) |
list_bookmarks |
| Move to the next bookmark | b (browse) |
b (browse) |
b (browse) |
next_bookmark |
| Move to the previous bookmark | Shift+B (browse) |
Shift+B (browse) |
Shift+B (browse) |
previous_bookmark |
| Add a note to the selection or the sentence at the cursor | Alt+N, a (browse) |
Alt+N, a (browse) |
Cmd+Option+N, a (browse) |
add_note |
| List notes | Shift+A (browse) |
Ctrl+Shift+N, Shift+A (browse) |
Cmd+Shift+N, Shift+A (browse) |
list_notes |
| Move to the next note | F12, e (browse) |
F12, e (browse) |
F12, e (browse) |
next_note |
| Move to the previous note | Shift+F12, Shift+E (browse) |
Shift+F12, Shift+E (browse) |
Shift+F12, Shift+E (browse) |
previous_note |
| Delete the note or highlight at the cursor | Delete (browse) |
Delete (browse) |
Delete (browse) |
delete_note |
| Highlight the selection, or the sentence at the cursor | y (browse) |
y (browse) |
y (browse) |
highlight_selection |
| Highlight the selection or the sentence with a name chosen from the highlight palette | palette | palette | palette | highlight_as |
| Highlight with the palette's first name, or remove that highlight | Alt+1 (browse) |
Alt+1 (browse) |
Cmd+Option+1 (browse) |
highlight_name_1 |
| Highlight with the palette's second name, or remove that highlight | Alt+2 (browse) |
Alt+2 (browse) |
Cmd+Option+2 (browse) |
highlight_name_2 |
| Highlight with the palette's third name, or remove that highlight | Alt+3 (browse) |
Alt+3 (browse) |
Cmd+Option+3 (browse) |
highlight_name_3 |
| Highlight with the palette's fourth name, or remove that highlight | Alt+4 (browse) |
Alt+4 (browse) |
Cmd+Option+4 (browse) |
highlight_name_4 |
| Highlight with the palette's fifth name, or remove that highlight | Alt+5 (browse) |
Alt+5 (browse) |
Cmd+Option+5 (browse) |
highlight_name_5 |
| Write the highlights of one name as a Markdown list | palette | palette | palette | collect_highlights |
| Export the notes and highlights as a Markdown study sheet, grouped by heading | palette | palette | palette | export_study_sheet |
| Export the study sheet with the highlights grouped by name | palette | palette | palette | export_study_sheet_by_name |
| List the tracked changes and comments: Enter goes to one, A accepts a change, R rejects it | Alt+A |
Ctrl+Shift+J |
Cmd+Shift+J |
list_changes |
| Accept every tracked change in the document | palette | palette | palette | accept_all_changes |
| Reject every tracked change in the document | palette | palette | palette | reject_all_changes |
| Add a comment to the selection or the sentence at the cursor | palette | palette | palette | add_comment |
| Test yourself on the notes and highlights: Enter shows each answer | palette | palette | palette | self_test |
| Save the accepted and rejected changes and the comments into the Word file, keeping a copy of the original first | palette | palette | palette | save_changes_to_word |
| Make study cards from the notes, the highlights, and their headings | palette | palette | palette | make_cards |
| Study the cards: Enter shows the answer, 1 to 4 grade it | palette | palette | palette | study_cards |
| List the study cards: Enter goes to a card's source, Delete removes it | palette | palette | palette | list_cards |
| Grade the card being studied: Again, not recalled | palette | palette | palette | grade_again |
| Grade the card being studied: Hard, recalled with effort | palette | palette | palette | grade_hard |
| Grade the card being studied: Good, recalled | palette | palette | palette | grade_good |
| Grade the card being studied: Easy, recalled at once | palette | palette | palette | grade_easy |
| Export the study cards as an Anki package, saved beside the document | palette | palette | palette | export_cards_anki |
| Import study cards from an Anki package into this document's cards | palette | palette | palette | import_cards_anki |
File
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Open a document | Ctrl+O |
Ctrl+O |
Cmd+O |
open |
| Open a document by typing its path | none | Ctrl+Shift+G |
Cmd+Shift+G |
open_path |
| Open the library: documents in your library folders and recent files | Alt+L |
Ctrl+Shift+B |
Cmd+Shift+B |
open_library |
| Continue reading: the documents on this computer with a saved place, from any computer, newest first | palette | palette | palette | continue_reading |
| Review list: the documents you have read, the one read longest ago first | palette | palette | palette | review_list |
| Reading queue: the documents to read next, in order | palette | palette | palette | reading_queue |
| Add the document to the reading queue, or take it out | palette | palette | palette | queue_document |
| Add a folder to the library: choose it in the file browser | palette | palette | palette | add_library_folder |
| Edit the document's details: title, author, DOI, and ISBN | palette | palette | palette | edit_document_details |
| Start a new document in edit mode | Ctrl+N |
Ctrl+N |
Cmd+N |
new_document |
| Save (Markdown and text in place; other formats as Markdown) | Ctrl+S |
Ctrl+S |
Cmd+S |
save |
| Save under a new name | Alt+S |
Ctrl+Shift+S |
Cmd+Shift+S |
save_as |
| Export settings and key overrides to a JSON or TOML file | Alt+Shift+E |
Alt+Shift+E |
Cmd+Option+Shift+E |
export_settings |
| Import settings from a JSON or TOML file, after a yes or no | Alt+Shift+I |
Alt+Shift+I |
Cmd+Option+Shift+I |
import_settings |
| List reading statistics: time read, the furthest point, sessions, and the most read documents | Alt+Y |
Ctrl+Shift+Y |
Cmd+Option+Y |
reading_statistics |
| Start a new document from a template, with a title, author, date, and References heading | palette | palette | palette | new_from_template |
| Export the document as a web page (HTML), choosing where to save it | palette | palette | palette | export_html |
| Export the document as a tagged PDF, choosing where to save it | palette | palette | palette | export_pdf |
| Export the document as a Word file (DOCX), choosing where to save it | palette | palette | palette | export_docx |
| Export the document as an EPUB book, choosing where to save it | palette | palette | palette | export_epub |
| Export the document as braille (BRF), choosing where to save it | palette | palette | palette | export_brf |
| Export the knowledge graph: every link between notes, as a Markdown list, JSON, DOT, GraphML, Mermaid, PlantUML, or CSV | palette | palette | palette | export_knowledge_graph |
| Preview the document in the web browser, with math; each save rewrites the preview | palette | palette | palette | preview_in_browser |
| Browse files and archives: Enter opens a folder, an archive, or a document; Backspace goes up | palette | palette | palette | browse_files |
| Convert a folder of documents to another format, in the background | palette | palette | palette | batch_convert |
| Export the document as spoken audio: MP3, FLAC, Opus, WAV, or an M4B audiobook | palette | palette | palette | export_audio |
| Export a read-along page: one HTML file with the text and its audio, the spoken word marked as it plays | palette | palette | palette | export_read_along |
| Set up sync: choose the sync folder, name this computer, and choose what syncs | palette | palette | palette | sync_setup |
| Say how sync stands (up to date, the folder missing, or a problem) and name the other computers | Shift+F5 |
Shift+F5 |
Shift+F5 |
sync_status |
| Sync now: send this computer's changes and take the other computers' for every document | palette | palette | palette | sync_now |
| List the other computers' places in this document; Enter goes to one | palette | palette | palette | sync_go_to_place |
| List notes replaced by another computer's newer edit; Enter puts one back | palette | palette | palette | sync_replaced_notes |
| Stop syncing on this computer; the sync folder is left as it is | palette | palette | palette | sync_stop |
| Quit, saving the reading position | Ctrl+Q |
Ctrl+Q |
Cmd+Q |
quit |
Editing
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Switch between reading and editing | Ctrl+E |
Ctrl+E |
Cmd+E |
toggle_edit_mode |
| In edit mode, switch between the Markdown source and the reading view of the same document, at the same place | Shift+F4 |
none | none | toggle_preview |
| Undo | Ctrl+Z (edit) |
Ctrl+Z (edit) |
Cmd+Z (edit) |
undo |
| Redo | Ctrl+Y (edit) |
Ctrl+Y (edit), Ctrl+Shift+Z (edit) |
Cmd+Y (edit), Cmd+Shift+Z (edit) |
redo |
| Make the selection bold | Ctrl+B (edit) |
Ctrl+B (edit) |
Cmd+B (edit) |
bold |
| Make the selection italic | Alt+I (edit) |
Ctrl+I (edit) |
Cmd+I (edit) |
italic |
| Underline the selection | Ctrl+U (edit) |
Ctrl+U (edit) |
Cmd+U (edit) |
underline |
| Strike through the selection | Alt+D (edit) |
Ctrl+Shift+X (edit) |
Cmd+Shift+X (edit) |
strikethrough |
| Mark the selection as code | Alt+` (edit) |
Ctrl+` (edit) |
Cmd+Option+K (edit) |
inline_code |
| Make the selected lines a code block | Alt+K (edit) |
Ctrl+Shift+K (edit) |
Cmd+Shift+K (edit) |
code_block |
| Make the selection a link | Ctrl+K (edit) |
Ctrl+K (edit) |
Cmd+K (edit) |
insert_link |
| Make the current line a heading | Alt+1 (edit) |
Ctrl+Alt+1 (edit) |
Cmd+Option+1 (edit) |
heading |
| Make the selected lines a bulleted list | Alt+8 (edit) |
Ctrl+Shift+L (edit) |
Cmd+Shift+L (edit) |
bullet_list |
| Make the selected lines a numbered list | Alt+7 (edit) |
Ctrl+Shift+O (edit) |
Cmd+Shift+O (edit) |
numbered_list |
| Make the selected lines a block quote | Alt+9 (edit) |
Ctrl+Shift+Q (edit) |
Cmd+Option+Q (edit) |
block_quote |
| Insert a horizontal rule | Alt+R (edit) |
Ctrl+Shift+R (edit) |
Cmd+Shift+R (edit) |
horizontal_rule |
| Insert a table | Alt+T (edit) |
Ctrl+Shift+A (edit) |
Cmd+Shift+A (edit) |
insert_table |
| Add a row to the table at the cursor | Alt+W (edit) |
Ctrl+Shift+Enter (edit) |
Cmd+Shift+Enter (edit) |
add_table_row |
| Insert an image | Alt+G (edit) |
Ctrl+Shift+I (edit) |
Cmd+Shift+I (edit) |
insert_image |
| Find and replace | Alt+F (edit) |
Ctrl+Shift+F (edit) |
Cmd+Shift+F (edit) |
replace |
| Copy the selection, or the sentence at the cursor, to the clipboard | Ctrl+C |
Ctrl+C |
Cmd+C |
copy |
| Cut the selection to the clipboard | Ctrl+X (edit) |
Ctrl+X (edit) |
Cmd+X (edit) |
cut |
| In a table, move to the next cell and say its column; elsewhere, type a tab | Tab (edit) |
Tab (edit) |
Tab (edit) |
next_table_cell |
| In a table, move to the previous cell and say its column | Shift+Tab (edit) |
Shift+Tab (edit) |
Shift+Tab (edit) |
previous_table_cell |
| Cycle typing echo: characters and words, characters, words, or none | Shift+F9 |
Shift+F9 |
Shift+F9 |
cycle_typing_echo |
| Select all the text | Ctrl+A (edit) |
Ctrl+A (edit) |
Cmd+A (edit) |
select_all |
| Delete the word before the cursor | Alt+Backspace (edit) |
Ctrl+Backspace (edit) |
Option+Backspace (edit) |
delete_word_before |
| Delete the word after the cursor | Ctrl+Delete (edit) |
Ctrl+Delete (edit) |
Option+Delete (edit) |
delete_word_after |
| Paste the clipboard; formatted text from a browser or word processor becomes Markdown | Ctrl+V (edit) |
Ctrl+V (edit) |
Cmd+V (edit) |
paste |
| Paste the clipboard as plain text, keeping none of its formatting | Alt+Q (edit) |
Ctrl+Shift+V (edit), Ctrl+Shift+M (edit) |
Cmd+Shift+V (edit), Cmd+Shift+M (edit) |
paste_plain_text |
| Insert a citation: pick a reference, then give a page or other locator | Alt+C (edit) |
Alt+C (edit) |
Cmd+Option+C (edit) |
insert_citation |
| Add a reference to your library by DOI or ISBN | Alt+B |
Alt+Shift+D |
Cmd+Option+Shift+D |
add_reference |
| Insert the bibliography of the works cited, at the cursor | palette | palette | palette | insert_bibliography |
| Check the citations: how many there are, and which keys are not in your library | palette | palette | palette | check_citations |
| Import references from a BibTeX, RIS, or CSL-JSON file into your library | palette | palette | palette | import_references |
| Start or stop dictation: spoken words are typed at the cursor in edit mode | Ctrl+Shift+F9 |
Ctrl+Shift+F9 |
Cmd+Shift+F9 |
dictate |
| Pause the microphone while dictating, keeping the session and the words so far, or resume it | Alt+Shift+F9 |
Alt+Shift+F9 |
Option+Shift+F9 |
pause_dictation |
| Download the dictation model chosen in the settings, after saying its size and license | palette | palette | palette | download_dictation_model |
View and help
| Action | Terminal | GUI | GUI on macOS | Id |
|---|---|---|---|---|
| Choose what the browser preview follows: nothing, each save, or your typing | palette | palette | palette | cycle_preview_follow |
| Switch to the next color theme | F5 |
F5 |
F5 |
next_theme |
| Show or hide line numbers | F6 |
none | none | toggle_line_numbers |
| Show the original braille of the page at the cursor, in a BRF file read as print | palette | palette | palette | show_original_braille |
| Turn single-key shortcuts on or off, so dictation and typing never trigger commands | F9 |
F9 |
F9 |
toggle_character_keys |
| Cycle the accessibility mode: self-voicing, hybrid, or screen reader | Alt+Shift+A |
Alt+Shift+A |
Cmd+Option+Shift+A |
cycle_access_mode |
| List settings profiles: switch to one, save the current settings as one, rename, delete, import, or export | Alt+U |
Ctrl+Shift+U |
Cmd+Shift+U |
settings_profiles |
| Turn bionic reading on or off: the start of each word in bold | Alt+Shift+B |
Alt+Shift+B |
Cmd+Option+Shift+B |
bionic_toggle |
| Cycle the reading ruler: off, current line, ruler | Alt+Shift+U |
Alt+Shift+U |
Cmd+Option+Shift+U |
ruler_cycle |
| Show or hide syllables: words split with a middle dot | Alt+Shift+Z |
Alt+Shift+Z |
Cmd+Option+Shift+Z |
syllables_toggle |
| Mark difficult words on or off: underlined, and named on word moves at high verbosity | Alt+Shift+J |
Alt+Shift+J |
Cmd+Option+Shift+J |
difficult_words_toggle |
| Make the document text larger | none | Ctrl+= |
Cmd+= |
text_larger |
| Make the document text smaller | none | Ctrl+- |
Cmd+- |
text_smaller |
| Return the document text to its standard size | none | Ctrl+0 |
Cmd+0 |
text_size_reset |
| Choose the font of the document text | none | Ctrl+D |
Cmd+T |
choose_font |
| Show the Contents panel beside the document and go to it, or close it from inside it: Enter goes to a heading | none | Ctrl+1 |
Cmd+1 |
contents_panel |
| Show the Notes panel beside the document and go to it, or close it from inside it: Enter goes to a note | none | Ctrl+2 |
Cmd+2 |
notes_panel |
| Show or hide the header, the bar of Open, Font, Settings and Commands | palette | palette | palette | toggle_header |
| Show or hide the toolbar, the bar of Play, Stop, the reading buttons and Edit | palette | palette | palette | toggle_toolbar |
| Turn focus mode on or off: the bars and the panel hide while the mouse rests | palette | palette | palette | toggle_focus_mode |
| Full screen on or off: the bars and the panel hide while the mouse rests | none | F11, Alt+Enter |
Option+Enter |
full_screen |
| Choose the buttons on the header and the toolbar, and their order | palette | palette | palette | customize_buttons |
| Show or hide the preview beside the editor in edit mode: the document as it reads, updated when typing pauses | none | Alt+F5 |
Option+F5 |
show_preview |
| Move to the next part of the window: the header, the panel, the document, or the toolbar | none | F6 |
F6 |
next_region |
| Move to the previous part of the window | none | Shift+F6 |
Shift+F6 |
previous_region |
| Open the color settings: the reading highlight, the ruler, marks, and each part of the screen, with their contrast | palette | palette | palette | color_settings |
| Open the reading settings: rate, font, spacing, line length, theme, highlight, ruler, bionic reading, and syllables | palette | palette | palette | reading_form |
| Cycle how much textweaver announces about itself: off, minimal, normal, or full; errors and answers are always said | Ctrl+F9 |
Ctrl+F9 |
Cmd+F9 |
cycle_interface_announcements |
| Open the menus: File, Edit, View, Reading, Speech, Tools, and Help | F10 |
F10 |
F10 |
menu |
| Open the context menu: cut, copy, paste, and the commands for where the cursor is | Ctrl+F10 |
Shift+F10 |
Shift+F10 |
context_menu |
| Run any command by name | F2, Alt+X, : (browse) |
F2, : (browse) |
F2, : (browse) |
command_palette |
| Open the settings: every option with its help; Left and Right change a value | Shift+F10 |
Ctrl+, |
Cmd+, |
settings |
| List keyboard shortcuts | ? (browse) |
? (browse) |
? (browse) |
keyboard_help |
| Press a key to hear what it does and where it is in the menus, without running it | Shift+F1 |
Shift+F1 |
Shift+F1 |
what_does_this_key_do |
| List the facts a problem report needs: version, build, components, speech engines, and folders | palette | palette | palette | about |
| Open the quick start guide in textweaver | palette | palette | palette | quick_start |
| Open the guides that come with textweaver as documents; a link to another guide opens it in place, and History back returns | palette | palette | palette | documentation |
| Show the online documentation's web address, and ask before opening it in a browser | palette | palette | palette | online_documentation |
| Search all of help: command names, keys, settings, and the guides' headings and text | palette | palette | palette | search_help |
| Show where to report a problem, and ask before opening it in a browser; nothing is sent | palette | palette | palette | report_problem |
| Ask again about first-run choices: hybrid mode with a screen reader, and the optional components | palette | palette | palette | ask_first_run_again |
| Manage optional components: the models, fonts, and voices textweaver can download, with their size and license | palette | palette | palette | manage_components |
| Check for updates: look for a newer textweaver on GitHub, and ask before downloading it | palette | palette | palette | check_for_updates |
| Forget the GitHub token kept for your components source; it is asked for again when needed | palette | palette | palette | forget_github_token |
| Open the help | F1 |
F1 |
F1 |
help |
The terminal on macOS
A terminal never passes the Command key, so on a Mac the terminal keeps the keys in the Terminal column, with Option as Alt (in Terminal, turn on "Use Option as Meta key"; in iTerm2, set the Option key to Esc+). These commands use other keys on a Mac, because VoiceOver keeps Ctrl+Option, Mission Control keeps Ctrl with the arrows, and macOS keeps Ctrl with F1 to F8 and Ctrl+Space:
| Action | Terminal | Terminal on macOS | Id |
|---|---|---|---|
| Read continuously from the cursor | Ctrl+Space, Enter (browse) |
Enter (browse) |
read_from_cursor |
| Move to the next paragraph | Ctrl+P, p (browse), ] (browse), Ctrl+Down (browse), PageDown (speech cursor) |
Ctrl+P, p (browse), ] (browse), PageDown (speech cursor) |
next_paragraph |
| Move to the previous paragraph | Shift+P (browse), [ (browse), Ctrl+Up (browse), PageUp (speech cursor) |
Shift+P (browse), [ (browse), PageUp (speech cursor) |
previous_paragraph |
| In a table, move down a row in the same column | Ctrl+Alt+Down |
Ctrl+Shift+Down (browse) |
table_next_row |
| In a table, move up a row in the same column | Ctrl+Alt+Up |
Ctrl+Shift+Up (browse) |
table_previous_row |
| In a table, move to the next cell in the row | Ctrl+Alt+Right |
Ctrl+Shift+Right (browse) |
table_next_column |
| In a table, move to the previous cell in the row | Ctrl+Alt+Left |
Ctrl+Shift+Left (browse) |
table_previous_column |
| Choose a voice | Alt+V, Ctrl+Alt+V |
Option+V |
choose_voice |
| Move to the next grammar problem, and say it and its fix | Ctrl+F7 |
Option+F7 |
next_grammar_problem |
| Move to the previous grammar problem, and say it and its fix | Ctrl+Shift+F7 |
Option+Shift+F7 |
previous_grammar_problem |
| In edit mode, move to the next Markdown lint problem, and say it | Ctrl+F8 |
Option+F8 |
next_lint_problem |
| In edit mode, move to the previous Markdown lint problem, and say it | Ctrl+Shift+F8 |
Option+Shift+F8 |
previous_lint_problem |
The classic preset
textweaver's single keys as they were before the default became the NVDA and JAWS layout: . and , move by sentence, s says the sentence and l the line, Shift+H and Shift+L go back and forward, o moves by list, and q quits (after asking). Choose it in settings.toml:
[keyboard]
preset = "classic"
The old screen-reader preset is now the default, and preset = "screen-reader" still works: it means the default keys.
Your keymap.toml overrides apply on top of it. The tables above show the default keys; the preset changes only these, in both frontends:
| Key | Default keys | classic preset |
|---|---|---|
. (browse) |
Say the sentence at the cursor without moving | Move to the next sentence |
, (browse) |
Say the paragraph at the cursor without moving | Move to the previous sentence, or to the start of this one when more than three words in |
s (browse) |
Move to the next separator (horizontal rule) | Say the sentence at the cursor without moving |
Shift+S (browse) |
Move to the previous separator (horizontal rule) | Say the paragraph at the cursor without moving |
l (browse) |
Move to the next list | Say the line at the cursor |
Shift+H (browse) |
Move to the previous heading without reading | Go back to where you were before the last jump |
Shift+L (browse) |
Move to the previous list | Go forward again after going back |
o (browse) |
nothing | Move to the next list |
Shift+O (browse) |
nothing | Move to the previous list |
k (browse) |
Move to the next link | Scroll up one line without moving the cursor |
Shift+K (browse) |
Move to the previous link | Say the address of the link at the cursor |
q (browse) |
Move to the next block quote | Quit, saving the reading position |
Shift+Q (browse) |
Move to the previous block quote | Quit, saving the reading position |
g (browse) |
Move to the next graphic (image) | nothing |
Shift+G (browse) |
Move to the previous graphic (image) | nothing |
d (browse) |
Move to the next chapter or section | nothing |
Shift+D (browse) |
Move to the previous chapter or section | nothing |
Alt+Down (global) |
Move to the next sentence | Move to the next note |
Alt+Up (global) |
Move to the previous sentence, or to the start of this one when more than three words in | Move to the previous note |
In this preset next_block_quote, previous_block_quote, next_separator, previous_separator, next_graphic, previous_graphic have no keys: run them from the command palette, or bind keys in keymap.toml.
Where the default commands of those keys went, in the terminal:
- Say the sentence at the cursor without moving:
Alt+Shift+S,s(browse). - Say the paragraph at the cursor without moving:
Shift+S(browse). - Move to the next separator (horizontal rule): the command palette only.
- Move to the previous separator (horizontal rule): the command palette only.
- Move to the next list:
o(browse). - Move to the previous heading without reading:
Alt+Shift+H,{(browse). - Move to the previous list:
Shift+O(browse). - Move to the next link:
u(browse). - Move to the previous link:
Shift+U(browse). - Move to the next block quote: the command palette only.
- Move to the previous block quote: the command palette only.
- Move to the next graphic (image): the command palette only.
- Move to the previous graphic (image): the command palette only.
- Move to the next chapter or section:
F11,Alt+PageDown. - Move to the previous chapter or section:
Alt+PageUp. - Move to the next sentence:
Alt+.,.(browse). - Move to the previous sentence, or to the start of this one when more than three words in:
Alt+,,,(browse).
Command palette only, with single-key shortcuts off
These actions have only single-key shortcuts by default. With single-key shortcuts off, run them from the command palette (F2) or bind a chord in keymap.toml.
| Action | Terminal | GUI | Id |
|---|---|---|---|
| Read the whole document from the start | palette | palette | read_document |
| Say the paragraph at the cursor without moving | palette | palette | read_paragraph |
| Read the selected text | palette | palette | read_selection |
| Say the sentence at the cursor again more slowly, then go back to the usual rate | palette | palette | repeat_sentence_slower |
| Change what reading says: the full text, the first sentence of each paragraph with the headings, or the headings only | palette | palette | reading_pass |
| Read from the next heading | palette | has a chord | next_heading |
| Read from the previous heading | palette | has a chord | previous_heading |
| Move to the next heading without reading | has a chord | palette | skip_next_heading |
| Move to the previous heading without reading | has a chord | palette | skip_previous_heading |
| Move to the next heading at level 1 | palette | palette | next_heading_level_1 |
| Move to the next heading at level 2 | palette | palette | next_heading_level_2 |
| Move to the next heading at level 3 | palette | palette | next_heading_level_3 |
| Move to the next heading at level 4 | palette | palette | next_heading_level_4 |
| Move to the next heading at level 5 | palette | palette | next_heading_level_5 |
| Move to the next heading at level 6 | palette | palette | next_heading_level_6 |
| Move to the previous heading at level 1 | palette | palette | previous_heading_level_1 |
| Move to the previous heading at level 2 | palette | palette | previous_heading_level_2 |
| Move to the previous heading at level 3 | palette | palette | previous_heading_level_3 |
| Move to the previous heading at level 4 | palette | palette | previous_heading_level_4 |
| Move to the previous heading at level 5 | palette | palette | previous_heading_level_5 |
| Move to the previous heading at level 6 | palette | palette | previous_heading_level_6 |
| Move to the next table | palette | has a chord | next_table |
| Move to the previous table | palette | has a chord | previous_table |
| Move to the next list | palette | palette | next_list |
| Move to the previous list | palette | palette | previous_list |
| Move to the next list item | palette | palette | next_list_item |
| Move to the previous list item | palette | palette | previous_list_item |
| Move to the next link | palette | palette | next_link |
| Move to the previous link | palette | palette | previous_link |
| Move to the next block quote | palette | palette | next_block_quote |
| Move to the previous block quote | palette | palette | previous_block_quote |
| Move to the next separator (horizontal rule) | palette | palette | next_separator |
| Move to the previous separator (horizontal rule) | palette | palette | previous_separator |
| Move to the next graphic (image) | palette | palette | next_graphic |
| Move to the previous graphic (image) | palette | palette | previous_graphic |
| Scroll down one line without moving the cursor | palette | palette | scroll_down |
| Scroll up one line without moving the cursor | palette | palette | scroll_up |
| Speech Cursor: read the current line again | palette | palette | speech_cursor_reread_line |
| Speak faster | palette | palette | rate_up |
| Speak slower | palette | palette | rate_down |
| Add a bookmark at the cursor | palette | has a chord | add_bookmark |
| List bookmarks | palette | palette | list_bookmarks |
| Move to the next bookmark | palette | palette | next_bookmark |
| Move to the previous bookmark | palette | palette | previous_bookmark |
| List notes | palette | has a chord | list_notes |
| Highlight the selection, or the sentence at the cursor | palette | palette | highlight_selection |
| Open a document by typing its path | palette | has a chord | open_path |
| In edit mode, switch between the Markdown source and the reading view of the same document, at the same place | has a chord | palette | toggle_preview |
| Show or hide line numbers | has a chord | palette | toggle_line_numbers |
| Make the document text larger | palette | has a chord | text_larger |
| Make the document text smaller | palette | has a chord | text_smaller |
| Return the document text to its standard size | palette | has a chord | text_size_reset |
| Choose the font of the document text | palette | has a chord | choose_font |
| Show the Contents panel beside the document and go to it, or close it from inside it: Enter goes to a heading | palette | has a chord | contents_panel |
| Show the Notes panel beside the document and go to it, or close it from inside it: Enter goes to a note | palette | has a chord | notes_panel |
| Full screen on or off: the bars and the panel hide while the mouse rests | palette | has a chord | full_screen |
| Show or hide the preview beside the editor in edit mode: the document as it reads, updated when typing pauses | palette | has a chord | show_preview |
| Move to the next part of the window: the header, the panel, the document, or the toolbar | palette | has a chord | next_region |
| Move to the previous part of the window | palette | has a chord | previous_region |
| List keyboard shortcuts | palette | palette | keyboard_help |
Commands without keys
These commands have no keys by default. Run them from the command palette (F2, then type part of the name), or bind a key in keymap.toml.
| Action | Id |
|---|---|
| Say the document's title, how many headings, tables, pictures, and footnotes it has, and about how many minutes are left | document_overview |
| Summarize the selection, the chapter, or the document: its most central sentences in a list; Enter goes to one | summarize |
| Switch a talking book between its recorded narration and speech | toggle_book_audio |
| Listen to the document as it will render, without leaving edit mode | listen_rendered |
| Choose how Find and Replace match: case, whole words, regular expression, across lines | search_options |
| Highlight the selection or the sentence with a name chosen from the highlight palette | highlight_as |
| Write the highlights of one name as a Markdown list | collect_highlights |
| Export the notes and highlights as a Markdown study sheet, grouped by heading | export_study_sheet |
| Export the study sheet with the highlights grouped by name | export_study_sheet_by_name |
| Accept every tracked change in the document | accept_all_changes |
| Reject every tracked change in the document | reject_all_changes |
| Add a comment to the selection or the sentence at the cursor | add_comment |
| Test yourself on the notes and highlights: Enter shows each answer | self_test |
| Save the accepted and rejected changes and the comments into the Word file, keeping a copy of the original first | save_changes_to_word |
| Make study cards from the notes, the highlights, and their headings | make_cards |
| Study the cards: Enter shows the answer, 1 to 4 grade it | study_cards |
| List the study cards: Enter goes to a card's source, Delete removes it | list_cards |
| Grade the card being studied: Again, not recalled | grade_again |
| Grade the card being studied: Hard, recalled with effort | grade_hard |
| Grade the card being studied: Good, recalled | grade_good |
| Grade the card being studied: Easy, recalled at once | grade_easy |
| Export the study cards as an Anki package, saved beside the document | export_cards_anki |
| Import study cards from an Anki package into this document's cards | import_cards_anki |
| Continue reading: the documents on this computer with a saved place, from any computer, newest first | continue_reading |
| Review list: the documents you have read, the one read longest ago first | review_list |
| Reading queue: the documents to read next, in order | reading_queue |
| Add the document to the reading queue, or take it out | queue_document |
| Add a folder to the library: choose it in the file browser | add_library_folder |
| Edit the document's details: title, author, DOI, and ISBN | edit_document_details |
| Start a new document from a template, with a title, author, date, and References heading | new_from_template |
| Export the document as a web page (HTML), choosing where to save it | export_html |
| Export the document as a tagged PDF, choosing where to save it | export_pdf |
| Export the document as a Word file (DOCX), choosing where to save it | export_docx |
| Export the document as an EPUB book, choosing where to save it | export_epub |
| Export the document as braille (BRF), choosing where to save it | export_brf |
| Export the knowledge graph: every link between notes, as a Markdown list, JSON, DOT, GraphML, Mermaid, PlantUML, or CSV | export_knowledge_graph |
| Preview the document in the web browser, with math; each save rewrites the preview | preview_in_browser |
| Browse files and archives: Enter opens a folder, an archive, or a document; Backspace goes up | browse_files |
| Convert a folder of documents to another format, in the background | batch_convert |
| Export the document as spoken audio: MP3, FLAC, Opus, WAV, or an M4B audiobook | export_audio |
| Export a read-along page: one HTML file with the text and its audio, the spoken word marked as it plays | export_read_along |
| Set up sync: choose the sync folder, name this computer, and choose what syncs | sync_setup |
| Sync now: send this computer's changes and take the other computers' for every document | sync_now |
| List the other computers' places in this document; Enter goes to one | sync_go_to_place |
| List notes replaced by another computer's newer edit; Enter puts one back | sync_replaced_notes |
| Stop syncing on this computer; the sync folder is left as it is | sync_stop |
| Insert the bibliography of the works cited, at the cursor | insert_bibliography |
| Check the citations: how many there are, and which keys are not in your library | check_citations |
| Import references from a BibTeX, RIS, or CSL-JSON file into your library | import_references |
| Download the dictation model chosen in the settings, after saying its size and license | download_dictation_model |
| Choose what the browser preview follows: nothing, each save, or your typing | cycle_preview_follow |
| Show the original braille of the page at the cursor, in a BRF file read as print | show_original_braille |
| Show or hide the header, the bar of Open, Font, Settings and Commands | toggle_header |
| Show or hide the toolbar, the bar of Play, Stop, the reading buttons and Edit | toggle_toolbar |
| Turn focus mode on or off: the bars and the panel hide while the mouse rests | toggle_focus_mode |
| Choose the buttons on the header and the toolbar, and their order | customize_buttons |
| Open the color settings: the reading highlight, the ruler, marks, and each part of the screen, with their contrast | color_settings |
| Open the reading settings: rate, font, spacing, line length, theme, highlight, ruler, bionic reading, and syllables | reading_form |
| List the facts a problem report needs: version, build, components, speech engines, and folders | about |
| Open the quick start guide in textweaver | quick_start |
| Open the guides that come with textweaver as documents; a link to another guide opens it in place, and History back returns | documentation |
| Show the online documentation's web address, and ask before opening it in a browser | online_documentation |
| Search all of help: command names, keys, settings, and the guides' headings and text | search_help |
| Show where to report a problem, and ask before opening it in a browser; nothing is sent | report_problem |
| Ask again about first-run choices: hybrid mode with a screen reader, and the optional components | ask_first_run_again |
| Manage optional components: the models, fonts, and voices textweaver can download, with their size and license | manage_components |
| Check for updates: look for a newer textweaver on GitHub, and ask before downloading it | check_for_updates |
| Forget the GitHub token kept for your components source; it is asked for again when needed | forget_github_token |