Windows 11 has an emoji picker: press Win + . and a panel appears. It works, but it interrupts you โ a floating window opens over your text, you search or scroll for the emoji you want, click it, and then find your way back to the sentence you were writing. If you send the same handful of emoji every day, that is a lot of ceremony for one character.
A text expander removes the panel from the loop. With Text Replacements, you type :fire: and the shortcode becomes ๐ฅ the instant you type the closing colon โ in Slack, Outlook, Teams, a browser, a terminal, or any other Windows desktop app. Around 1,900 GitHub/Slack-style names are built into the app, so there is nothing to configure first.
The :name: shortcode, explained in one line
A shortcode is the emoji's name wrapped in colons. If you have used GitHub, Slack, Discord, or Notion, you already know the vocabulary:
| You type | You get | Fires on |
|---|---|---|
:fire: | ๐ฅ | The closing colon |
:rocket: | ๐ | The closing colon |
:+1: | ๐ | The closing colon |
:tada: | ๐ | The closing colon |
:white_check_mark: | โ | The closing colon |
;email wait for a delimiter, because the app cannot know where the trigger ends. A shortcode ends with a colon, which is unambiguous โ so emoji expand immediately, mid-sentence, without leaving a stray space behind.Why not just use Win + . ?
The emoji panel is genuinely good at one thing: browsing. When you don't know what you want and would recognise it on sight, the panel wins. The trade-offs show up when you do know:
| Emoji panel (Win + .) | Copy-paste from a doc | :name: shortcodes |
|
|---|---|---|---|
| Hands leave the keyboard | Usually | Yes | No |
| Opens a window over your text | Yes | Yes | No |
| Works the same in every app | Mostly | Yes | Yes |
| Setup per emoji | None | Maintain a document | None |
| Good for browsing | Yes | No | No |
They are complements, not rivals. Keep Win + . for discovery; use shortcodes for the twenty emoji you actually send.
A starter cheat sheet
Chat and stand-ups
:+1: โ ๐ ยท :eyes: โ ๐ ยท :pray: โ ๐ ยท :wave: โ ๐
Status in tickets and notes
:white_check_mark: โ โ
ยท :x: โ โ ยท :warning: โ โ ๏ธ ยท :bug: โ ๐
Releases and good news
:rocket: โ ๐ ยท :tada: โ ๐ ยท :fire: โ ๐ฅ ยท :sparkles: โ โจ
Tone
:joy: โ ๐ ยท :smile: โ ๐ ยท :thinking: โ ๐ค ยท :heart: โ โค๏ธ
What about things that aren't emoji?
Kaomoji and typographic symbols have no Unicode emoji name, so they are ordinary snippets you create once โ and they follow the normal Space/Tab/Enter rule:
| Trigger | Replacement | Useful for |
|---|---|---|
;shrug | ยฏ\_(ใ)_/ยฏ | Chat, when words fail |
;tm | โข | Product names in docs |
;-- | โ | Em dash without an Alt code |
;deg | ยฐ | Temperatures and angles |
You can also override a built-in shortcode. If you create your own snippet with the trigger :fire:, your version wins โ the built-in table is only consulted when nothing in your own library matches.
Set it up in under a minute
- Install Text Replacements from the Microsoft Store and launch it.
- Nothing to configure for emoji โ the shortcode table ships with the app.
- Open any app and type
:tada:. The emoji appears as you type the final colon. - Optional: add your own snippets for kaomoji and symbols, or override a shortcode you want to mean something else.
Frequently Asked Questions
Do I need to create a snippet for every emoji?
:fire:, :rocket:, and :sparkles: expand on a fresh install with an empty snippet library.
Does capitalisation matter?
:Joy: and :JOY: produce the same emoji as :joy:. That matters at the start of a sentence and with Caps Lock on. Names themselves are made of letters, digits, _, + and -.
Will it mangle ordinary text with colons, like 10:30 or a URL?
10:30, ratios, https://example.com, and smileys like :-) are left exactly as typed, because none of them is a name in the table.
Does this work in Slack, Teams, and Discord desktop apps?
Do emoji survive in every field?
Can I still use the Windows emoji panel?
Get Text Replacements
One-time purchase. No subscription. Works on Windows 11.