The clipboard is invisible global state
Aliases: system clipboard · pasteboard · copy buffer
What it is
The clipboard is a global buffer that belongs to no window: copy writes into it, paste reads from it, and no persistent surface shows “what is in it now.” It survives across apps and focus. Users cannot see this state; they reconstruct it from memory or from what comes out of a paste. Unlike caret and selection, the clipboard is not on the current document’s picture.
Why it happens
The OS keeps a data object in a (usually singleton) namespace. Apps write through copy/cut and read through paste. A write does not change the current document’s appearance, so success has no local receipt—the selection may still highlight, and people think “it did not copy.” A read inserts the object into the focused field; if the field and the object type mismatch (an image into plain text, formatted text into code), the result disagrees with the remembered source, with no check before paste. Globality means content prepared in app A for task B is overwritten by an unconscious copy in app C, and neither A nor B announces it. Invisible plus global is a mode that drifts easily: people think the buffer still holds the last string; the machine already holds something else.
Studying it
Have people run “prepare a passage for later → insert an unrelated copy → paste at the target” across apps. Log whether the expected content hits, and when a mismatch is noticed. Independent variables include a clipboard preview, transient copy feedback, and number of app switches. Dependent measures include wrong pastes and voluntary inspections of the buffer. Copy-paste inside a single text box never shows the harm of global state.
Where it stops holding
An in-app “internal clipboard” or a pinned snippet library is a visible object, not this system buffer. Tools such as pbpaste on a command line make the buffer inspectable, a surface for experts. Remote desktop and virtual machines may stack two clipboards, doubling the invisibility.
Applying it
- Give a transient receipt on a successful copy (selection flash, brief confirmation). Do not treat a silent menu command as evidence the write landed.
- Offer a one-line preview on the paste menu or long-press paste so people see the buffer before it enters the field.
- In a cross-app task, insert an unrelated copy in the middle and see whether users notice the buffer changed before paste; if not, preview or receipt is still too weak.