Mac fn Key Opens Emoji Instead of Dictation? Who Owns It

Emoji picker, input-source switch, Apple Dictation, WeChat IME and dictation apps all want the Mac fn key. Find out which one has it and how to change that.

You tapped fn to dictate and got the emoji palette. Or the input-source switcher. Or WeChat IME’s voice bar. Or nothing. On a Mac, one key is being asked to do five jobs, and macOS only referees three of them.

Everything that wants fn

ClaimantHow it uses fnWho decides
Emoji & Symbols pickerSingle press, or Fn/🌐-ESystem Settings → Keyboard
Input-source switchingSingle press cycles input sourcesSystem Settings → Keyboard
Apple DictationDouble press (one of several shortcut options)System Settings → Keyboard → Dictation
WeChat IME 2.0 and laterHold fn to talkWeChat IME’s own settings
Third-party dictation apps (ListenIn included)Tap or hold, watched through AccessibilityEach app’s own settings

The first three go through one macOS menu. The last two watch the key themselves, so that menu does not settle them. You resolve those app by app.

The macOS setting that decides the single press

Open System Settings → Keyboard. The pop-up menu is called “Press fn key to” or “Press 🌐 key to”; Apple’s macOS 26 User Guide uses both names depending on your Mac model (checked 2026-09-18) — on macOS 14–15, check your version’s guide. The choices are Change Input Source, Show Emoji & Symbols, Start Dictation, and Do Nothing.

This menu owns the single tap. Whatever it says fires on every tap of fn. If you want a third-party app to own that tap, this menu has to say Do Nothing. Otherwise each tap opens the emoji palette (or switches input sources) first, and your dictation app either never sees the key or fires alongside the palette.

Two things this menu does not control: WeChat IME’s hold-to-talk, and any app that registers its own listener for fn.

WeChat IME and fn: what its changelog documents

From WeChat IME’s own macOS changelog, fetched 2026-09-18:

  • 2.0.0 for Mac (March 2026) added voice input: “长按「fn」试试语音输入” — hold fn to try voice input, with live transcription into the field and no length limit.
  • 2.2.1 (July 2026) lists “语音输入支持自定义更多快捷键” — voice input supports customizing more shortcuts, implying the shortcut was already configurable before this release.

The changelog does not say when the voice-input shortcut first became configurable; 2.2.1 only says it accepts more keys. Open WeChat IME’s settings, find the voice-input shortcut, and move it off fn (or turn it off). If your build has no such option, update.

Hold and tap on the same key look compatible on paper. They are not. ListenIn, for one, treats any press longer than about 0.2 seconds as a hold, so a slightly slow tap becomes a hold and a quick hold becomes a tap. Two apps splitting one key by gesture will misfire often enough to make you stop trusting both. Give each app its own key.

Apple Dictation’s shortcut and the double-tap confusion

System Settings → Keyboard → Dictation → Shortcut. One option is “Press Fn (Function) Key Twice” (Apple’s wording, as of 2026-09-18); there are other double-press presets and a Customize entry for any combination you press.

Apple’s guide also notes that choosing a Dictation shortcut can change the “Press fn key to” menu on its own: pick the fn-twice option and the Keyboard menu switches to starting Dictation. That coupling explains most “press fn twice dictation not working” searches. Typical cases:

  • You set fn to Do Nothing for a third-party app, later chose the fn-twice Dictation shortcut, and fn is spoken for again.
  • You double-tap slowly. macOS reads two single taps: emoji palette, then dismiss.
  • A third-party app on single-tap fn starts on tap one; macOS starts Dictation on tap two. Two engines are now listening to the same sentence.

If a third-party app owns fn, move Dictation’s shortcut off fn (Customize lets you pick anything) and leave “Press fn key to” on Do Nothing.

External keyboards: fn and 🌐 are not always the same key

The setting has two names because the key differs: fn on some keyboards, 🌐 on others. On many third-party keyboards there is no 🌐 at all, and fn is handled inside the keyboard’s firmware. It changes what the other keys send and never reaches macOS as a key event of its own. When that happens, nothing on the Mac can bind it: not the emoji picker, not Dictation, not a dictation app.

Which keyboards do this varies by model and firmware, and I have not tested them, so no list here. The test at the end answers it for yours.

ListenIn has a check for exactly this case. If fn is the trigger and about twenty other keypresses go by over thirty seconds without a single fn event, it shows “Your trigger key may not be reaching ListenIn” with a “Change Trigger Key” button. It shows once per trigger key, not every session.

Pick a trigger that does not collide

Three rules:

  1. One owner per key. A tap owner, a hold owner and a double-tap owner on the same key is three owners.
  2. A bare right-side modifier is the cheapest escape. Right ⌘ has no default single-press action in macOS, which is why ListenIn uses it as the fallback below.
  3. Failing that, a key you never use: F13, or a combination like ⌥Space.

What ListenIn does, specifically:

  • The default trigger is fn. In Settings › Dictation, the “Dictate key” picker offers fn 🌐, Right ⌘ Command, Right ⌥ Option, Right ⌃ Control, Right ⇧ Shift and F5. “Custom shortcut” → “Record…” takes any key or combination.
  • Since v0.3.4, a fresh install reads the macOS “Press fn key to” setting before choosing. If it says anything other than Do Nothing, ListenIn starts on Right ⌘ and the onboarding step says so in plain words: “fn is taken by macOS — ListenIn uses Right ⌘ Command instead.” That fallback is not saved as your choice. Set fn to Do Nothing later and the next launch returns to fn on its own.
  • If you pick fn yourself while macOS still has it, the menu bar shows “⚠️ Free up the fn key…”, which opens Keyboard settings. Onboarding says the same thing up front: “Set the fn key to “Do Nothing” first — otherwise it opens the emoji picker.”
  • Recording a custom shortcut is checked: “That shortcut is reserved by macOS” and “That shortcut overlaps another ListenIn trigger” both refuse the binding when it collides with the AI-command, Translate or Ask key, and the preset picker hides keys another mode already uses.
  • Gesture is yours to set. “Toggle to talk (press once to start, again to finish)” is the default; holding the key and releasing also works. “Double-tap to go hands-free” is in Settings › General.

None of this needs the key to be fn. The system-wide dictation flow is the same on Right ⌘ or F13: press, speak, press, text lands at the cursor.

A 30-second test: who has the key right now

Put the cursor in a text field. Notes is fine. Do three things and read what appears.

You doWhat appearsOwner
Tap fn onceEmoji palettemacOS, “Press fn key to” → Show Emoji & Symbols
Tap fn onceInput-source popover, or the language changesmacOS → Change Input Source
Tap fn onceApple Dictation microphonemacOS → Start Dictation, or a Dictation shortcut on fn
Tap fn onceListenIn’s listening indicatorListenIn on fn. Done.
Tap fn onceNothingDo Nothing with no app on fn, or fn never reached macOS (external keyboard)
Tap fn twiceApple Dictation microphoneDictation shortcut is “Press Fn (Function) Key Twice”
Hold fnWeChat IME voice barWeChat IME hold-to-talk

Then fix in this order, top to bottom, because each layer can re-take the key from the one below:

  1. System Settings → Keyboard → “Press fn key to”: Do Nothing, or the one thing you actually want fn to do.
  2. System Settings → Keyboard → Dictation → Shortcut: anything but fn.
  3. WeChat IME voice-input shortcut: off fn.
  4. Your dictation app: whatever is left, or a right-side modifier and stop fighting for fn.

If ListenIn still does not respond after that, two usual suspects remain: Accessibility permission (System Settings → Privacy & Security → Accessibility), which onboarding flags as “Turn on Accessibility first — otherwise the trigger key can’t reach ListenIn”, and a missing dictation language pack on macOS 14–15, which has its own post. For anything else ListenIn-specific, see the FAQ.

Try it on your own Mac

Free tier, no account. Audio never leaves your Mac.

Download for Mac

← All posts