CMD + V Should Mean Paste
Making the obvious, obvious. Because, it's obvious.
Hey folks!
Every other Mac app in my life has trained my hands the same way. Cmd + C copies. Cmd + V pastes. If a shortcut needs a paragraph of explanation before it makes sense, the shortcut is probably wrong.
I ran into exactly that problem in YEN. Ctrl + V could still move clipboard data through the terminal stack, but Cmd + V did not behave like a real Mac app. That sounds small until you remember what YEN is trying to be.
Well, this now works in v1.036.
I have been building YEN around a simple thesis: The terminal-first IDE should feel more like a real desktop app, not less. If I am asking people to live in the terminal for IDE flows and agent work and more, then, I do not get to shrug when one of the most basic desktop behaviors feels off.
So, why doesn’t upstream libghostty do this? Because it’s a terminal emulator while YEN is a terminal -first IDE with path-oriented workflows around Codex, Claude, local tools, and file-aware commands.
And so that’s fine since it’s behaving like any normal, ordinary terminal paste behavior for the kinds of payloads a terminal naturally understands. But, I wanted just a bit more than that.
That is an important distinction. This is not “libghostty forgot paste” or anything funky like that; it’s just that we have a very different product policy.
What Changed and Why This Matters
I fixed the hotkey at the right layer first.
Instead of asking “is this the Cmd + * keystroke shape?” YEN now asks “what menu action did YEN resolve this event to?” If the resolved action is paste: or pasteSelection:, and the relevant clipboard has contents, the surface routes through AppKit the way a native Mac app should.
That matters because it avoids stealing unrelated shortcuts.
If someone remaps a binding or another YEN command happens to share a similar keystroke shape, the bypass stays closed unless the resolved menu action is actually a paste action. That is the difference between a shortcut hack and a native fix.
So, why does this matter? Well, I think a lot of terminal work gets framed as performance, rendering, tabs, themes, or shell integration. All of that matters.
But the terminal-first IDE also has to solve a quieter problem: If I am asking you to live in the terminal for more of your day, the terminal has to stop feeling like the place where desktop behavior goes to die.
That means tiny things matter.
Cmd + V should mean paste. And now it behaves like it should on macOS.
And if the terminal is going to be the IDE, that is the level of care it has to absorb.
— 8



