OmnySSH: PuTTY-Style Copy and Paste
Project Overview
OmnySSH is someone else's open-source SSH client and server manager, with a desktop app and a terminal app. It has over a thousand stars on GitHub. This feature is for its users who come from PuTTY.
PuTTY-style copy and paste for the desktop app's terminal. Selecting text copies it. Right-click pastes, or does Windows Terminal's copy-or-paste, or opens a menu, depending on a setting. Middle-click and Shift+Insert paste, and Ctrl+Insert copies.
I also added Copy all, which copies the whole scrollback like PuTTY's "Copy All to Clipboard", a terminal menu on Ctrl+right-click, trimming of trailing spaces, and an optional confirmation before a multi-line paste. Apps that use the mouse, like vim or tmux, keep their clicks, and holding Shift takes them back. Everything can be switched in a new Copy & paste section in Settings.
Built in October 2026. I sent it upstream as a pull request on October 29.
The pull request is #162 on timhartmann7/omnyssh, and it closes the open feature request #161. The work also lives on my fork.
Someone asked for exactly this in #161. Anyone used to PuTTY expects to select to copy and right-click to paste, and the app didn't do either.
The maintainer had already turned down a different copy and paste change because it took over Ctrl+C and Ctrl+V, which the shell needs. So mine leaves those keys alone and adds the PuTTY behavior around them.
How It Works
- The browser engine inside the app won't let a page write to the clipboard on a mouse-up, and reading it can raise a permission prompt. So copy and paste go through the system clipboard on the Rust side, using Tauri's clipboard plugin. The web side gets no plugin permission, just two small commands.
- The project tries hard not to add dependencies, so the pull request explains why this one is needed.
- Unit tests cover the key and mouse handling and the settings. End-to-end tests cover copy on select, right-click paste, the menu, and the Settings section.
- It's one clean commit on top of the current release, in the project's commit style.
Still open: the pull request is waiting for the maintainer's review, and the project's CI is waiting for the maintainer to approve the run, which is normal for a first contribution. The PuTTY behavior is on by default. I offered to make it opt-in if the maintainer prefers.