Update on QUICOPY (menu-bar text shortcuts): finally got it working inside Zed and VS Code terminals after a Carbon vs NSEvent rabbit hole
Hey r/macapps. Solo dev here. I built QUICOPY last year because I kept retyping the same AI prompts into ChatGPT every day, and existing text expanders all felt like overkill (TextExpander's abbreviation system, Raycast's launcher trip, etc). I just wanted: press one key, get my text. So I built that. Posting because I just shipped 1.1 and want to share something I tripped over hard. The bug that took weeks to figure out In 1.0, the shortcut would fire perfectly in Notes, Mail, Slack, Chrome, but quietly do nothing inside Zed's built-in terminal. Same in VS Code's integrated terminal. No error, just silence. It turns out macOS's RegisterEventHotKey (Carbon, from 2001) doesn't fire when the frontmost app consumes the key event itself, which is exactly what self-drawn terminal UIs do. Zed, VS Code's integrated terminal, Ghostty's embedded modes, all fall in this bucket. iTerm2 and Warp don't, which is why nobody complained about them. The fix was moving shortcut capture upstream to NSEvent.addGlobalMonitorForEvents. Works regardless of whether the frontmost app consumes the event. Sounds obvious in hindsight; took me a long time to find. Full technical write-up if anyone's into this kind of thing: https://www.quicopy.com/blog/macos-shortcut-dispatch-zed Other 1.1 changes Paste delivery rewritten to be robust when the foreground app draws its own text UI (Edit menu missing? still works) Small fix: pressing a bound shortcut while my own popover was visible no longer shows a harmless-but-ugly error toast Comparison vs TextExpander: no abbreviation codes to memorize, one keypress vs typing a trigger. $9.99 lifetime instead of $40/year subscription. vs Raycast snippets: no launcher step, one keypress vs three (open, type, Enter). vs macOS System Settings shortcuts: works in any app including sandboxed Electron and editor-embedded terminals. Pricing $1.99/month with a 7-day free trial, or $9.99 one-time lifetime purchase Mac App Store: https://apps.apple.com/app/quicopy/id6761418490 Happy to talk about the Carbon to NSEvent migration, why I went with AppleScript System Events for paste delivery instead of CGEvent (sandbox blocks the latter, wrote about that too if anyone's curious), or just take whatever questions you have.
Collected discussion
Interesting to read about the bug you encountered and how you solved it! Well done!
Thanks! That one was a fun rabbit hole. "Silently does nothing" is honestly the worst flavor of bug to chase, no error, no log, just behavior that doesn't happen.
I just use Snippety for this
Snippety's solid, been around longer than mine. Out of curiosity, are you using it with abbreviation triggers (typing ";sig" to expand) or with the picker? My main differentiator with QUICOPY is direct shortcut binding (one keypress per snippet, no abbreviation to type, no list to scan), but I know that approach doesn't fit every flow.
Those I use all the time with the abbrv trigger and the rest with the picker. I have too many other shortcuts mapped to ⌃ ⌥ ⌘ ⇧ (CAPS), ⌃ ⌥ ⇧ (Left ⌥) and ⌃ ⌥ ⌘ (Left ⌘) already, so this would not be a major win for me :)
This is the kind of bug report that actually sells the app, because it explains where trust was breaking. The next sticky feature might be a per app conflict map or a tiny "shortcut captured but paste blocked here" hint, since terminals are where people assume the app is flaky. Once a tool touches global shortcuts, confidence cues matter almost as much as raw speed.
This is genuinely useful framing, thanks for taking the time. The "shortcut captured but paste blocked here" hint is something I've sketched a couple of times but kept punting on because I wasn't sure what to put in the UI. Your phrasing gives me a clear target: a tiny indicator on press that distinguishes "key not received" vs "received but paste path failed." Going on the v1.2 list. The per-app conflict map is harder. The honest version is: I know which apps I've personally tested, but the long tail is invisible to me until users hit it. I've been thinking about a community-sourced approach (something like "users with this app installed reported X behavior") but I worry it just becomes a stale wiki. Curious if you've seen anyone do this well. You're right that for global-shortcut tools, confidence cues matter as much as raw speed. The sub-100ms response time means nothing if the user is silently confused about whether it fired.
This comment was deleted at the source.
Thanks, that's nice to hear. Spent way more time on the menu bar UI than the paste pipeline, honestly. Wanted it to feel like part of macOS rather than something bolted on top. If you do try it and find anything that feels off, I'd genuinely want to hear it.