Repository navigation
Clipboard
A searchable, previewable clipboard history for text, links and images, with pinning, smart per-type actions, automatic retention, and quick paste. It is built on cliphist (the store) and wl-clipboard (the Wayland copy/paste tools); the shell provides the panel, the detectors, the pinning and the retention policy.
-
Super + V opens the clipboard panel (inside the launcher: it is the
;panel — Launcher & Search). Type to filter, Enter or double-click to paste. - If the shell isn't running, the same bind falls back to a plain
fuzzellist, so history stays reachable. - Everything you copy is stored automatically by three
wl-paste --watchhelpers started with the session (text, images, andtext/uri-listfile copies); each one pokes the shell over IPC (cliphistService update) so the panel and the island know instantly.wl-clip-persistkeeps your clipboard alive after the app you copied from closes (optional featureclipboard-persist).
A two-pane layout (a list on the left, a preview and details on the right):
- Filter chips — All, Images, Colors, Links, Numbers, JSON, Emails, Phones, Files, Markdown, Text, each with a count, plus a count of items and a Clear button (press again to confirm).
-
Search — fuzzy matching (
search.clipboard.enableSloppySearch, off; the Levenshtein algorithm if you selected it for the launcher). - Rows show a glyph and a one-line summary: image dimensions, a link's domain, Pinned.
- Preview — images at a configurable height, text in a chosen font size, hex colours as a swatch, and a metadata panel with type, MIME, size, when it was copied and a hash.
-
Actions — Copy, Paste (copies and sends
Ctrl+Vto the previous window withwtype, after a short delay so the window has regained focus), Pin / Unpin, Delete, and a context-sensitive smart action depending on what it recognised:
| Detected | Smart action |
|---|---|
| Image | Open Image |
| File path | Open File |
| Link | Open Link (and the domain as the summary) |
| Send Email | |
| Phone | Call Number |
| JSON | Format JSON |
| Markdown | Copy Plain |
| Number | Copy Clean |
| Long text | Read with Teleprompter (Teleprompter) |
Pinned entries are kept in the shell's own persistent state (not only in cliphist), so they are always preserved — by retention, by "clear unpinned" and by the shutdown wipe. A pinned image that cliphist has purged can't be pasted any more (the shell warns in its log instead of pasting nothing).
Settings → Launcher → Clipboard (a sub-page reached from the launcher page; the hidden clipboard page id also deep-links to it):
Option (search.clipboard.*) |
Default | Meaning |
|---|---|---|
autoDelete.enable |
false |
Delete unpinned entries older than the retention |
autoDelete.retentionDays |
30 |
7, 30 or 90 days. cliphist doesn't expose dates, so counting starts when you enable this — the shell remembers when it first saw each entry |
autoDelete.wipeOnShutdown |
false |
Remove unpinned entries during a clean Quickshell shutdown |
| Clear unpinned clipboard history now | — | A two-press button |
panelWidth, listColumnRatio, imageHeight, previewFontSize, showMetadata
|
860 px, 0.40, 200 px, 12 pt, on | Panel layout |
detectors.* |
all on | Per-type detection: colour, URL, email, phone, JSON, lines, number, markdown, file path — each gets its own colour and preview |
Related: Settings → Privacy & Content → Work Safety & Policies → Hide clipboard images (workSafety.enable.clipboard, off): while you're connected to a network whose name contains one of the configured keywords (cafe, public, school, guest, eduroam…), image entries in the launcher's clipboard search results are blurred when an adjacent entry matches the unsafe-link keywords. The launcher also has /wipeclipboard and /superpaste N (type /superpaste 4, or 4i for the last four images) which pastes your last N clipboard entries in order, one Ctrl+V after another.
A new copy flashes a clipboard notch in the Dynamic Island for 2.5 seconds (dynamicIsland.widgets.clipboard), with a 400 ms cooldown because one copy often reaches cliphist through several MIME watchers. It only reacts to a new entry (an entry with a higher id and different content), not to the list being re-read — so unlocking the session, which re-advertises the selection, doesn't trigger it. A copy made from the phone mirror is labelled as coming from the phone (Phone Integration, which can also sync clipboards in both directions: phone.scrcpy.clipboardSync).
| Piece | Role |
|---|---|
services/Cliphist.qml |
Store access, classification, copy / paste / superpaste, pinning, retention, cliphistService IPC |
modules/ii/overview/ClipboardPanel.qml, overview/clipboard/
|
The panel and its filter chips |
modules/settings/configs/ClipboardConfig.qml |
Settings (detectors, layout, retention) |
dots/.config/hypr/hyprland/execs.lua |
The wl-paste --watch helpers and wl-clip-persist
|
modules/ii/dynamicIsland/core/sources/ClipboardSource.qml |
Island notch |