Skip to content

Repository files navigation

PinnedPaste

Pin your constant values to the top of Win+V.

Your email, phone number, ID, address — the things you retype a dozen times a day. Press Win+V, they're the first thing you see, one keystroke away. The stock Windows clipboard history is still right there too.

┌─────────────────────────────────────────┐
│ 1. Email  -  you@example.com            │
│ 2. Phone  -  +1-555-0100                │
│ 3. ID     -  000000000                  │
│ 0. Clipboard history (stock Win+V)...   │
└─────────────────────────────────────────┘

Quick start

No git, no build tools, no admin rights.

  1. Download the ZIP and extract it somewhere permanent (e.g. C:\Tools\PinnedPaste) — the app runs from wherever you put it.
  2. Double-click Install.cmd.
  3. Press Win+V. Right-click the tray icon → Edit fixed values to put your own values in.

That's it. It starts automatically at logon from then on.

Windows may show a "Windows protected your PC" prompt for a downloaded .cmd — click More infoRun anyway, or read Install.cmd first (it's 20 lines).

Usage

Key Action
Win+V open the popup
19 paste that value into the app you were in
Enter paste the highlighted value
0 open the stock Windows clipboard history
Esc close, do nothing

Clicking an entry works too. Right-click the tray icon for: edit values, Pause (temporarily restore stock Win+V), Start with Windows, open log, and exit.

Your fixed values

On first run the app creates values.txt from values.example.txt. Edit it from the tray icon (or double-click the icon). One value per line:

# Lines starting with # are comments.
Email = you@example.com
Phone = +1-555-0100
ID = 000000000
Support ticket boilerplate = Steps to reproduce:

Label = value shows the label; a line with no = pastes itself. Changes take effect the next time you open the popup — no restart. The first nine entries get the digit shortcuts.

Your values never leave your machine. values.txt is git-ignored, and pasted values are flagged ExcludeClipboardContentFromMonitorProcessing, so they don't enter clipboard history or cloud clipboard sync.

How it works (and why it's safe)

Windows' Win+V flyout is closed system UI (TextInputHost.exe). There's no API to add or reorder items in it, and the alternatives — injecting into system processes, or writing to the undocumented %LOCALAPPDATA%\Microsoft\Windows\Clipboard\Pinned store — are fragile and break on Windows updates.

So PinnedPaste doesn't touch Windows at all. It puts a standard low-level keyboard hook on Win+V and shows its own popup, then re-sends the keystroke to Windows when you pick item 0. The native feature is completely untouched.

The design fails open. The hook lives only inside the app's process, so if the app exits, crashes, or is killed, stock Win+V is back instantly. Windows itself also auto-bypasses a hook that ever stops responding. Nothing is installed into the system: no registry keys, no services, no system files. The only artifact outside the app folder is one shortcut in your Startup folder.

There's no .exe — on purpose

The app ships as C# source (src/PinnedPaste.cs) and is compiled in memory at startup by the Microsoft-signed powershell.exe (see PinnedPaste.ps1). This means no unsigned binary ever executes, so it works on machines with Smart App Control enabled, where a self-built .exe is blocked outright — and you can read every line of what you're running. The cost is ~2 seconds of compile time at logon.

Removing it

Three levels, all instant and complete:

  1. Temporarily: tray icon → Pause (or Exit). Stock Win+V returns immediately.
  2. Uninstall: double-click Uninstall.cmd — stops the app and removes the Startup shortcut, the only file outside this folder.
  3. Completely: delete the folder.

Requirements

Windows 10 or 11 with .NET Framework 4.x, which ships in-box. No admin rights, no downloads, no dependencies.

Development

The whole app is one C# file. To run it without installing:

powershell -NoProfile -ExecutionPolicy Bypass -STA -File PinnedPaste.ps1

The launcher also takes --show, --toggle-pause, --exit, --print-config and --send-winv to drive a running instance.

There's a real end-to-end test suite — it starts the app, opens a throwaway target window, injects genuine Win+V keystrokes, and asserts on what actually gets pasted, including that normal typing and plain Ctrl+V are unaffected and that pausing restores stock behavior:

powershell -ExecutionPolicy Bypass -File tests\run-tests.ps1

It needs an unlocked, idle desktop (it drives the real keyboard) and takes about a minute; screenshots land in tests\artifacts. Your values.txt is backed up and restored around the run. tests\wait-and-test.ps1 is an unattended variant that waits for the desktop to be free first.

Limitations

  • When an elevated (admin) window is focused, Windows blocks input hooks from non-elevated processes, so Win+V opens the stock flyout there. Same limitation as AutoHotkey.
  • Text only — that's the point.
  • The popup uses the light system theme regardless of Windows dark mode.
  • More than nine values work fine, but only the first nine get digit shortcuts.

License

MIT — see LICENSE.

About

Pin fixed values (email, phone, ID) to the top of Windows Win+V, without modifying Windows

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages