A Noctalia v4 plugin for privacy-first clipboard management with Vim-inspired navigation. Entries are masked with dots (••••) by default — only revealed on demand.
Best practice for clipboard security: Never leave sensitive data visible on screen. ClipMask keeps your clipboard contents hidden until you explicitly choose to reveal them.
- 🔒 Security-first — entries shown as
••••••••by default, zero visible secrets - 👁 Reveal on demand —
Ctrl+Acycles: fully masked → first 3 chars → fully revealed - ⌨️ Vim-style navigation —
j/kto move,/to search,dto delete - 🖼️ Image support — image entries show thumbnails with an IMG badge
- 🔍 Live search — press
/to filter entries in real-time - 📋 Uses cliphist — integrates with your existing clipboard history
- 🎨 Full Noctalia theming — respects your colors and styles
Clipboard content is one of the most exposed attack surfaces on a desktop. Passwords, tokens, private keys, and personal messages all pass through the clipboard.
ClipMask follows the principle of least visibility:
- Entries are masked by default — no accidental exposure
- Reveal only what you need, when you need it
- Partial reveal mode shows just the first 3 characters — enough to identify an entry
- Never leave clipboard content visible — masked entries prevent shoulder surfing
- Use partial reveal — when scanning entries, first 3 chars + dots is enough to identify
- Auto-refresh — panel always shows latest history
- Delete sensitive entries — press
dto remove any entry from history - Search don't scroll — use
/to find entries without revealing everything
| Scenario | Why ClipMask helps |
|---|---|
| Streaming / Screen sharing | Viewers can't accidentally see your clipboard history |
| Public presentations | Keep API keys, passwords, and tokens hidden |
| Coffee shop / open office | Shoulder surfers can't read your clipboard |
| Developer workflow | Quickly find and paste code snippets without exposing everything |
| Password manager integration | Copy passwords safely, they stay masked in history |
| Key | Action |
|---|---|
j / k |
Navigate entries |
/ |
Enter search mode |
Ctrl+J / Ctrl+K |
Navigate while searching |
Esc / Ctrl+E |
Exit search mode |
Ctrl+A |
Cycle mask: masked → partial → revealed |
Enter |
Copy selected entry |
p |
Show image preview (on IMG entries) |
d / Del |
Delete entry from history |
Esc / Ctrl+E |
Close panel / exit search |
Backspace |
Delete last character in search |
-
Make sure the plugin is in your plugins directory:
~/.config/noctalia/plugins/clipmask/ -
Open Noctalia Settings → Plugins
-
Find ClipMask in the list and toggle it ON
-
Add the bar widget:
- Right-click your bar → Add widget
- Search for "ClipMask" or scroll to find the eye-off icon
- Click to add it
-
Click the bar widget to open the masked clipboard viewer
cliphist— the clipboard history daemonwl-clipboard— Wayland clipboard utilities
Install on Arch:
sudo pacman -S cliphist wl-clipboardMake sure cliphist is running:
wl-paste --type text --watch cliphist store &
wl-paste --type image/png --watch cliphist store &# Toggle the ClipMask panel
qs -c noctalia-shell ipc call plugin:clipmask "toggle"
# Open panel
qs -c noctalia-shell ipc call plugin:clipmask "open"
# Close panel
qs -c noctalia-shell ipc call plugin:clipmask "close"Main.qmlregisters IPC handlers for the pluginPanel.qmlrunscliphist listvia Quickshell'sProcesscomponent- Each entry is parsed from the tab-delimited output and rendered in a
ListView - Text entries are masked with
•characters until explicitly revealed - Image entries are decoded via
cliphist decode | base64and shown as thumbnails - Image entries have an IMG badge; press
pon a selected IMG entry to view a 360×360 preview popup - A LRU cache stores up to 20 decoded images to avoid re-decoding
- Copying pipes through
cliphist decode | wl-copyfor reliable binary/text handling
- Author: x0d7x
- Built for: Noctalia v4 (Quickshell-based)