Clipy - Python Clipboard Manager
Clipy is a simple clipboard manager written in Python that is designed to be piped into rofi, dmenu, or fzf.
Dependencies
- Python 3
- Wayland:
wl-clipboard - X11:
xclip
Features
- 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.
Installation
git clone https://github.com/andriy-git/clipy
cd clipy
./setup.sh
This 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.
Usage
1. Start the Daemon
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).
Systemd Service
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.target
Then enable and start it:
systemctl --user daemon-reload
systemctl --user enable --now clipy-daemon.service
2. Status & Management
clipy status
clipy clear # Clear all history
clipy clear '^.{1,3}$' # Clear entries between 1-3 characters
3. Integrated Pickers
Clipy 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 fzfin command substitutions, e.g.,$(clipy fzf)to execute or capture the selection.
4. Neovim Integration (Telescope)
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 Neovimruntimepathor copy clipy-telescope.lua to your lua folder.
Metadata
Release files for clipy-manager 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clipy_manager-0.1.1.tar.gz | 24.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clipy_manager-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.4 kB
Release files / clipy_manager-0.1.1.tar.gz
| Download URL | clipy_manager-0.1.1.tar.gz |
|---|---|
| Size | 24.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
83b36d5504123bd5ae799ed0dc3de1a733949a0f8a214b8cabb7f8a53ec1205c
|
|
BLAKE2b-256 checksum How to use checksums |
c8f7847f37e58c76230a6a8f6118de9151aba5ee6ca6b91f76fd9efdff5ec329
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / clipy_manager-0.1.1-py3-none-any.whl
| Download URL | clipy_manager-0.1.1-py3-none-any.whl |
|---|---|
| Size | 24.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c28bbfb8a5de936d509faeec48f9f79e1d08f9eaf67e7ac8676bae94b43dbe3f
|
|
BLAKE2b-256 checksum How to use checksums |
83b2188e9d2d7c545cb453da7e84710ad48fef3e5af7491ba2f96d1ec610a596
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|