Clipy is a simple clipboard manager written in Python that is designed to be piped into rofi, dmenu, or fzf.
- Python 3
- Wayland:
wl-clipboard - X11:
xclip
- Wayland Support: Uses
wl-paste --watchfor efficient monitoring. - X11 Support: Uses polling with
xclip. - Image Support: Automatically detects and caches images.
- Database: Stores history in
~/.local/share/clipy/clipy.db.
git clone https://github.com/andriy-git/clipy
cd clipy
./setup.shThis will install the clipy command to ~/.local/bin. Ensure ~/.local/bin is in your $PATH.
Alternatively, install as a Python package:
pip install .This will provide the clipy command directly.
Run the daemon in the background to watch for clipboard changes.
clipy daemon &Add this to your startup script (e.g., ~/.config/sway/config or ~/.xinitrc).
You can also run Clipy as a user systemd service. Create ~/.config/systemd/user/clipy-daemon.service:
[Unit]
Description=Clipboard history daemon
[Service]
ExecStart=%h/.local/bin/clipy daemon
Restart=on-failure
[Install]
WantedBy=default.targetThen enable and start it:
systemctl --user daemon-reload
systemctl --user enable --now clipy-daemon.serviceclipy status
clipy clear # Clear all history
clipy clear '^.{1,3}$' # Clear entries between 1-3 charactersClipy comes with built-in support for popular search tools. You can run them directly:
- fzf:
clipy fzf(Supports live search, delete withCtrl+d, and outputs selection to stdout) - Rofi:
clipy rofi(Supports select and delete withCtrl+d, restores to clipboard) - dmenu:
clipy dmenu(Restores to clipboard)
Tip
You can use clipy fzf in command substitutions, e.g., $(clipy fzf) to execute or capture the selection.
The Telescope integration is available as a Lua script in the scripts/ directory.
To use it, run clipy telescope for setup instructions or add this to your Neovim config:
local clipy = require('clipy-telescope') -- Or path in subfolder
clipy.setup({ clipy_path = "clipy" }) -- Path to the clipy command
vim.keymap.set('n', '<leader>c', clipy.clipboard_history, { desc = "Clipy Clipboard History" })Note
You must add the scripts/ directory to your Neovim runtimepath or copy clipy-telescope.lua to your lua folder.