Signal Composer & Text Formatting Shortcuts
The composer carries Signal's most useful and least-known shortcuts, including a full set of text formatting keys — bold, italic, strikethrough, monospace and spoiler — that a great many Signal users have no idea exist.
| Action | Windows | Mac | Description |
|---|---|---|---|
| Send a message | Enter | Return | Sends whatever is in the composer. In the expanded composer this changes — there, Ctrl+Enter or Cmd+Enter sends, because plain Enter is needed for line breaks in a multi-paragraph message. |
| Add a line break without sending | Shift+Enter | Shift+Return | Inserts a newline instead of sending, which is how you write a multi-line message in the ordinary composer. For anything genuinely long, the expanded composer is the better tool. |
| Expand the composer | Ctrl+Shift+K | Cmd+Shift+K | Opens a larger writing area for longer messages. The send key changes inside it — Ctrl+Enter rather than Enter — which is the whole point, since Enter becomes an ordinary line break. |
| Attach a file | Ctrl+U | Cmd+U | Opens the file picker for the current conversation. Ctrl+Shift+P clears every draft attachment at once, and Ctrl+P removes just the link preview if one was generated from a URL you pasted. |
| Edit your previous message | Up arrow (empty composer) | Up arrow (empty composer) | Pressing Up with nothing typed reopens your last message for editing. Recipients see that it was edited and can view the history, so this corrects a typo openly rather than quietly rewriting what was said. |
| Bold selected text | Ctrl+B | Cmd+B | Applies bold to whatever is selected in the composer. Signal transmits the formatting as message metadata rather than as visible markdown characters, so recipients see formatted text rather than asterisks. |
| Italicise selected text | Ctrl+I | Cmd+I | Applies italics to the selection, using the same combination as every text editor. Combines with the other formatting keys, so text can be bold and italic at once. |
| Strike through selected text | Ctrl+Shift+X | Cmd+Shift+X | Draws a line through the selection. The odd one out in the formatting group — most applications use Ctrl+Shift+S or Alt+Shift+5, and Signal's choice of X has no obvious precedent. |
| Format selected text as monospace | Ctrl+E | Cmd+E | Switches the selection to a fixed-width font, the right choice for a command, a file path or anything where character-level accuracy matters. Also stops the text being reflowed in ways that obscure spacing. |
| Mark selected text as a spoiler | Ctrl+Shift+B | Cmd+Shift+B | Hides the selection behind a blur that the recipient taps to reveal. Genuinely uncommon in messaging apps and useful for anything the reader should choose to see rather than encounter — plot details, results, a surprise. |
| Start recording a voice message | Ctrl+Shift+Y | Cmd+Shift+Y | Begins a voice recording in the current conversation without reaching for the microphone button. Worth distinguishing from the calling shortcuts, which use a different modifier family entirely on Windows. |
Formatting works exactly as it does in a word processor: select text, press the combination, and the style applies. Ctrl+B bolds, Ctrl+I italicises, Ctrl+Shift+X strikes through, Ctrl+E sets monospace, and Ctrl+Shift+B marks a spoiler, with Cmd replacing Ctrl throughout on macOS. They combine, so text can be bold and italic at once, and they can be applied to part of a message rather than all of it.
What makes this genuinely useful rather than decorative is that Signal transmits formatting as message metadata rather than as literal characters. Recipients see formatted text, not asterisks and underscores, and the formatting survives across platforms — a monospaced command sent from Desktop arrives monospaced on Android and iOS. That is a meaningful difference from apps where markdown-style syntax is interpreted at display time and falls apart the moment something does not parse.
Monospace on Ctrl+E deserves specific mention because it solves a real problem. Sending someone a command, a file path, a serial number or a configuration snippet in proportional text invites transcription errors — l and 1, O and 0, and any run of spaces that gets collapsed. Monospace makes each character distinct and preserves spacing, and it is the single formatting option most worth building a habit around if you send technical content at all.
Spoiler on Ctrl+Shift+B is the one with no real equivalent elsewhere. It hides the selection behind a blur that the recipient reveals deliberately. This is a display treatment rather than a security feature — the text is delivered normally and anyone who taps sees it — but accidental reading is the actual problem it addresses. A result someone is avoiding, plot details in a group where not everyone has caught up, a surprise that a notification preview would otherwise ruin.
Line breaks are Shift+Enter in the ordinary composer. For anything longer, Ctrl+Shift+K opens the expanded composer, and the send key inverts there: Ctrl+Enter sends and plain Enter becomes an ordinary newline. That inversion is the whole reason the expanded view exists — in a larger writing area you want Enter behaving as it does in a text editor rather than firing off a half-finished thought.
Editing what you already sent is the Up arrow, pressed with the composer empty. Signal marks edited messages visibly and lets recipients view the edit history, so this is an open correction rather than a silent rewrite. For a messaging application where what was actually said can matter, that transparency is a deliberate choice rather than an oversight, and it means editing a typo is socially costless while editing the substance of a message is visible.
Attachments are Ctrl+U, with two related bindings worth knowing. Ctrl+Shift+P clears every draft attachment at once, which saves removing them individually after attaching the wrong folder. Ctrl+P removes just the link preview Signal generates when you paste a URL — useful when the preview image is unhelpful, misleading, or simply larger than the message deserves.
Ctrl+Shift+Y starts recording a voice message directly. It is grouped with the composer rather than with calling because that is what it is: a message you are composing in audio rather than text. Worth keeping mentally separate from the calling shortcuts, which use an entirely different modifier family on Windows.
One practical note about focus. All of these act on the composer, so they need the composer focused — which it usually is while typing, but is not after you have navigated the chat list or selected a message. Ctrl+T cycles focus back, and it is the fix when formatting keys seem to have stopped working mid-session.
A question that comes up often: does formatting work if you type markdown-style characters instead of using the shortcuts? Signal does recognise some of the common syntax as you type, but relying on it is less predictable than using the key combinations, because what gets interpreted and what stays literal has varied across versions and platforms. The shortcuts apply formatting explicitly to a selection, with a visible result in the composer before you send, and that certainty is worth the extra keystroke — particularly for a message containing asterisks or underscores that are meant to be read as characters rather than as instructions.
One small habit pays off disproportionately here. Because formatting acts on a selection, the fastest way to apply it is to type the message first, then select and format, rather than trying to toggle styles on and off as you go. Shift with the arrow keys selects from the cursor without touching the mouse, so a word or phrase can be selected and formatted entirely from the keyboard in a couple of keystrokes. Formatting mid-flow while typing tends to leave the style switched on for text you did not mean to include, which is the usual reason a message arrives with more bold in it than intended.