Keyboard Shortcuts
RustMail's web UI supports vim-style keyboard navigation.
Global
These work anywhere in the UI.
| Key | Action |
|---|---|
j | Select next message |
k | Select previous message |
d | Delete selected message |
u | Bring back the last deleted message |
D | Delete all messages |
s | Star or unstar the selected message |
/ | Focus search bar |
i | Open or close the message details drawer (windows under 1300px wide) |
Esc | Close the details drawer first; otherwise clear active filters, or close the message detail panel |
d leaves the message out of the list straight away, but waits a few seconds before deleting it, so u, or the Undo button on the notice that appears, brings it back. Deleting another message closes the previous one's window, and so does the window running out; after that the message is gone for good. D asks for confirmation instead, because clearing the inbox cannot be undone.
Message list
Tab reaches the message list as a single stop; the arrow keys then move within it. Individual rows are not tab stops, so the list stays navigable no matter how many rows are on screen.
While the list has keyboard focus, the selected row carries a rounded accent outline; with no message selected, the outline goes around the whole list. Clicking a row selects it without the outline, so the tinted background alone marks the selection when you use the mouse.
| Key | Action |
|---|---|
↓ | Select next message |
↑ | Select previous message |
Home | Select the first message |
End | Select the last loaded message |
The inbox loads messages a page at a time, so End lands on the last message fetched so far. Pressing it again after the next page arrives moves further down.
The star toggle on each row is not a tab stop either; use s to star the selected message.
Under the Unread filter the selected message stays in the list even after it has been marked read. Selecting a message marks it read, so without that exception the row you just landed on would vanish and take your place in the list with it. The list shrinks behind you as you move instead. Other filters make no such exception.
Shortcuts are active when no input field is focused, and are ignored when a modifier key is held, so browser chords such as Cmd/Ctrl+D keep their normal behaviour. The one exception is Esc inside the details drawer: it closes the drawer even from the tag input, and focus goes back to whatever opened it.
