emit-fn-key-on-macos

Installation
SKILL.md

Emit a Real Fn Key on macOS

Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

Macos's Fn key (also called the "globe" key on modern MacBooks) is special. It's not a regular modifier — it carries kCGEventFlagMaskSecondaryFn, a flag that macOS's input subsystem discards if set from userland via CGEventPost. Many "remap anything" tools assume Fn behaves like Cmd / Option / Ctrl and try to emit it via CGEventPost — and silently fail for dictation, Typeless, macOS's dictation shortcut, Spotlight-via-globe, emoji picker, etc.

The only userland path that emits a Fn the kernel accepts is a DriverKit VirtualHIDDevice. Karabiner-Elements ships one. That's why Karabiner is the only FOSS tool for this job in 2026.

When to Use This Skill

  • User wants a macro-pad button, mouse button, or any external key to trigger:
    • Typeless push-to-talk (pushToTalk: "Fn" by default)
    • macOS dictation (Fn Fn double-tap, or single-Fn in System Settings)
    • Emoji picker (Fn+E)
    • Spotlight-via-globe (Fn)
    • App-specific Fn combos that don't work when remapped by BTT
  • User reports "BTT says the shortcut is firing but nothing happens in Typeless"
  • User tries hidutil property --set with Fn mappings and sees no effect
  • User flashed QMK/ZMK on a board and Fn emission is broken
Installs
36
GitHub Stars
55
First Seen
Apr 26, 2026
emit-fn-key-on-macos — terrylica/cc-skills