GPU-accelerated clipboard manager for Wayland. Built with Rust + GPUI.
Super+V opens an instant popup with your clipboard history. Select an entry to paste it. That's it.
- Native Wayland clipboard watching via
ext-data-control-v1protocol - GPU-accelerated popup UI (GPUI framework)
- Text, image, and rich text support
- Live search filtering
- Pin/unpin important entries
- Mouse and keyboard navigation
- Focus-blur auto-close
- SQLite storage with automatic deduplication and pruning
- Catppuccin Mocha theme
- Wayland compositor with
ext-data-control-v1support (KDE 6+, GNOME 45+, Hyprland, Sway, etc.) - Rust toolchain
git clone https://github.com/lostf1sh/clp.git
cd clp
bash install.shThe install script will:
- Build release binaries
- Install
clpdandclpto~/.cargo/bin/ - Start the
clpddaemon as a systemd user service - Auto-detect your compositor and add the
Super+Vkeybind
bash uninstall.shIf you prefer to set things up yourself:
cargo build --release
cp target/release/clpd target/release/clp ~/.cargo/bin/# Foreground
clpd
# Or as a systemd user service
cp contrib/clpd.service ~/.config/systemd/user/
systemctl --user enable --now clpdclp doesn't handle global keybinds itself. Configure your compositor:
Hyprland:
bind = SUPER, V, exec, clp
Sway:
bindsym Mod4+v exec clp
KDE: System Settings > Shortcuts > Custom Shortcuts > Add > clp
| Key | Action |
|---|---|
| Up/Down | Navigate entries |
| Enter | Paste selected entry |
| Click | Paste clicked entry |
| Delete | Delete selected entry |
| Ctrl+P | Pin/unpin entry |
| Type | Filter entries |
| Backspace | Delete search character |
| Ctrl+U | Clear search |
| Escape | Close popup |
Create ~/.config/clp/config.toml:
max_entries = 500
max_image_size = 5242880 # 5MBclpd (daemon) clp (popup)
| |
| watches clipboard | opens on Super+V
| stores to SQLite | fetches via IPC
| serves IPC | shows GPUI popup
| | pastes selection
+--- Unix Socket ------+
- clpd: Background daemon (~2MB RAM). Watches clipboard via native Wayland protocol, stores entries in SQLite, serves IPC requests over Unix socket.
- clp: Popup UI. Connects to daemon, displays entries in a GPU-rendered popup, copies selection back to clipboard.
- clp-common: Shared types and bincode IPC protocol.
MIT